Skip to content

qpAdm in Three Steps

What qpAdm asks, how it computes and where it fails: a short guide to reading a qpAdm result without reading more into it than the test supports.

Mvagnus Albertus · Popualtion Geneticist

Published 6 min read

qpAdm tests whether a target population's pattern of shared drift with a set of reference populations can be reproduced by a weighted mixture of candidate sources chosen by the researcher. It returns weights, standard errors and a p-value. A model that passes is feasible, not proven: several models can pass at once, and the result depends on the sources and references chosen. Step 1 explains the question, Step 2 the computation and how to read it, Step 3 the documented limits.

Step 1. The question

Populations that split from a common ancestor change their allele frequencies independently, a process called genetic drift. Recently split populations still look alike; long-separated ones differ. When two populations mix, the result carries the drift history of both. qpAdm reads this shared history in allele frequencies. It makes no direct statement about names, languages or cultures.

The building block is the statistic f4(A, B ; C, D) (Patterson et al.1). It asks whether the allele-frequency difference between A and B is correlated with the difference between C and D. In a clean tree, where A and B form one branch and C and D another, the two differences arise from separate drift and the statistic is zero. Gene flow linking the two pairs makes them share history, and the statistic moves away from zero (Table 1).

Table 1f₄ as a test of tree-likeness

History

Drift paths of the two pairs

f4(A, B ; C, D)

Tree-like: A and B form one branch, C and D another

share no branch

= 0

Gene flow from B into D

B and D now share drift: the paths overlap

≠ 0

In a tree the two drift paths (A and B, C and D) never overlap; gene flow from B into D makes them overlap.

qpAdm, introduced by Haak et al.2, turns many such statistics into one model. The researcher supplies two lists. The Left list holds the target and its candidate sources. The Right list holds reference populations that should relate differently to the different sources. The method asks whether one set of weights, summing to 1, makes the sources' combined profile match the target's across the whole Right list.

In a schematic example the Left list holds a target and two candidate sources (Source 1, Source 2) and the Right list five references (O1 to O5). Every f4 is measured against the Right populations, and the target's profile of shared drift with O1 to O5 is matched by a weighted combination of the source profiles: target = 0.62 × Source 1 + 0.38 × Source 2. The values are illustrative.

Step 2. The computation and how to read it

qpAdm constrains the target's allele frequencies to be a linear combination of the sources' and compares this constrained model with an unconstrained alternative. The p-value comes from a likelihood ratio test in which the constrained model is the null hypothesis (Harney et al.3). A low p-value rejects the mixture; a high one fails to reject it. Standard errors come from a block jackknife, which resamples blocks of the genome and was well calibrated in the simulations of Harney et al.

One result line reports the target, the weights with their standard errors, the p-value and the number of SNPs used (Table 2).

Table 2Anatomy of one qpAdm result line, with what each element does not establish

Element

Example

What to keep in mind

Target

Population X

Target and sources are chosen by the researcher, not found by the method

Weights

0.62 ± 0.05 (Source 1), 0.38 ± 0.05 (Source 2)

Proportions sum to 1. Outside 0–1 the model is infeasible, whatever the p-value

p-value

0.31

A failure to reject, not a confirmation: many models pass this bar

SNPs used

412,118

SNPs shared across all populations in the run; few SNPs widen every error

Illustrative values, not from a run.

A result is usually read in two tests. First, the p-value must not fall below a chosen threshold; 0.05 is common (Harney et al.3) and 0.01 is used in some large screens (Flegontova et al.4). Second, the weights must be plausible: models with proportions outside the range 0–1 are treated as implausible, in practice allowing for ± 2 standard errors. A model passing both is called feasible.

From result line to claim: two tests, then the limit

  1. Model not rejected? The p-value is at or above the threshold (commonly 0.05 or 0.01).

  2. Weights sensible? Each weight is within 0–1 (allowing ± 2 SE).

  3. The model is “feasible”. It fits the data; nothing more is shown.

Feasible is not the true history. Whether the sources are plausible, and whether other models also fit, must be judged outside the test.

The method also depends on its design. The references must be differentially related to the sources; if all references are equally related to all sources, qpAdm “will not produce meaningful results” (Harney et al.3). Harney et al. recommend rotating the references rather than relying on a single reference set.

Step 3. Where it fails

Simulation studies describe the limits of qpAdm consistently. The central one is that more than one model usually fits (Table 3).

Table 3One target, five candidate models: four pass the test, and the test does not say which one is right

Model

p-value

At the threshold of 0.05

Source A + Source B

0.42

passes

Source A + Source C

0.18

passes

Source A′ + Source B

0.31

passes

A + B + C (3-way)

0.11

passes

Source D + Source E

0.002

rejected

Several candidate models pass on the same target. The test rejects clearly wrong models but does not choose among those that fit. Illustrative values, not from a run.

Documented limits

  • Several models pass. qpAdm is fairly conservative in rejecting models, and non-optimal sources closely related to the true source are often not rejected (Harney et al.3). With typical ancient-DNA data it has limited power to separate minimally differentiated sources, and when a suboptimal source is used the weights tend to favour the population most similar to the true source (Williams et al.5).

  • P-value ranking is a rough guide only. In one simulation the optimal model had the highest p-value in 48% of replicates (Harney et al.3); with good coverage the ranking tracks closeness to the true source (Williams et al.5).

  • Gene flow and reference choice matter. Gene flow into a source after its split biases the weights, more strongly when the migrating population is a reference; adding many references can lead to rejection of plausible models; pulse and continuous migration are not distinguished (Harney et al.3).

  • Data quality matters. Differential ancient-DNA damage, high missingness and small samples distort results, and co-analysing ancient and present-day data is discouraged (Harney et al.3).

  • Screens inflate false findings. In high-throughput protocols that test many models, false discovery rates exceeded 50% for many parameter combinations, because the prior odds of a true model are low (Flegontova et al.4).

  • Stepping-stone landscapes. Weights between 0 and 1 are largely restricted to symmetric arrangements of sources around the target, so the 0–1 criterion can mislead unless interpreted spatially (Flegontova et al.4).

Reading a qpAdm claim: six questions

  • Which sources were tested, and why these?

  • Which other models also pass, and were they reported?

  • How were the references chosen, and was a rotation used?

  • How many models were screened in total?

  • Are the SNP count, standard errors and p-value reported?

  • Does the claim go beyond “feasible”?

Taken together, qpAdm is a strong tool for rejecting models and a weak tool for choosing among those that fit. Its results are most useful when sources are justified independently, alternatives are shown, and the conclusion stays at the level the test supports.

A method guide: qpAdm is described, not run. No dataset, SNP set or right panel is involved. The values in Tables 2 and 3 are invented to show how a result is read; they are not results of any run. What it asks, how it computes, where it fails. 2026.

1.

Patterson N, et al. Ancient admixture in human history. Genetics 192(3), 1065–1093 (2012).

2.

Haak W, et al. Massive migration from the steppe was a source for Indo-European languages in Europe. Nature 522, 207–211 (2015).

3.

Harney É, Patterson N, Reich D, Wakeley J. Assessing the performance of qpAdm: a statistical tool for studying population admixture. Genetics 217(4), iyaa045 (2021).

4.

Flegontova O, et al. Performance of qpAdm-based screens for genetic admixture on admixture-graph-shaped histories and stepping-stone landscapes. Genetics 230(1), iyaf047 (2025).

5.

Williams MP, Flegontov P, Maier R, Huber CD. Testing times: disentangling admixture histories in recent and complex demographies using ancient DNA. Genetics 228(1), iyae110 (2024).

X · @AlbertusMvagnus

Every article
  • PCA5 min read

    Entropy-Rescaled PCA, Step by Step

    How entropy-rescaled PCA turns map positions into distances between groups: the rescaling curve, the four steps, a worked example with two individuals, and a plain versus rescaled comparison on a Southeast Balkans series.

    Mvagnus Albertus

  • Medieval58 min read

    Medieval Germany and England in entropy-rescaled PCA distances

    Nearest groups, sides and betweenness for 53 medieval, Viking-age and ancient groups on entropy-rescaled PCA maps: which ordinal statements survive a change of panel, map and origin, and which do not.

    • PCA
    • Map
    • Dates
    • PCA

    Mvagnus Albertus

Allow analytics cookies? They help us see how the site is used so we can improve it. Your DNA and results are never included. Details