Every qpAdm report we publish comes with the numbers needed to argue with it: the p-value, every source's weight, standard error, z-score and 95% confidence interval, the complete right set, and the full model record (chi-square, degrees of freedom, the nested-model table, the rank test) as a plain-text download — see The model record explained. The Model Lab is the next step — the ability to run the argument yourself, on your own merged genome, with real ADMIXTOOLS 2. This guide explains what it is, how to use it well, and what to expect, which is mostly rejections.
What the Model Lab is#
The Model Lab is a €10 unlock on a published qpAdm report — one unlock, one time, never two purchases. It covers two things:
- Running your own qpAdm models. Your sample is always the target; you choose the sources and
the outgroups from your own merged panel, and the model runs as
qpadm()from ADMIXTOOLS 2 — the same code the published report used — up to 100 runs per rolling 24 hours. - Downloading the merged dataset. The exact EIGENSTRAT bundle (
.geno,.snp,.ind) the report was computed from, so everything can be reproduced on your own machine. It is multiple gigabytes; download links are short-lived and downloads are metered.
The product page is /qpadm/model-lab. What it is not: a way to get a different published result. The report stays as published; the Lab is a workbench beside it.
Why it exists#
Two reasons. The first is verifiability: a qpAdm result you cannot re-run is a claim, and one you can is a finding. The second is education: nothing teaches how a model works like watching it fail. Run a model with an outgroup that is too close to a source and watch the p-value collapse; swap one steppe proxy for another and watch the weights move; remove a source with a small z-score and see the nested model pass. An hour in the Lab does more for your reading of the report than any explainer — including How to read qpAdm results, which you should nonetheless read first.
Before your first run#
Read the published model. Note its sources, its right set and its p-value. That model cleared the publish bar after a hand search; your first job is not to beat it but to understand it. Then read Understanding qpAdm for what the right set does, because that is where most of your runs will go wrong.
Choosing sources#
Sources are the populations you propose the target descends from. Rules that save runs:
- Stay in one era. A model mixing a Mesolithic source with a Roman-period one asks the method to treat a later, already-mixed population as an ancestor of an earlier structure, and it will usually — correctly — reject it.
- Keep sources distinct. Two closely related sources produce two large standard errors and weights that trade off arbitrarily. If you want to know whether a finer split is resolvable, try it, but expect the answer to be no on most files.
- Start with two or three. Adding sources improves fit mechanically. A three-way model that passes is not evidence that a four-way model is needed.
- Respect chronology. A source that postdates the target cannot be its ancestor, however good the fit.
The curated source populations, each with its own page, are in the ancestry population directory.
Choosing outgroups#
The right set gives the method its power to tell sources apart, and it is where a model is won or lost. A good right set is distant from every source, diverse enough to distinguish them, and large enough to have power — a dozen populations is typical in the literature. Start from the published model's right set; it was chosen to make its sources distinguishable and is a sound base for variations.
Two failure modes to recognise in your results. A right set that is too small or too close to the sources lets almost anything pass — a p-value of 0.9 against six weak outgroups is not a strong result. A right set containing a population that shares recent drift with one source rejects good models as readily as it accepts bad ones.
Reading a run#
Read in this order, every time: p-value, then standard errors, then z-scores, then weights.
- p below 0.05 — rejected. Do not read the weights. Check the right set and chronology first, then try a simpler model.
- p above 0.05 — admissible, meaning not refuted. Now the standard errors: a weight smaller than twice its SE is not a percentage you can repeat. Then z-scores: a source with |Z| below about 2 is not measurably contributing.
- Only then the weights, as properties of this model against this right set.
Then run the nested model — the same sources minus the weakest one. If it passes, the weakest source was not earning its place. This is the single most useful habit the Lab teaches.
What 100 runs a day is for#
It is not for rotation. Trying combinations until one passes is the practice that Harney and colleagues (2021) showed produces confident wrong answers, and it is why we removed automated rotation from our own pipeline. A hundred runs is enough for a disciplined day: a handful of alternative proxies for each source, a few right-set variations, the nested models for each candidate. If you find a model that clears the bar and seems better than the published one, that is genuinely interesting — and it is the kind of thing that, when we find it ourselves on revisiting a report, is published as a second version for €15 with the original left exactly as it was.
Working offline with the EIGENSTRAT bundle#
The download gives you the merged panel itself: your genotypes and the ancient reference at the same positions, in the format ADMIXTOOLS 2 reads natively. With it you can run anything the package offers — qpWave, f3, f4, qpGraph — on your own hardware, with no run limit and no dependence on us. Installing ADMIXTOOLS 2 is an R package install; Maier and colleagues (2023) describe the package. The bundle is the strongest form of verifiability we can offer: not "trust the report", but "here is everything needed to check it". Its lightweight companion is the report's own plain-text model record, which needs no unlock: every panel label, outgroup, count and test of the published model in one file, so the bundle and the record together reproduce the model exactly.
What the Lab is not#
It does not run qpWave, f3 or f4 against your sample on our servers — those remain part of the operator's published workflow. It does not change the published report. And it does not make any population your ancestor: a source in your best model is a statistical proxy, and a passing model is one the data did not refute. The free AdmixTools 2 Lab offers the same methods over the public reference panel without a purchase, if you want to learn the workflow before unlocking it on your own sample. The buyer's guide covers the product the Lab sits on; the terms are in the glossary.
References#
- Harney, É., Patterson, N., Reich, D. & Wakeley, J. (2021). Assessing the performance of qpAdm: a statistical tool for studying population admixture. Genetics, 217(4), iyaa045.
- Maier, R. et al. (2023). On the limits of fitting complex models of population history to f-statistics. eLife, 12, e85492.
- Patterson, N. et al. (2012). Ancient admixture in human history. Genetics, 192(3), 1065–1093.



