Research
My research sits between discrete mathematics, algorithms, and evolutionary biology. Most of it is about phylogenetic networks: graphs that biologists use to describe evolutionary histories in which lineages not only split, but also merge, through events such as hybridization and horizontal gene transfer. I am interested in how to reconstruct such networks, when the data determines them at all, and how to compute with them efficiently.
New to phylogenetics? Start with a short introduction.
Biologists want to know how species are related: which ones share a common ancestor, and when their lineages split apart. The usual picture is a phylogenetic tree, a family tree of species in which lineages only ever divide as time moves forward.
Why a tree is sometimes not enough
Evolution does not always work that way. Sometimes two separate lineages come back together: many plants arise by hybridizing two parent species, bacteria routinely swap genes with unrelated microbes, and the swordtail fishes above have hybridized repeatedly. You cannot draw such a merge on a tree. A phylogenetic network allows them, by adding extra edges where lineages join.
Why do people study this?
Partly because the answers can be surprising. Our own history is a good example: modern humans and Neanderthals interbred, so a little of the DNA carried by many people today comes from a lineage that had split off long before and later merged back in. On a tree that event is invisible. On a network you can see it.
It also has practical uses. Antibiotic resistance often spreads from one kind of bacterium to another instead of being passed down from parent to offspring, so working out which lineages exchanged genes is really a way of tracking how resistance travels. Influenza strains mix their genetic material when they infect the same host, and knowing which strains combined helps explain where a new one came from. Many of our crops are hybrids too, bread wheat among them, and knowing which wild species contributed tells breeders where a useful trait such as drought tolerance or disease resistance came from, and how it might be bred into something else.
The picture also has to be right for the conclusions we draw from it to hold: how a species came to be, how old it is, or how quickly a group diversified. Force a history that contains merges onto a tree and those answers can simply come out wrong, which is why networks are needed for exactly the groups people tend to care about most, from crops and fish to bacteria and viruses.
The main questions I work on
Can we reconstruct the network of a group's shared history from the genetic data of species living today? Is it even possible in principle, or can genuinely different histories leave identical traces in the data? And can we do it efficiently, even for hundreds of species? These three questions run through the themes below.
More background on Wikipedia: Phylogenetic network · Phylogenetic tree.
Reconstructing Evolutionary Networks
The central computational problem in phylogenetics is reconstruction: given genetic sequence data from a set of species, find the network that best explains their shared history. My approach works through quarnets, the four-leaf subnetworks that describe how each group of four species is related, and then assembles the large network from these small pieces, much like a jigsaw puzzle. The algorithms I design are provably consistent, meaning they recover the true network given enough data, and efficient, using an asymptotically optimal number of quarnets in polynomial time. I also study how much sequence data is actually needed to get the right answer with high probability.
-
Squirrel: Reconstructing Semi-directed Phylogenetic Level-1 Networks from Four-Leaved Networks or Sequence Alignments
Molecular Biology and Evolution, 42(4):msaf067, 2025 In plain language
Biologists reconstruct evolutionary history from DNA, but when species have hybridized this history is a network rather than a simple branching tree. Squirrel builds such a network directly from a DNA sequence alignment: it first breaks the problem into all four-species subnetworks and then stitches them back together. It runs in minutes on a standard laptop and comes with an easy-to-use graphical interface. -
Bounds on the Sequence Length Sufficient to Reconstruct Binary Level-1 Phylogenetic Networks Under the CFN Model
Annals of Combinatorics, 2026 In plain language
Existing methods can reconstruct certain evolutionary networks correctly if given infinitely long DNA sequences, but real data is finite. This paper works out how long the sequences actually need to be to recover the right network with high probability under the CFN model, showing that the requirement grows manageably with the number of species, at a rate that is logarithmic, polylogarithmic, or polynomial depending on the parameter regime. -
Reconstructing semi-directed level-1 networks using few quarnets
Journal of Computer and System Sciences, 152:103655, 2025 In plain language
A large evolutionary network can be rebuilt from its four-species sub-pieces, but querying every possible group of four species is wasteful. This paper gives a fast algorithm that reconstructs the whole network using only a near-minimal number of these four-species pieces, and even recovers the network's coarse skeleton in more general settings.
Identifiability and Statistical Foundations
Before building an inference method, there is a more basic question to settle: can two different networks even be told apart from DNA data at all? That property is called identifiability. Where it fails, no method can recover the true network, however much data you collect. I study identifiability under the standard Markov models of DNA evolution, such as Jukes–Cantor, CFN and random-walk models, using tools from algebraic geometry, combinatorics and probability. One of these tools is phylogenetic invariants: polynomial relations that hold for every network in a class, and that can be used to tell competing histories apart. The results mark out what is recoverable from biological data in the first place.
-
Identifiability of Phylogenetic Level-2 Networks under the Jukes-Cantor Model
bioRxiv:10.1101/2025.04.18.649493, 2025 In plain language
Before trying to reconstruct an evolutionary network, one should check whether the DNA data even determines it uniquely, because otherwise no method can succeed. This paper proves that a broad new class of networks (allowing certain intertwined merging events) is in principle recoverable from DNA under standard models of evolution, extending what was previously known only for simpler networks. -
Algebraic Invariants for Inferring 4-leaf Semi-Directed Phylogenetic Networks
Systematic Biology, 75(4):657-672, 2026 In plain language
Building large evolutionary networks by combining tiny four-species pieces only works if we can infer those pieces reliably. This paper develops an algebra-based method to infer four-leaf networks directly from DNA, measures how much sequence data it needs, and applies it to real fish (Xiphophorus) data. -
Distinguishing Phylogenetic Level-2 Networks with Quartets and Inter-Taxon Quartet Distances
Bulletin of Mathematical Biology, 87(12):168, 2025 In plain language
Two different evolutionary networks can sometimes produce exactly the same observable data, which makes them impossible to tell apart. This work pins down precisely which of the more complex "level-2" networks can be distinguished from four-species snapshots of the data, and derives a distance between species that opens the door to reliably inferring these networks in the future.
Phylogenetic Diversity and Conservation
Phylogenetic diversity (PD) measures how evolutionarily distinct a set of species is. For conservation, a group spanning many deep branches of the tree of life is worth more than a cluster of close relatives. So with a limited budget, which species should we protect to keep as much diversity as possible? On a tree there is a simple greedy answer. On a phylogenetic network, which is the more realistic picture when hybridization has occurred, the problem becomes NP-hard. I develop algorithms that make it tractable again by exploiting structural parameters such as scanwidth, and study harder versions where protecting a species also means protecting the prey it depends on.
-
Tractable Maximization of Budgeted Phylogenetic Diversity on Networks Utilizing Node Scanwidth
arXiv:2605.23319, 2026 In plain language
Deciding which species to protect to preserve the most evolutionary diversity gets much harder when protection has real, uneven costs and evolution is network-shaped rather than tree-shaped. This paper gives fast algorithms for several budgeted versions of that problem by exploiting a "tree-likeness" measure of the network called node scanwidth, and also shows how to compute that measure exactly. In experiments the methods handle networks with hundreds of species in a fraction of a second, and remain practical even up to a thousand species. -
Limits of Kernelization and Parametrization for Phylogenetic Diversity with Dependencies
arXiv:2602.12959, 2026 In plain language
Choosing species to conserve becomes more realistic when we insist that a saved predator also has some saved prey, a dependency captured by a food web. This paper maps out when this constrained problem can be solved efficiently and, importantly, proves hard limits: for many natural ways of measuring the input's complexity, the problem provably cannot be "compressed" to a small equivalent instance before solving. -
PaNDA: Efficient Optimization of Phylogenetic Diversity in Networks
bioRxiv:10.1101/2025.11.14.688467, 2025 In plain language
When conservation budgets force us to protect only some species, which ones preserve the most evolutionary variety? On simple evolutionary trees this is easy, but on networks, which capture events like hybridization, it becomes computationally hard. PaNDA is an interactive tool built around a new algorithm that solves this diversity-maximization problem efficiently for many realistic networks.
Structural Parameters and Algorithms
Many hard problems on phylogenetic networks become tractable once the network is close enough to a tree, and scanwidth is one way to make "close enough" precise. It measures the tree-likeness of a directed acyclic graph by capturing how much branching and merging happens at once as you sweep through it. I design parameterized algorithms that exploit this: sweeping through a network while tracking only the lineages active at any one moment turns problems that are hopeless in general into practical dynamic programs whenever scanwidth is small. Relying on a parameter also means being able to compute it, so I developed the first exact algorithm for the scanwidth of general DAGs, along with heuristics that come close to optimal on real biological datasets.
-
Exact and Heuristic Computation of the Scanwidth of Directed Acyclic Graphs
Journal of Computer and System Sciences, 160:103802, 2026 In plain language
Many hard computational problems on evolutionary networks become easy when the network has a simple enough shape, measured by a number called its scanwidth. To take advantage of this you first have to compute that number, which was previously impractical. This paper gives the first efficient algorithm that computes scanwidth exactly, together with a fast heuristic that comes close to optimal on real datasets. -
Tractable Maximization of Budgeted Phylogenetic Diversity on Networks Utilizing Node Scanwidth
arXiv:2605.23319, 2026 In plain language
Deciding which species to protect to preserve the most evolutionary diversity gets much harder when protection has real, uneven costs and evolution is network-shaped rather than tree-shaped. This paper gives fast algorithms for several budgeted versions of that problem by exploiting a "tree-likeness" measure of the network called node scanwidth, and also shows how to compute that measure exactly. In experiments the methods handle networks with hundreds of species in a fraction of a second, and remain practical even up to a thousand species. -
PaNDA: Efficient Optimization of Phylogenetic Diversity in Networks
bioRxiv:10.1101/2025.11.14.688467, 2025 In plain language
When conservation budgets force us to protect only some species, which ones preserve the most evolutionary variety? On simple evolutionary trees this is easy, but on networks, which capture events like hybridization, it becomes computationally hard. PaNDA is an interactive tool built around a new algorithm that solves this diversity-maximization problem efficiently for many realistic networks.
Drag, scroll sideways, or use the arrows / arrow keys to flip through the themes.
For a complete list of publications with abstracts and BibTeX entries, see the Publications page.