What is qpWave? Counting streams of ancestry
qpWave counts the streams of ancestry that link populations to a set of references. How its rank test works and how to read rank 0 and rank 1.
Updated 2 min read
qpWave counts the streams of ancestry that separate one set of populations (the left) as seen from another set (the right). If two populations are rank 0, they are a clade with respect to the right populations: no right population can tell them apart.
qpWave is part of ADMIXTOOLS. Reich et al. 2012 used it to show that Native Americans descend from at least three streams of migration from Asia. qpAdm is built on the same test.
Left and right populations
- Left: the populations you want to compare, for example two ancient groups from neighbouring sites.
- Right: references that relate in different ways to the left populations, with a distant base first. Choosing right populations applies here as well.
The rank test
qpWave builds a matrix of f4-statistics, f4(L0, Li; R0, Rj), for every left population Li and right population Rj. The rank of this matrix is the number of independent ancestry streams, minus one, that the right populations can detect in the left set.
qpWave tests rank 0, then rank 1, and so on. For each rank it reports a p-value: the chance of the observed misfit if the matrix really had that rank.
- Rank 0 not rejected (p above 0.05): all left populations derive from one stream, as seen from the right. They form a clade.
- Rank 0 rejected, rank 1 not rejected: two streams. With two left populations, they differ; with three, one may be a mixture of the other two.
- Each further rank is one more stream.
qpWave and qpAdm
qpAdm with a target and n sources is a qpWave test of rank n − 1 on the left set {target, sources}, plus an estimate of the weights. If the rank of {target, sources} is the same as the rank of {sources} alone, the target adds no new stream, and qpAdm can express it as a mixture of the sources.
Typical uses
- Grouping genomes. Before pooling ancient genomes from one site as a population, test pairs with qpWave. Pairs that are rank 0 can be pooled; an individual who rejects rank 0 against the rest is an outlier.
- Testing continuity. Is an Iron Age group a clade with the Bronze Age group from the same region, or did new ancestry arrive?
- Counting sources. How many source populations does a qpAdm model need?
Running qpWave
ADMIXTOOLS runs qpWave from the command line, and ADMIXTOOLS 2 with qpwave. Nexju runs qpWave rank tests on every plan, on the AADR or on your uploaded genome.
References
- Reich D. et al. 2012. Reconstructing Native American population history. Nature 488. doi:10.1038/nature11258
- Patterson N. et al. 2012. Ancient admixture in human history. Genetics 192. doi:10.1534/genetics.112.145037
- Harney É. et al. 2021. Assessing the performance of qpAdm. Genetics 217. doi:10.1093/genetics/iyaa045