View on GitHub


Python for Population Genomics

Download this project as a .zip file Download this project as a tar.gz file

PyPop: Python for Population Genomics

  • PyPop development is now on GitHub. The current binary releases described below are very outdated and only work on Python 2 which is also no longer maintained. We are working on a new Python 3-compatible v1.0.0 release to be made available as package, but for the time being, there are instructions on the GitHub for how to build PyPop from source on a modern Python 3 system.


PyPop (Python for Population Genomics) is an environment for doing large-scale population genetic analyses including: (1) conformity to Hardy-Weinberg expectations, (2) tests for balancing or directional selection; (3) estimates of haplotype frequencies (and their distributions) and measures and tests of significance for linkage disequilibrium (LD).

It is an object-oriented framework implemented in Python, a language with powerful features for interfacing with other languages, such as C (in which we have already implemented many routines and which is particularly suited to computationally intensive tasks).

The output of the analyses are stored in the XML. These output files can then be transformed using standard tools into many other data formats suitable for machine input (such as PHYLIP or input for spreadsheet programs such as Excel or statistical packages, such as R, plain text, or HTML for human-readable format. Storing the output in XML allows the final viewable output format to be redesigned at will, without requiring the (often time-consuming) re-running of the analyses themselves.

An outline of PyPop can be found in our excellent 2007 Tissue Antigens and 2003 PSB papers . PyPop is available for download

Binaries [please note these binaries are obsolete and may or may not work]

Beta binary versions of PyPop are now publicly available (see "Getting and installing PyPop" link below for links to the current binaries) for both:

Both binary packages are approximately 5.5 Mb downloads. Source

PyPop is free software (sometimes referred to as open source software) and the source code is released under the terms of the "copyleft" GNU General Public License, or GPL ( This means even if we haven't compiled a binary for your platform, it is possible for you to download the source code and compile it yourself.


Documentation for PyPop is contained in the ''PyPop User Guide''.

Please be aware that this is a beta release so it is highly likely that there may be bugs and wrinkles to iron out. Please direct all questions to Alex Lancaster at the address below.

How to cite PyPop

When citing PyPop, please cite the (2007) paper from Tissue Antigens:

In addition, you can also cite our 2003 Pacific Symposium on Biocomputing paper:

Population data files

Population data files and online supporting materials for published studies listed in the Solberg et al. meta-analysis paper may be found here

PyPop is affiliated with, the Immunology Database and Analysis Portal. The ImmPort system provides advanced information technology support in the production, analysis, archiving, and exchange of scientific data for the diverse community of life science researchers supported by NIAID/DAIT. The development of the ImmPort system was supported by the NIH/NIAID Bioinformatics Integration Support Contract (BISC), Phase II.


This work has benefited from the support of NIH grant AI49213 (13th IHW) and NIH/NIAID Contract number HHSN266200400076C N01-AI-40076. Thanks to Steven J. Mack, Kristie A. Mather, Steve Marsh, Mark Grote and Leslie Louie for helpful comments and testing.