A field guide to population genetics

Computational population genetics, clearly explained

Posts on genetic data, ancient DNA, and the methods used to study ancestry and human history.

Latest Posts

Latest post

A Potential Bronze Age Anatolian-Derived V1636 Sample (I41584)

Among the Akbari et al. dataset, there is a previously unreported individual (Sample IID: I41584/I41584_preQC) potentially from Anatolia. His terminal Y-DNA subclade is Y148982/Y106006 (TMRCA ~3100 BCE according to FTDNA), a lineage that also includes most modern West Asian and Near Eastern V1636 samples. His maternal haplogroup is HV29d1, also according to FTDNA. ...

September 4, 2026

Ust-Ishim: A 45,000-Year-Old Genome at the East–West Eurasian Split

Ust-Ishim is a sample identified from only a femur bone pulled out of eroding sand on the banks of the Irtysh River in western Siberia in 2008. Later analysis established that the bone belonged to a man estimated to have lived around 45,000 years ago. His genome is one of the earliest Upper Paleolithic WGS genomes. Neither Clearly East- nor West Eurasian What makes this sample particularly interesting is that he does not fall clearly into either the East or West Eurasian category. The initial Fu et al. study placed him before, or approximately at, the separation of subsequent eastern and western Eurasian populations, which include all modern Eurasian populations. Later graph modelling reached essentially the same conclusion; the best fit placed Ust-Ishim slightly towards the West Eurasian branch, but the uncertainty overlapped the East-West split. ...

August 24, 2026

Convert 23andMe, AncestryDNA, MyHeritage & FTDNA Raw DNA to PLINK (BED/BIM/FAM)

To convert raw DNA data from 23andMe, AncestryDNA, MyHeritage, or FamilyTreeDNA (FTDNA) to PLINK binary format (.bed, .bim, .fam), you will have to first convert the raw file to 23andMe format. You can then convert it with PLINK 1.9 using --23file. Converting Raw DNA to 23andMe Format with AWK Windows users can use WSL to access awk; see How to Download the AADR Dataset (Linux & WSL). If your DNA file is already in 23andMe format, skip this section. ...

August 19, 2026

Genetic Traits of Loschbour: Appearance, Height, Blood Type, and More

I was inferring genetic traits of ancient individuals, among them the “Cheddar Man”, whose pigmentation phenotype I thought was well established from his genotype. However, most of the 58 trait markers I was checking for could not be called reliably (with MAPQ ≥30 and base quality ≥30). Most markers had no reads at all, several others were supported by only a single read. This included markers like HERC2/OCA2 rs12913832 for eye colour, likewise SLC24A5 and SLC45A2 used to infer skin pigmentation. ...

August 18, 2026

F4Mix: Sample-Wise Ancestry Fitting with f4 Statistics

Last week I published F4Mix, a tool for fitting modern and ancient DNA samples against a pool of source populations, usually ancient ones. F4Mix estimates, for each target, the non-negative mixture of reference populations whose covariance-aware f4 profile best matches it. This makes it useful for testing every sample against the same sources. With a proper setup, the tool gives meaningful results, and can reveal both substructure and clear outliers within a site. ...

August 15, 2026

Testing for Admixture with f3-Statistics in AdmixPy

f3-statistics are used to test if populations are admixed or to measure shared genetic drift between two populations relative to an outgroup. This post explains the theory behind admixture f3-statistics and shows how to run admixture f3 tests with AdmixPy. If you want to skip the theoretical part, you can jump to Running admixture f3-statistics in AdmixPy. What is an f3-statistic? For three populations, the statistic is written as: f3(A;B,C)=Ei[(pA,i−pB,i)(pA,i−pC,i)] f_3(A;B,C)=\mathbb{E}_i\left[(p_{A,i}-p_{B,i})(p_{A,i}-p_{C,i})\right] f3​(A;B,C)=Ei​[(pA,i​−pB,i​)(pA,i​−pC,i​)]Here, AAA is in the target position. Populations BBB and CCC are the reference populations. The values pA,ip_{A,i}pA,i​, pB,ip_{B,i}pB,i​, and pC,ip_{C,i}pC,i​ are the allele frequencies in populations AAA, BBB, and CCC, respectively, at SNP iii. The expectation is an average across SNPs. ...

August 7, 2026