# Software

The software that I have developed in my research falls in one of the following categories.

### Cancer genomics

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. |

### 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. |

### Miscellaneous

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\}$. |