Every qpAdm question about data quality — can my file support this, why is my standard error so wide, what does low coverage actually break — reduces to one number, and it is never the number people expect. Not your file's marker count, not the ancient panel's size: the intersection that survives merging, per statistic. This post puts the published figures in one place, because they are scattered across method papers and they decide, before any analyst touches anything, what your model's error bars can be.
The panels, for scale#
The reference sizes that matter: the 1240K capture array reads about 1,233,013 sites — the standard for ancient samples in the AADR — and the Human Origins array about 597,573 (the classic modern-reference panel). Consumer chips (23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA) genotype roughly 600–700k markers each — but chosen for medical and genealogical relevance, not for overlap with ancient-DNA panels.
So when your file merges into the reference, only positions present in both survive: typically a few hundred thousand sites against 1240K-captured ancients — and much less against low-coverage ancient samples, whose own missingness intersects again. The merge, not the chip, sets the model's information budget. (Chip generations differ meaningfully here, which is why the free file check reports usable markers per chromosome before anything is ordered.)
What the simulations say the budget buys#
The Harney et al. 2021 audit gives the clean benchmarks. At 1 million SNPs with ten diploid individuals per population, qpAdm's weights land within three standard errors of the truth in 99.3% of runs, with average SE ≈ 0.009. Cut the data to 100K or 10K SNPs and the estimates stay unbiased — but the spread widens steadily. Coverage does not bend a qpAdm model; it loosens it. That is exactly what a wide SE means, and why the publish bar here is stated in SE terms: SEs are set by the merge before any search begins, and no amount of analyst effort shrinks an error the file has already fixed.
Three robustness results from the same audit are worth pinning, because they cover the worries people actually have. Pseudohaploid data (standard for ancient genomes) has little impact on the estimates. Ancient-DNA damage is tolerable when all populations carry similar rates — the real hazard is mixing ancient and present-day populations carelessly in one model, where differential damage biases the statistics. And single-individual populations are usable — including single-individual targets, the consumer case — provided their honest, wider SEs are believed rather than resented.
The allsnps lever#
With sparse data, the biggest single decision is how missingness is handled. Classic qpAdm's
allsnps: YES computes each f4-statistic on every site
available for that statistic's four populations, instead of restricting all statistics to the
one set of sites present everywhere. Harney et al. measured the difference:
| Missingness | mean SE, allsnps: YES | mean SE, allsnps: NO |
|---|---|---|
| 25% | 0.006 | 0.006 |
| 80% | 0.015 | 0.025 |
| 85% | 0.020 | 0.066 |
| 90% | 0.035 | 9.994 |
That last row is not a typo: without allsnps, at 90% missingness the model carries no information
at all. The trade is that each statistic sits on its own SNP set, so per-f4 counts differ and the
covariance is approximated — a price worth stating and almost always worth paying on real ancient
data. (In ADMIXTOOLS 2, allsnps = TRUE requires genotype
input rather than precomputed f2 blocks — a classic setup trap.)
What a consumer file honestly supports#
Putting the numbers together for the case this site exists for — a modern chip file as target, ancient sources, distal by construction:
- A dense, healthy chip file (recent 23andMe v5, AncestryDNA, MyHeritage) merges to an intersection that supports publishable models: SEs under 0.10 — our bar for every source in every published model, tier regardless — are realistic, and well-sampled sources often run far tighter.
- A thin or old file may fix SEs above the bar before anyone starts. The honest response is the one we give in the buyer's guide: run the free file check first, and if the file cannot support the analysis, keep your money or upgrade the input — a whole-genome VCF raises the intersection substantially and is the one upgrade that changes the arithmetic.
- The community floor — avoid samples under ~50k overlapping SNPs — is a practitioner rule of thumb for reference samples, and a useful sanity line: below that, nothing about a model's numbers deserves the word "estimate".
The through-line: SNP counts do not make models right or wrong — sources and outgroups do that. Counts decide how sharp the statement can be. A qpAdm analysis here reports the per-statistic SNP counts in the model record for exactly that reason: the information budget is part of the result, and a reader should never have to guess it.
Terms used here are defined in the glossary.
References#
- Harney, É., Patterson, N., Reich, D. & Wakeley, J. (2021). Assessing the performance of qpAdm. Genetics, 217(4), iyaa045.
- Reich Lab. Allen Ancient DNA Resource release notes (site counts: 1,233,013 / 597,573).
- Lazaridis, I. et al. (2014). Ancient human genomes suggest three ancestral populations for present-day Europeans. Nature, 513, 409–413.



