Robust software tool for tracking, managing, analysing and cataloguing short-sequence repeats and genotypes using Anaplasma marginale as a model species. Code and further information available here.

Associated Paper: H.N. Catanese, K.A. Brayton and A.H. Gebremedhin, RepeatAnalyzer: a tool for analysing and managing short-sequence repeat data , BMC Genomics 2016 17:422. DOI: 10.1186/s12864-016-2686-2


Software that generates realistic, synthetic, labeled time-series data (in lieu of sensor data)  for remote health monitoring applications. Such data is valuable because 1) labeling data can be time-consuming, expensive and, depending on the domain, can require expert knowledge. 2) Sensor data often contains sensitive user information. Code and further information available here.

Associated Paper: Skyler Norgaard, Ramyar Saeedi, Keyvan Sasani and Assefaw Gebremedhin, Synthetic Sensor Data Generation for Health Applications: A Supervised Deep Learning Approach,  EMBC 2018.


Software for Live-variables based Hessian computation via Automatic Differentiation (implemented on top of ADOL-C). Code and further information available here.

Associated Paper: M. Wang, A.H. Gebremedhin and A. Pothen, Capitalizing on Live Variables: New Algorithms for Efficient Hessian Computation via Automatic Differentiation. Mathematical Programming Computation, pp 1–43, 2016. DOI = 10.1007/s12532-016-0100-3.

Parallel Maximum Clique Finder (PMC)

This is implementation of fast algorithms for maximum clique finding and related problem in large graphs that are designed to exploit features of social and information networks. See here for info on the code and its usage.

Associated Paper: R.A. Rossi, D.F. Gleich, A.H. Gebremedhin and M.M.A. Patwary, Parallel Maximum Clique Algorithms with Applications to Network Analysis, SIAM Journal on Scientific Computing, Vol 37, Issue 5, pages C589-C618, 2015.


ColPack is a software package consisting of implementations of fast and effective algorithms for a variety of graph coloring, vertex ordering, and related problems. Many of the coloring problems model partitioning needs arising in compression-based computation of Jacobian and Hessian matrices using Automatic Differentiation. Several of the coloring problems also find important applications in various areas outside derivative computation. ColPack is implemented in C++ in an object-oriented fashion heavily using STL.

ColPack, Other Tools, and Impact (selected stories)

  • In collaboration with Andrea Walther of Paderborn University, ColPack has been coupled with ADOL-C, a widely-used Algorithmic Differentiation (AD) software tool based on operator overloading. ADOL-C relies on ColPack for its sparse derivative computation capabilities and expects users to download ColPack when they use ADOL-C. The ADOLC-ColPack toolkit is used by a number of research groups in academia as well as in industry.
  • In our own research, we have used the toolkit to solve large-scale optimization problems in several applications. One example is a throughput optimization problem in a simulation of a purification process in chemical engineering (see this paper for details). Another example is a power flow optimization problem in electric grids (see this paper for details).
  • ColPack has also recently been interfaced with the source-to-source transformation AD tool ADIC2 of Argonne National Laboratory (see this paper for details). The toolkit has been used to efficiently compute gradients of partially separable functions (see this paper for details).