PopPUNK (POPulation Partitioning Using Nucleotide Kmers)

bacteria, genomics, population-genetics, k-mer, sketching
pip install poppunk==2.3.0


POPulation Partitioning Using Nucleotide Kmers

Dev build Status Documentation Status Anaconda package PyPI version

See our website: https://www.poppunk.net


See the documentation and the paper.

If you find PopPUNK useful, please cite us:

Lees JA, Harris SR, Tonkin-Hill G, Gladstone RA, Lo SW, Weiser JN, Corander J, Bentley SD, Croucher NJ. Fast and flexible bacterial genomic epidemiology with PopPUNK. Genome Research 29:304-316 (2019). doi:10.1101/gr.241455.118



We have discovered a bug affecting the interaction of pp-sketchlib and PopPUNK. If you have used PopPUNK >=v2.0.0 with pp-sketchlib <v1.5.1 label order may be incorrect (see issue #95).

Please upgrade to PopPUNK >=v2.2 and pp-sketchlib >=v1.5.1. If this is not possible, you can either:

  • Run scripts/poppunk_pickle_fix.py on your .dists.pkl file and re-run model fits.
  • Create the database with poppunk_sketch directly, rather than PopPUNK --create-db


This is for the command line version. For more details see installation in the documentation.

There are other interfaces, in-browser and through galaxy, detailed here.

Through conda (recommended)

The easiest way is through conda, which is most easily accessed by first installing miniconda. PopPUNK can then be installed by running:

conda install poppunk

If the package cannot be found you will need to add the necessary channels:

conda config --add channels defaults
conda config --add channels bioconda
conda config --add channels conda-forge

Quick usage

See the quickstart guide for a brief tutorial.