Choosing qpAdm sources: proxies, rotation and competing models
How to choose source populations for a qpAdm model, why sources are proxies, how the rotating strategy works, and how to compare competing source sets.
Updated 3 min read
A qpAdm source is a proxy: a sampled population that stands in for the real ancestral group, which was almost never sampled. Choose sources that are close to the real ancestors and differ from each other in their relation to the right populations, then let a rotation test them against their alternatives.
What makes a good source
Close to the real ancestor. A source does not need to be the ancestor, but drift it has and the ancestor did not have makes the model fail. Sources older than and near to the target in place are often best.
Distinct from the other sources. The right populations must tell the sources apart. Two sources that relate to the right populations in the same way give unstable weights with large standard errors.
Well covered. A source of one low-coverage genome costs SNPs in every statistic; see How many SNPs does qpAdm need?
Unmixed with the target. A source that already carries the target's own later ancestry absorbs it, and the model can fit for the wrong reason.
How many sources
Start with the fewest sources that history suggests, usually two or three. Add a source only when the smaller model fails and the larger one fits. qpAdm reports nested models: if a model without one source still fits, that source may not be needed. Each extra source needs one more right population, and the weights become less precise.
The rotating strategy
In a rotation, you choose a pool of candidate populations. Each model takes some candidates as sources and puts all the other candidates among the right populations. A source that fits while its close relatives sit on the right is well supported, because the model had the chance to fail.
Harney et al. (2021) tested qpAdm on simulated histories and recommend a rotating strategy when possible. It also avoids hand-picking a right panel after seeing the results.
Read a rotation as a ranking, not one answer:
Keep the models with p ≥ 0.01 and every weight between 0 and 1.
If several fit, the data cannot choose between them. Report them all, or add right populations that separate them.
A candidate that never fits as a source, but whose presence on the right makes others fail, is informative too.
qpWave: can the sources be told apart?
Before trusting weights, test the sources alone with qpWave against the right populations. If two sources are rank 0, the right populations see them as one stream of ancestry, and their weights in the model mean little.
Competing models
A model that fits is one of perhaps many that fit. Replace each source with a related population, for example a farmer from another site or period, and run again. If the alternatives fit equally well, report the range rather than one set of weights.
Choosing and rotating sources in Nexju
Rotations run from a model: guided rotation swaps one source slot at a time, and exhaustive rotation tries every combination from your pool. Nexju previews each rotation, so you see how many models it will fit before it runs. Rotations run on every plan.
In a workflow, a Find sources step fits every combination of up to 20 candidates as 1 to 4 sources, up to 500 models. Candidates a model leaves out join its right populations. It tests each pair of candidates with qpWave, to show which ones the right populations cannot tell apart, and refits up to 12 plausible models on fixed right populations. Its tests use p ≥ 0.05.
A Check rights step then tests that the right populations tell the chosen sources apart, which ones the result depends on, and which candidates would add to it.
On the Pro plan, Competing models fits 2 to 6 source sets, each with its rivals' sources among its right populations, and Add a source refits a model with each of up to 40 candidate sources added.
A qpAdm model in Nexju takes up to 5 sources.
References
Harney É. et al. 2021. Assessing the performance of qpAdm: a statistical tool for studying population admixture. Genetics 217. doi:10.1093/genetics/iyaa045
Haak W. et al. 2015. Massive migration from the steppe was a source for Indo-European languages in Europe. Nature 522. doi:10.1038/nature14317
Patterson N. et al. 2012. Ancient admixture in human history. Genetics 192. doi:10.1534/genetics.112.145037
Maier R. et al. 2023. On the limits of fitting complex models of population history to f-statistics. eLife 12. doi:10.7554/eLife.85492