---
title: "qpAdm rotation explained: fair comparison, and why pre-study odds decide its error rate"
description: "Rotation makes qpAdm comparisons fair, not winners true. What the audits found on admixture graphs and landscapes, and why pre-study odds set the error rate."
canonical: https://www.ancestrify.io/blog/qpadm-rotation-explained
date: 2026-08-31T10:16:00+00:00
updated: 2026-09-24
author: "Andi Thomaj"
---

# qpAdm rotation explained: fair comparison, and why pre-study odds decide its error rate

Choose sources and outgroups one model at a time and you inherit a suspicion: did the analyst tune the
[right set](/blog/how-to-choose-qpadm-sources-and-outgroups#the-standard-right-sets) until the favourite model passed? The
**rotating protocol** was invented to answer that suspicion with procedure. Take one candidate pool; in each
model, some candidates are sources and the rest join the outgroups; test every arrangement. No population is
privileged, every model faces comparable opposition, and the search space is explored rather than navigated
by preference. Skoglund et al. 2017 introduced the strategy for African population history; Harney et al. 2021
recommended it over the fixed-base alternative, whose models are "not equivalent, and therefore are difficult
to compare".

So rotation is the gold standard? For *fairness of comparison*, yes. For *truth of the winners*, the 2024 and
2025 audits changed the conversation, and the number that decides it turns out to be neither the protocol nor
who runs it.

## What rotation does well

The fixed-base strategy has a structural flaw the auditors named precisely: any population parked permanently
in the reference set can never be tried as a source, so the search silently excludes models nobody decided to
exclude. Rotation fixes that, and adds a second virtue: moving a rejected model's sources into the right set of
surviving models, **model competition** in Flegontova et al. 2025's terminology, is a genuine stress test,
since [a reference differentially related to a source](/blog/f4-statistics-explained) either sharpens the
model or exposes the proxy. In [ADMIXTOOLS 2](/blog/run-qpadm-in-r-admixtools2) the whole machine is one
call, `qpadm_rotate()`, and precomputed f2 statistics make thousands of models cost seconds.

That cheapness is the trap, though not quite for the reason usually given.

## What the audits measured

Flegontova et al. 2025 scored qpAdm screens against simulated histories where the truth was known, in two very
different worlds.

On **admixture-graph histories**, discrete populations mixing in occasional pulses, temporal order dominated.
Run without temporal stratification, with targets allowed to predate sources (the
[proximal regime](/blog/qpadm-distal-vs-proximal)), the rotating protocol's false-discovery rate ranged from
72.5 to 100% across conditions, mostly through false rejections of simple true models that push acceptance up
the complexity ladder, and it grew with more data. Distal models, with every source as old as or older than the
target, had median rates of 16.4 to 31.2% (their Fig. 3), and validating them with PCA and
[unsupervised ADMIXTURE](/blog/qpadm-vs-admixture-software) brought the rate to about 0% in those simulations.

On **stepping-stone landscapes**, groups exchanging migrants with their neighbours continuously, the protocol
stopped mattering: rotating and nonrotating screens showed no statistically significant differences in
false-discovery rate (their Fig. 7). Rotation did change one thing. Because a rotation tries many splits of the
same pool, some with the left and right sets far apart, it finds higher p-values on average, and rotating
experiments stopped at simpler models than nonrotating ones.

Two structural cautions hold in both worlds. A screen ranks its survivors somehow, and the tempting key, the
p-value, picks the true model in only 48% of cases (Harney et al. 2021):
[p ranks nothing](/blog/how-to-read-qpadm-p-value-z-score-standard-error). And filters on the admixture
weights cut false positives without fixing the false-discovery rate on their own. In Williams et al. 2024's
rotation simulations of recent history, a p ≥ 0.05 filter alone had a false-positive rate of 27.5% and a
false-discovery rate of 84.1%; requiring weights inside [0,1] brought those to 9.8% and 57.4%; adding a
two-standard-error margin cut false positives to 6.0% and left the false-discovery rate at 61.0%. Why the
second number barely moves is the subject of the next section.

## The number that decides it: pre-study odds

The false-discovery rate is the share of accepted models that are wrong, and it depends on three things. Two
belong to the test: its false-positive rate (how often a wrong model passes) and its power (how often a right
one does). The third belongs to the search: the **pre-study odds**, the ratio of plausible to implausible models
among everything tested, fixed before a single model runs. The paper's equation is

`FDR = FPR / (FPR + R × (1 − FNR))`

where R is the pre-study odds and 1 − FNR is the power. Put numbers in. A test with a 1% false-positive rate and
20% power, run over a set where one model in twenty-one is plausible (odds of 1 to 20), accepts one wrong model
for every right one: a 50% false-discovery rate. Run the same test over a set where one model in three is
plausible (odds of 1 to 2) and the rate falls to about 9%. Nothing about the test changed.

That is why tightening the filters barely moved Williams' false-discovery rate: when implausible models vastly
outnumber plausible ones, a stricter filter also costs power, and the ratio stays bad. It is also why the
landscape screens in Flegontova et al. fared so poorly. Built like typical published high-throughput protocols,
they had pre-study odds of about 0.18 for two-way models, 0.04 for three-way and 0.015 for four-way, and across
their criteria the false-discovery rate tracked those odds almost perfectly (Pearson r between −0.86 and
−0.99).

So the distinction that matters is not manual against automated. Four hundred models composed one at a time can
still be a fishing expedition with terrible odds, and a script that tests three well-motivated hypotheses is
not. The distinction is between a **small set of hypotheses made plausible by evidence outside qpAdm**
(archaeology, chronology, geography, earlier genetic work) and a **large exploratory search** that lets qpAdm
pick from everything available. The first is what the authors recommend. The second is where their
false-discovery rates live.

## What rotation is actually for

Read the numbers as an operating manual rather than a verdict and rotation has a clear, narrow job: **map the
model space, never crown the winner.** Rotate to learn which sources are interchangeable (they swap without
moving the fit, a [cladality fact](/blog/qpwave-explained) worth knowing), which candidate the data refuses
everywhere, and whether any temporally legal two-way family survives at all. Then test the few hypotheses that
the history, not the screen, makes plausible: era-appropriate outgroups
[chosen for the specific contrast](/blog/how-to-choose-qpadm-sources-and-outgroups), simple models given first
refusal, and the final candidate defended with margins and alternative right sets rather than with its rank in
a screen. And read the result for what it is. On a landscape-like history, a fitting model describes a position
between sampled groups; it does not prove that those groups mixed.

## How our search is built

Here is how that applies to our own reports. Candidate sources are fixed before any model runs: a pool curated
for the customer's declared origins and era. Our analyst tests models drawn from that pool, including automated
searches over it, and re-tests the survivors on alternative right sets and against their simpler nested models;
a person reviews the candidates, chooses the model to publish and approves it. No search result is published
without that approval. The pool is our main lever on pre-study odds. The search inside it is large, which is why
a [published model](/blog/qpadm-model-record-explained) is best read as one adequate description of a genome
relative to the sampled groups, not as proof that those groups mixed.

The [Ancestry Workbench](/blog/run-your-own-qpadm-model-lab) hands you the same tools interactively: your
merged dataset, any model you can compose, a rotation fitted as a batch of real runs and labelled as your own
hypotheses, and the numbers to reject most of what you try. Start from a few hypotheses you can justify before
anything runs, and the rejections will mean something.

Terms used here are defined in the [glossary](/glossary).

## References

- Skoglund, P. et al. (2017). Reconstructing prehistoric African population structure. *Cell*,
  171(1), 59 to 71.
- Harney, É., Patterson, N., Reich, D. & Wakeley, J. (2021). Assessing the performance of qpAdm.
  *Genetics*, 217(4), iyaa045.
- Williams, M. P. et al. (2024). Testing times: disentangling admixture histories in recent and
  complex demographies using ancient DNA. *Genetics*, 228(1), iyae110.
- Flegontova, O. et al. (2025). [Performance of qpAdm-based screens for genetic admixture on graph-shaped histories and stepping stone landscapes](https://doi.org/10.1093/genetics/iyaf047). *Genetics*, 230(1), iyaf047.

*Editorial note: revised on 24 September 2026. An earlier version quoted the admixture-graph false-discovery rates as the price of rotation in general, framed the problem as automated screening against manual model building, and described our own search in terms that no longer matched how it runs. This version adds the stepping-stone landscape results and puts pre-study odds at the centre.*
