← All research

Human phylogenetics at scale

A phylogeny is a hypothesis about who descends from whom. Build one from a few hundred sequences and you can check it by eye. Build one from a third of a million and almost nothing in the standard phylogenetics toolkit survives contact with the data.

The tree everyone was using had stopped keeping up

Haplogroup counts in the human mitochondrial tree from 2008 through 2026
Growth of the human mitochondrial reference tree, 2008 to 2026. The long flat stretch after 2016 is the decade when PhyloTree v17 stayed frozen while sequence data kept arriving.

PhyloTree v17 was published in 2016. It described about 5,400 haplogroups and quietly became the thing that nearly every lab, consumer test, and forensic pipeline depended on. It was a genuinely good resource. The problem was that it stopped being rebuilt.

Meanwhile sequencing costs collapsed and the number of available mitogenomes grew by more than an order of magnitude. When a reference tree stops being re-estimated, new sequences get grafted onto an increasingly outdated scaffold. Errors do not announce themselves; they accumulate quietly, and every downstream result inherits them.

Mitotree is the replacement. It resolves 53,588 haplogroups from 331,221 complete mitochondrial genomes, which collapse to 177,196 unique haplotypes once identical sequences are merged. That is roughly ten times the resolution of the previous standard, and it was built from scratch rather than grafted onto what came before.

Mitotree haplogroup counts and population origins across the major branches
Haplogroup counts and population origins across the major branches of Mitotree.

Why it had not been done

Two problems stood in the way, and they are different in kind.

The first is search. Finding a good tree means evaluating an astronomically large space of possible topologies, and the heuristics that do this well had never been benchmarked above roughly 50,000 sequences. Above that they either failed outright or returned error rates nobody would accept. Several groups had tried.

The solution was a recursive divide-and-conquer framework. It breaks the problem into tractable subproblems, runs weighted parsimony searches on each, and reassembles them, with the reassembly step designed so that decisions made locally do not lock in mistakes globally. It handles 175,000 haplotypes, which is 3.5× the largest dataset previously benchmarked in the literature.

Diagram of the Mitotree analysis pipeline from raw sequence through tree assembly
The pipeline. Raw reads pass through automated variant calling and QC, then into recursive tree search, reassembly, and support estimation.

The second problem is knowing whether the answer is right. A tree this size cannot be checked by inspection, and there is no independent ground truth for human matrilineal descent. So I generated simulated phylogenies where the true answer was known by construction and ran the entire pipeline over them, end to end, exactly as it runs on real data.

Across ten replicate simulations the pipeline recovered branches with a 3.5% false negative rate and a 1.0% false positive rate. Benchmarked against FastTree2, the only alternative that scales comparably, it performs substantially better on topological accuracy.

I also built a three-part node support metric, because “how confident are we in this branch” turns out to be three separate questions. A branch can be uncertain because there were not enough informative sites, because the search did not converge, or because the mutations genuinely conflict with each other. Collapsing those into one number hides the thing you most want to know, which is whether more data or more compute would help.

Everything upstream of the tree

Most of the work in a project like this is not phylogenetics. Before a single tree search runs, a third of a million samples have to be aligned, called, and filtered, and the filters matter enormously. Heteroplasmy, ambiguous base calls, reference bias, and post-mortem damage in ancient samples each produce characteristic artifacts that look exactly like real mutations and will happily anchor a spurious branch that then propagates through everything downstream.

Technical details

Variant calling follows an automated pipeline adapted from GATK Best Practices for mitochondrial short variant discovery, using GATK 4.6, BWA-MEM, and BCFtools. QC applies explicit screens for heteroplasmy, depth, ambiguity, contamination, and reference bias, and can exclude an entire contributing study when it shows systematic artifacts. Alignment is normalized around the known problem regions of the mitochondrial genome with MUSCLE, and markers are weighted by how consistently they behave across the dataset rather than treated as equally trustworthy.

Tree search runs weighted parsimony in TNT under the recursive divide-and-conquer framework, with IQ-TREE2 used for comparison. Downstream manipulation and support calculation use the R packages ape, phytools, phangorn, and treeio.

Divergence times come from a relaxed molecular clock in LSD, calibrated against BEAST, with 3,206 radiocarbon-dated ancient samples supplying age constraints on the branches where they fall. The finished tree is distributed through HaploGrep v3 plugins, so an external lab can assign haplogroups against Mitotree without changing anything about its existing workflow.

Haplogroup L7: an eighth African lineage hiding in public data

Ultrametric time tree showing the placement and age of mitochondrial haplogroup L7
Time-calibrated placement of L7 among the basal African mitochondrial lineages.

Modern humans have been around for something like 300,000 to 500,000 years, but global mitochondrial diversity coalesces to a single African ancestor roughly 145,000 years ago, because the matrilineal haploid genome has a quarter the effective population size of the autosomes. Most of human prehistory therefore played out in Africa, and the deepest structure in the mitochondrial tree is African structure.

For nearly two decades that structure was described by seven basal haplogroups, L0 through L6. They formed the backbone of the tree. Working through sequences that were already published, alongside newly generated ones, we found an eighth.

L7 is roughly 100,000 years old and had been misclassified in the literature. Its sublineage L7a* is the oldest singleton branch known in the human mitochondrial tree at about 80,000 years, meaning a lineage that split that long ago and is represented today by a single sampled sequence.

Geographic distribution of haplotypes by African population, with L5 and L7 frequency maps
Distribution of haplotypes by African population, with frequency surfaces for L5 and L7. Both are low-frequency relics centered on East Africa, in different populations.

L7 and its sister group L5 are both low-frequency relics centered on East Africa, but they sit in different populations. L7 turns up among the Sandawe, L5 among the Mbuti. Three small subclades of African foragers hint at where the combined L5’7 lineage originated, but most subclades divide into Afro-Asiatic and eastern Bantu groups, which reflects more recent admixture rather than ancient structure.

The general lesson is the one that led directly to Mitotree. A reference phylogeny is not a finished object. It needs regular re-estimation, or new samples get placed onto a scaffold that is drifting further from the data every year.

Technical details

Phylogenetic inference and divergence dating used BEAST 2.5 on SNP markers only, with the mitochondrial genome partitioned six ways so that relative rates across coding regions, tRNAs, and non-coding regions could be estimated and fixed to the mean overall rate. INDELs were identified and annotated to PhyloTree v17 conventions for annotation purposes but excluded from inference, since positions such as 309 and 315 carry high recurrence and alignment ambiguity.

The tree prior was a non-parametric Bayesian skyline, chosen so as not to assume anything in advance about population size or tree shape through time. Two independent chains of 5×107 MCMC steps sampled every 103, with Tracer used to confirm stationarity within and between runs.

Clade-defining ancestral variants were estimated by maximum likelihood ancestral state reconstruction using the ace function in ape, after converting the tree into a hierarchical structure with data.tree.

Dating the paternal tree

The same problem exists on the Y chromosome, with a complication. The Y-DNA phylogeny at FamilyTreeDNA now exceeds 90,000 whole-Y sequences, and the callable portion of the Y varies substantially between samples depending on coverage. A dating method that ignores this will systematically misdate branches that happen to be populated by lower-coverage samples.

I developed the age estimation method used across that tree. It accounts for variable coverage across the callable region and for uncertainty in the mutation rate rather than assuming either away, and it is the engine behind the public Y-DNA Discover tool and the relationship reports built on top of it.

Tree search as a methods problem in its own right

Working at this scale surfaced a general question. Tree searches often need to respect relationships that are already known, which means searching under topological constraints, and it was not clear how standard heuristics behave when parts of the topology are fixed in advance. That became a separate methods paper with Pablo Goloboff, who wrote TNT, the software the Mitotree searches run on.

Papers from this work

  • Maier P.A., Runfeldt G., Estes R.J., Goloboff P.A., Detsikas J., Burke A.J., Sager M.T., Vilar M.G. Mitotree: the universal human mitochondrial reference phylogeny at 10× the resolution. Cladistics, in review. DOI
  • Goloboff P.A., Maier P.A. Phylogenetic tree searches under topological constraints. Cladistics, in review.
  • Maier P.A., Runfeldt G., Estes R.J., Vilar M.G. (2022). African mitochondrial haplogroup L7: a 100,000-year-old maternal human lineage discovered through reassessment and new sequencing. Scientific Reports 12(1), 10747. DOI · PDF