Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
May 10, 2016 16:28
June 3, 2016 16:13
April 3, 2023 13:04
June 5, 2021 13:53
June 5, 2021 13:53
June 22, 2021 10:48
April 3, 2023 13:04
May 10, 2016 16:28
May 10, 2016 16:28
January 10, 2020 13:06
June 5, 2021 12:29
June 5, 2021 12:29
May 10, 2016 16:28
January 10, 2020 13:06
May 10, 2016 16:28
January 10, 2020 13:06
June 3, 2016 16:13
ADMIXTOOLS version 7.0.2  6/22/21 (for Linux and Mac)

See README.INSTALL for installation info. 

The ADMIXTOOLS package implements 5 methods described in 
Patterson et al. (2012) Ancient Admixture in Human History. Details of the methods and algorithm can be found in this paper.

A user guide for qpAdm is now available in the supplementary materials for "Assessing the Performance of qpAdm:  A Statistical Tool for Studying Population Admixture" by Harney et al. (2020).

The package contains 6 programs: 
convertf: See README.CONVERTF for documentation of programs for converting file formats.
qp3Pop: See README.3PopTest for details of running f_3 test. This test can be used as a format test of admixture with 3 populations.
qpBound: See README.3PopTest for details of running qpBound. This test can be used for estimating bounds on the admixture proportions, given 3 populations (2 reference and one target).
qpDstat: See README.Dstatistics for details of running D-statistics. This is a formal test of admixture with 4 populations.
qpF4Ratio: See README.F4RatioTest for details of running F4 ratio estimation. This program computes the admixture proportion by taking the ratio of two f4 tests.
rolloff:  See README.ROLLOFF/ README.ROLLOFF_OUTPUT for details for running rolloff. This program can be used for dating admixture events.
Executables and source code:
All C executables are in the bin/ directory.

We have placed source code for all C executables in the src/ directory, 
for users who wish to modify and recompile our programs.  For example, to
recompile the programs, type
"cd src"
"make clobber"
"make install"      

If you are building on a Mac, you will need gsl and openblas installed. 
"brew install gsl"
"brew install openblas"
Uncomment the lines in src/Makefile that modify the CFLAGS and LDFLAGS. 

If these packages are not in standard directories, you can specify the 
appropriate include and library directories with the CFLAGS and LDFLAGS 
make variables. 
For example, on the Harvard Medical School O2 cluster, the command is:
'make CFLAGS="-I/n/app/openblas/0.2.19/include -I/n/app/gsl/2.3/include" LDFLAGS="-L/n/app/openblas/0.2.19/lib -L/n/app/gsl/2.3/lib/"'
On Mac OSX:
'make CFLAGS="-I/usr/local/opt/openblas/include -I/usr/local/opt/gsl/include" LDFLAGS="-L/usr/local/opt/openblas/lib -L/usr/local/opt/gsl/lib"'

If you have issues with missing lapacke symbols, for example "undefined reference to `LAPACKE_dlange'", run make with the corresponding additional libraries linked:
'make LDLIBS="-llapacke"' on Linux Mint 18. 
Similarly for Ubuntu, for "undefined reference to dspev_"
'make LDLIBS="-llapack"'

For questions about building this software: 
Matthew Mah <>

If you have trouble compiling and running our code, try compiling and
running the examples in the examples/ directory. Download the example
datasets from
and untar in the root AdmixTools directory, creating a subdirectory called ./data. 

"cd examples"

If you are unable to run the examples successfully, please contact
your system administrator for help, as this is probably systems issue which is
beyond our scope. 

Nick Patterson

*** NEW ***
version 7.0 has numerous upgrades.
a) Two new executables --qpfstats qpfmv allow precomputation of f-statistic basis.
This can greatly reduce computation costs.
b) qpAdm, qpWave, qpGraph support qpfstats output as input.
*** This is a much improved way of running with allsnps: YES.    ***
c)  A new experimental feature of qpGraph (halfscore: YES) allows
 comparison of 2 phylogenies + a (weak) goodness of fit score.  Be careful
 if running with a large number of populations and consider reducing block size say
 blgsize: .005

Version 7.0.2 has important bugfixes to qpfstats.  See README.qpfstats  

Note that several of the new ideas implemented in version 7.0 were developed collaboratively with Robert Maier, who has implemented them along with the great majority of other ADMIXTOOLS functionality in R:
Executables run fast, and it has features not available in this C version, such as interactive exploration of graph phylogenies.
A manuscript describing the algorithmic ideas and providing documentation of the methods is in preparation.

*** Fairly NEW *** 
Lightweight onlline documentation added, thanks to Eric Deveaud                             
<executable>  or <executable> -h  to get brief documentation or

*** Fairly NEW ***  
Alter number of chromosomes:   
numchrom:  <zzz>
zzz should be the autosome number (default 22 -- the number for humans) 

Custom block numbers (for jackknife) 
blockname:  <bbb> 
bbb should contain a list of snps 1 / line followed by a block number (integer) 
block number should be at least 1.  -1 -> snp ignored.  If this option is used 
snps not in list will be ignored. 

This software and its documentation are copyright (2010) by Harvard University 
and The Broad Institute. All rights are reserved. This software is supplied 
without any warranty or guaranteed support whatsoever. Neither Harvard 
University nor The Broad Institute can be responsible for its use, misuse, or 
functionality. The software may be freely copied for non-commercial purposes, 
provided this copyright notice is retained.