Skip to main content

ADAMIXTURE logo

Fast Biobank-Scale Population Genetics Clustering

Python Version PyPI Version License Status Downloads


ADAMIXTURE is a fast CPU/GPU implementation of ADMIXTURE for biobank-scale genetic clustering. .P and .Q outputs remain compatible with ADMIXTURE.

System requirements

Hardware & Platform compatibility

ADAMIXTURE runs cross-platform on Linux, macOS, and Windows, supporting CPU computation as well as GPU acceleration on NVIDIA GPUs (CUDA) and Apple Silicon (MPS).

Software requirements

We recommend creating a fresh Python 3.10+ virtual environment. For a faster installation experience, we highly recommend using uv.

As an example, using uv (recommended):

$ uv venv --python 3.10
$ source .venv/bin/activate
$ uv pip install adamixture

Installation Guide

The package can be installed using pip:

Basic Installation (CPU default)

Uses the pre-compiled C/Cython wheel and does not install PyTorch:

$ pip install adamixture

GPU Installation (NVIDIA CUDA / Apple Silicon MPS)

Includes PyTorch and Ninja for hardware-accelerated execution:

$ pip install "adamixture[gpu]"

The commands above use the binary wheel when one is available for the Python version and platform. Installing directly from a source checkout (for example, with pip install -e .) requires a local C/Cython build toolchain.

Running ADAMIXTURE

To train a model, simply invoke the following commands from the root directory of the project. For more info about all the arguments, please run adamixture --help. Note that BED, VCF, PGEN and BCF are supported.

Supported input files include:

  • PLINK BED: .bed, .bed.gz, .bed.zst, with .bim/.fam sidecars that may also be plain, .gz or .zst.
  • PLINK PGEN: .pgen or .pgen.zst, with .pvar/.psam sidecars that may be plain, .gz or .zst.
  • VCF: .vcf, .vcf.gz and .vcf.zst.
  • BCF: .bcf, .bcf.gz and .bcf.zst.

As an example, the following ADMIXTURE call

$ ./admixture snps_data.bed 8 -s 42

would be equivalent in ADAMIXTURE by running

$ adamixture -k 8 --data_path snps_data.bed --save_dir SAVE_PATH --name snps_data -s 42

By default, the following files will be output to the SAVE_PATH directory (the name parameter will be used to create the full filenames):

  • A .P file, similar to ADMIXTURE.
  • A .Q file, similar to ADMIXTURE.
  • A .png plot file containing the visualization of the inferred ancestry proportions (Q matrix).

Logs are printed to the stdout channel by default. If you want to save them to a file, you can use the command tee along with a pipe:

$ adamixture -k 8 ... | tee run.log

Running with multi-threading

To run ADAMIXTURE using multiple CPU threads, use the -t flag:

$ adamixture -k 8 --data_path data.bed --save_dir out/ --name test -t 8

Running with GPU acceleration

To leverage GPU acceleration (highly recommended for large datasets), use the --device flag:

  • NVIDIA GPU (CUDA):
    $ adamixture -k 8 --data_path data.bed --save_dir out/ --name test --device gpu
    
  • macOS Apple Silicon (MPS):
    $ adamixture -k 8 --data_path data.bed --save_dir out/ --name test --device mps
    

For a step-by-step guide on how to run a complete analysis workflow, see the 1000 Genomes Tutorial.

Multi-K Sweep

Instead of running ADAMIXTURE for a single K, you can automatically sweep over a range of K values using --min_k and --max_k. The data is loaded once, and each K is trained sequentially. K=1 is the no-structure null model and is a valid start for a sweep or a CV baseline:

$ adamixture --min_k 1 --max_k 10 --data_path snps_data.bed --save_dir SAVE_PATH --name snps_sweep

Cross-validation

Use --cv to estimate the optimal K by masking a fraction of genotype entries and measuring prediction error. → Full documentation

$ adamixture -k 8 --cv --data_path data.bed --save_dir out/ --name test

Plotting

By default, ADAMIXTURE automatically generates a png plot at 300 DPI without needing any additional flags. Following the method of Clumppling, it automatically aligns clusters across runs and K values. → Full documentation

Plots can include hierarchical population labels if you provide the arguments (--labels, --labels2, --labels3).

If you want to customize the format and resolution (e.g., to generate a PDF), use --plot (or --plot_single for individual per-K plots in multi-K sweeps):

  • Single K runs (-k): Use --plot.

    $ adamixture -k 8 --data_path data.bed --save_dir out/ --name test --plot pdf 300
    
  • Multi-K sweeps (--min_k and --max_k): Use --plot to configure the combined sweep plot (or --plot_single for individual plots per K).

    $ adamixture --min_k 2 --max_k 10 --data_path data.bed --save_dir out/ --name test --plot pdf 300
    

Projection Mode

Estimate ancestry proportions for new samples using a pre-trained, fixed P matrix (Q-only optimisation). K is detected automatically from P. → Full documentation

$ adamixture-project \
    --data_path new_samples.bed \
    --p_path trained_model/results.8.P \
    --save_dir projection_out/ \
    --name projected

Supervised Mode

Anchor the model with known population labels for a subset of samples while estimating Q freely for unlabeled ones. Labels use the same format as --labels (population name or -). → Full documentation

$ adamixture-supervised \
    --data_path all_samples.bed \
    --labels labels.txt \
    --save_dir supervised_out/ \
    --name supervised_run \
    -k 8

Other options

All hyperparameters and flags can be explored with:

$ adamixture --help

Key arguments:

Argument                                          Default Description
--init als Initialization method: SVD+ALS (als) or random EM priming (em).
--tol 0.1 Convergence tolerance for log-likelihood changes.
--max_iter 10000 Maximum optimization iterations.
-t 1 Number of CPU threads.
-s 42 Random seed.
--device cpu Device to use: cpu, gpu, or mps.
--chunk_size 8192 Number of SNPs in chunk operations.
--n_inits 1 Number of independent initializations (keeps run with best log-likelihood).
--chrom_mode autosomes Chromosome filter: autosomes keeps autosomes 1 to --autosomes; all keeps every chromosome.
--autosomes 22 Number of autosomes kept when --chrom_mode autosomes (equivalent to --specific_chrom 1 2 ... 22).
--specific_chrom None List of specific chromosomes to analyze when --chrom_mode autosomes (overrides --autosomes).
--no_freqs False Do not save the .P allele-frequency matrix.

Algorithm note

The ADAMIXTURE paper introduced Adam-EM as an adaptive first-order optimizer for admixture inference. The package still includes this solver via --algorithm adamem.

In the current implementation, the default is --algorithm brqn. Empirical benchmarking showed that block relaxation with ZAL quasi-Newton acceleration, when paired with our improved SVD+ALS initialization, reaches high-quality solutions in fewer iterations and better wall-clock time. For that reason, BR-QN is the default solver, while Adam-EM remains available for experimentation and reproducibility. Adam-EM tuning parameters are documented in Troubleshooting and Tips.

Troubleshooting and Tips

Common issues and platform notes:

  • macOS: Install libomp via Homebrew (brew install libomp) before compiling.
  • Windows: Pre-compiled wheels are provided on PyPI (pip install adamixture). If compiling from source (pip install -e .), install Build Tools for Visual Studio with Desktop development with C++.
  • CUDA: Set CUDA_HOME or install nvcc via Conda (conda install -c nvidia nvcc).

→ Full documentation

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

Cite

When using this software, please cite the following paper:

@article{saurina2026adamixture,
  title={ADAMIXTURE: adaptive first-order optimization for biobank-scale genetic clustering},
  author={Saurina-i-Ricos, Joan and Mas Montserrat, Daniel and Ioannidis, Alexander G.},
  journal={Bioinformatics},
  volume={42},
  number={Supplement\_1},
  pages={btag236},
  year={2026},
  doi={10.1093/bioinformatics/btag236},
  url={https://doi.org/10.1093/bioinformatics/btag236}
}

Metadata

Release files for adamixture 1.8.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adamixture 1.8.5
File Size Uploaded
adamixture-1.8.5.tar.gz 21.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for adamixture 1.8.5
File
adamixture-1.8.5-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
adamixture-1.8.5-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
adamixture-1.8.5-cp312-cp312-macosx_14_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 14.0+ x86-64 Details
adamixture-1.8.5-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
adamixture-1.8.5-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
adamixture-1.8.5-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
adamixture-1.8.5-cp311-cp311-macosx_14_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 14.0+ x86-64 Details
adamixture-1.8.5-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
adamixture-1.8.5-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
adamixture-1.8.5-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
adamixture-1.8.5-cp310-cp310-macosx_14_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 14.0+ x86-64 Details
adamixture-1.8.5-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details

Total release size: 170.8 MB

Release files / adamixture-1.8.5.tar.gz

Download URL adamixture-1.8.5.tar.gz
Size 21.7 MB
Tags Source
SHA-256 checksum
How to use checksums
ee64be662a991c9a45965854acbb207e2660c6fb65e2d1dde211c37e8e1264e7
BLAKE2b-256 checksum
How to use checksums
da0536e34ac564018980b139ad3d005b437a9edb979cff3d030b1426733aaca0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp312-cp312-win_amd64.whl

Download URL adamixture-1.8.5-cp312-cp312-win_amd64.whl
Size 12.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
9599e424f2c150e496c1d1b9ddc7ccf8b8e94522ef07ba6c4cc8fe10445beb57
BLAKE2b-256 checksum
How to use checksums
8ba1e2b752237356c09145f6b1b06024f38026acd85190e097650be96af2d318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL adamixture-1.8.5-cp312-cp312-manylinux_2_28_x86_64.whl
Size 12.7 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4c788a23e8dc20f94ce541f0206a4840849f08ea2af235d65ac089136dd15eec
BLAKE2b-256 checksum
How to use checksums
70ed921d73a8a2cd53c74df7e23ee3d9b1ca9211519b70036c36b906ebf5198e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp312-cp312-macosx_14_0_x86_64.whl

Download URL adamixture-1.8.5-cp312-cp312-macosx_14_0_x86_64.whl
Size 12.3 MB
Tags CPython 3.12 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
cd06d08a6e7d38112d31c57ba1ed5c8473b3a4a18641baac138a7a74c1b1b870
BLAKE2b-256 checksum
How to use checksums
65869d47b4c36197f5f7f06553f20b77716e7a2bd6eea9c27fe844dd21d2b12b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp312-cp312-macosx_14_0_arm64.whl

Download URL adamixture-1.8.5-cp312-cp312-macosx_14_0_arm64.whl
Size 12.5 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
90b62588601971c9b52e2d79573483a5ecbba7057269c75ff3687c6fb7602304
BLAKE2b-256 checksum
How to use checksums
e7dc5a14129be66745f99c711a27b269bfd6e33a09631897ee4b6a2963bcff25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp311-cp311-win_amd64.whl

Download URL adamixture-1.8.5-cp311-cp311-win_amd64.whl
Size 12.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
cd118f08c993462babb7706b17f3a8b95f7f58645c223ee5bfb70ba59eec16e9
BLAKE2b-256 checksum
How to use checksums
5cd2e3cfe5e27653372bb72df13cdaace10c4069ac64234804dc6a36aeea12bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL adamixture-1.8.5-cp311-cp311-manylinux_2_28_x86_64.whl
Size 12.7 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
efc900f82c55b91516ddd269e30b336752b937b212fa47fbecd5fe1eac3d1016
BLAKE2b-256 checksum
How to use checksums
63eac96cf42609efae7567c4a81db4ea83077a77f23d6ce74698fe463748553b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp311-cp311-macosx_14_0_x86_64.whl

Download URL adamixture-1.8.5-cp311-cp311-macosx_14_0_x86_64.whl
Size 12.3 MB
Tags CPython 3.11 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
aef79d8806f2befdfab4ffd37c302e21a27625cb6514ef4a32929d30844cac3f
BLAKE2b-256 checksum
How to use checksums
b0e107504fc40f25b28e9770a4a4d4705f4e98d7d9df31fa2429f7cfc115fdb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp311-cp311-macosx_14_0_arm64.whl

Download URL adamixture-1.8.5-cp311-cp311-macosx_14_0_arm64.whl
Size 12.5 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
930aebf48b648590d7f19e94ce2cec2d9d0bec0f8aeaf4bdbff858c43d8279d0
BLAKE2b-256 checksum
How to use checksums
3c6aa3e317c06ba7fbf64452bf1361a52d37ef20ac52b00e249a6d00f0d7f641
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp310-cp310-win_amd64.whl

Download URL adamixture-1.8.5-cp310-cp310-win_amd64.whl
Size 12.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
764874f7f753a29180748f473920ac14270ba43311afd78be219ba079c96dd25
BLAKE2b-256 checksum
How to use checksums
7994f3290a2a5f756918b1e5e9e30781709bf969f71715ccf027838c65d39709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL adamixture-1.8.5-cp310-cp310-manylinux_2_28_x86_64.whl
Size 12.7 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
59b0dbe1f39df96f738a3a91e33e9f8ebf0c85f4dcdd47c2c22accb4c78cff69
BLAKE2b-256 checksum
How to use checksums
a0f080b5a6c64339a09aeaa61218a25872d83515ec0414f18ec710ed2b4f7a95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp310-cp310-macosx_14_0_x86_64.whl

Download URL adamixture-1.8.5-cp310-cp310-macosx_14_0_x86_64.whl
Size 12.3 MB
Tags CPython 3.10 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
e6f75173f067ea624cb55bd77a38bbbb52777c8cf3db37ac72b29a464029a7fb
BLAKE2b-256 checksum
How to use checksums
302bae26be738dbe59b0f3c03d6d1304fc9e0ba8c0853721d5ad03966cfd53f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / adamixture-1.8.5-cp310-cp310-macosx_14_0_arm64.whl

Download URL adamixture-1.8.5-cp310-cp310-macosx_14_0_arm64.whl
Size 12.5 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
7e2d6504e43fc24c4f0b55a7b4d2661c02d35367bb6e0ae8f5c20629ba573e20
BLAKE2b-256 checksum
How to use checksums
5d494463864bc5c3ca5213784de59950f87f256e1a99f5ad34a8f0e32c0be774
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

1.8.7

13 release files

1.8.6

13 release files

This release

1.8.5 This release

13 release files

1.8.4

13 release files

1.8.2

13 release files

1.8.1

13 release files

1.8.0

13 release files

1.6.2

10 release files

1.6.1

10 release files

1.6.0

10 release files

1.5.5

10 release files

1.5.4

10 release files

1.5.3

10 release files

1.5.2

10 release files

1.5.1

10 release files

1.5.0

10 release files

1.0.2

10 release files

1.0.1

10 release files

1.0.0

10 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page