qpAdm answers a deliberately small question: can this one population be written as a mix of these sources, and in what proportions? Its sibling qpGraph asks the large one: what is the whole history — splits, drifts, admixtures — relating a dozen populations at once? Large questions carry large caveats, and qpGraph's were measured precisely in 2023. This is the method, the automation that changed how people use it, and the honest way to read any admixture graph you meet — including the ones behind the models we run.
From identities to topologies#
Everything rests on the same currency qpAdm spends: f-statistics. An admixture graph is a directed graph of populations — leaves are your samples, internal nodes are ancestors, plain edges carry drift, and admixture nodes join two parents in stated proportions. Any such graph predicts every f2, f3 and f4 among its leaves; qpGraph fits the edge lengths and mixture weights to minimise the gap between predicted and observed, then reports the fit and the worst residual — the single statistic the graph explains worst, in standard errors. The working convention: a graph whose worst residual sits under about |Z| = 3 is compatible with the data; one failing is missing at least one event.
The relationship to qpAdm is exact, not analogical: a qpAdm model is what an admixture-graph neighbourhood looks like when you collapse everything except one target, its sources and the outgroups — the original 2015 supplement introduced it in precisely those terms. qpAdm trades the panorama for the ability to not specify most of history; qpGraph pays the full specification cost for the full picture.
What find_graphs changed#
Classic qpGraph evaluated one hand-drawn topology at a time — the analyst proposed, the residuals disposed, and the search through graph space happened in a human's patience. ADMIXTOOLS 2 automated it: find_graphs explores topology space from random starts, scoring candidates and keeping the best fits for a given number of admixture events. Suddenly anyone could search millions of topologies — which is exactly what produced the finding that now governs the method.
The many-graphs problem#
Maier and colleagues, having built the search tool, pointed it at the literature: for 19 of 22 published admixture graphs, the automated search found alternative topologies fitting the same data as well or better — often many alternatives, frequently with historically incompatible structures. Different sources for the same population, admixture edges reversed, ghosts appearing and dissolving, all inside the data's tolerance.
Read that finding the way the qpAdm audits should be read: not "the method is broken" but "single-winner claims were never licensed". An f-statistic fit is a consistency check, and consistency is a set property — the honest output of a graph analysis is the family of well-fitting, temporally plausible graphs, with conclusions restricted to the features shared by the whole family. The paper's own recommendations: search exhaustively, constrain with external knowledge (dates, archaeology, known impossibilities), and claim only what every survivor agrees on. The same epistemics as reporting the family of passing qpAdm models, one floor up.
When to reach for which#
qpGraph earns its cost when relationships among many populations are the question — where a deep lineage attaches, whether a ghost population is required at all, which of two branching orders the data tolerates. For "what is this one population made of, in what proportions, with what uncertainty", qpAdm remains the sharper instrument: its weights come with standard errors, its rejections are specific and diagnostic, and its blind spots are measured. In practice the two collaborate — graphs (published ones, and the field's accumulated topology) tell you which qpAdm sources are even coherent to propose; qpAdm prices the proportions. That division of labour is how the published literature uses them, and how we do.
Terms used here are defined in the glossary.
References#
- Patterson, N. et al. (2012). Ancient admixture in human history. Genetics, 192(3), 1065–1093. (qpGraph's introduction.)
- Maier, R. et al. (2023). On the limits of fitting complex models of population history to f-statistics. eLife, 12, e85492. (find_graphs and the 19-of-22 finding.)
- Haak, W. et al. (2015). Massive migration from the steppe was a source for Indo-European languages in Europe. Nature, 522, 207–211. (qpAdm as graph neighbourhood.)
- Lipson, M. (2020). Applying f4-statistics and admixture graphs: theory and examples. Molecular Ecology Resources, 20(6), 1453–1464.



