The software that we have developed falls in one of the following categories.

Cancer genomics

PhySigs PhySigs is an R package to solve the Tree-constrained Exposure inference problem to identify a small number of exposure shifts along the edges of a given tumor phylogeny. This problem arises in the analysis of the dynamics of mutational signature exposures in cancer, and has both therapeutic and basic science applications.
ClonArch ClonArch is a web-based tool to interactively visualize the phylogenetic tree and spatial distribution of clones in a single tumor mass. ClonArch uses the marching squares algorithm to draw closed boundaries representing the presence of a clone in a tumor.
PMH-S PMH-S is a fixed parameter tractable (FPT) algorithm for the Parsimonious Migration History problem for the case where the migration graph is restricted to a tree (i.e. $\mathcal{P} = \{S\}$). The asymptotic running time is exponential in the number $m$ of locations.
SPhyR SPhyR is an algorithm for reconstructing phylogenetic trees from single-cell DNA sequencing data. SPhyR employs the $k$-Dollo phylogeny model, where each single-nucleotide variant can only be gained once but lost $k$ times.
MACHINA MACHINA is a computational framework for inferring migration patterns between a primary tumor and metastases using DNA sequencing data.
SPRUCE SPRUCE reconstructs the tumor evolutionary history of a tumor from multi-sample bulk DNA sequencing data, incorporating both single-nucleotide variants and copy-number aberrations. SPRUCE employs a combinatorial exhaustive enumeration.
AncesTree AncesTree reconstructs the tumor evolutionary history of a tumor from multi-sample bulk DNA sequencing data. AncesTree incorporates single-nucleotide variants under the infinite sites assumption.


SharpTNI SharpTNI is a tool for counting and sampling solutions from the space of parsimonious transmission networks under a weak transmission bottleneck constraint. This problem arises in phylodynamic and phylogeographic analyses of disease outbreaks.

Network biology

eXamine eXamine is a Cytoscape 3.x app that displays set membership as contours on top of a node-link layout. Source code is available on Github.
xHeinz xHeinz identifies conserved dysregulated network modules given differential expression data from two organisms and their protein/gene interaction networks.
Heinz Heinz identifies dysregulated network modules given differential expression data and a protein/gene interaction network.
Natalie 2.0 Natalie 2.0 is a method for network alignment based on Lagrangian relaxation.


CSO The Crossing Schedule Optimization (CSO) problem arises in the context of marker-assisted plant breeding, where we are given a desired diploid genotype $C^*$ in the form of a $2 \times m$ binary matrix. In addition, we are given a set $\{C^1,\ldots,C^n\}$ of $n$ parental genotypes, an $m \times m$ recombination probability matrix $R$ and a desired probability $\gamma$ of success. The task is to identify a crossing schedule (DAG) with minimum depth, total population size, generations (depth) and crossings (internal vertices) that results in $C^*$ from $\{C^1,\ldots,C^n\}$.