simuPOP is a general-purpose individual-based forward-time population genetics simulation environment. Please refer to the simuPOP homepage https://bopeng.github.io/simuPOP/ for details.
simuPOP is distributed under a GPL3 license. Starting from simuPOP 1.1.8, it supports only Python 3 (3.9 and up) on Windows, macOS and Linux systems.
simuPOP is part of the conda-forge. If you use Anaconda Python 3, you can install simuPOP with command
conda install -c conda-forge simuPOP
pip install simuPOP
If you are working with a development version of simuPOP or an unsupported platform, you can install from source:
git clone https://github.com/BoPeng/simuPOP.git
cd simuPOP
pip install .
Please refer to INSTALL for detailed instructions and platform-specific requirements.
The user guide and reference manual of simuPOP is available at http://bopeng.github.io/simuPOP/. simuPOP is also introduced in the following two books:
- Forward-Time Population Genetics Simulations: Methods, Implementation, and Applications by Bo Peng, Marek Kimmel and Christopher I Amos, published by Wiley & Sons Inc, and available at Amazon and other bookstores.
- Bioinformatics with Python Cookbook by Tiago Antao, available at Amazon
- Modernize build system: migrate from setup.py to CMake + scikit-build-core (PEP 517 compliant)
- Add multi-platform CI testing (Linux, macOS, Windows)
- Move
simuOptmodule into the simuPOP package. Usefrom simuPOP.simuOpt import setOptionsinstead offrom simuOpt import setOptions. The old import path still works but is deprecated.
- Fix compatibility with Python 3.13 and latest version of Xcode on mac.
- #103 Fix compatibility with recent compilers with c++17 support, and fix conda-forge release.
- #122 Fix compatibility with Visual Studio 2022 under windows.
- #114 Fix compatibility with Python 3.11.
- #114 Allow negative weight of a heterogeneous mating scheme to generate less individuals than calculated.
- #102: Fix compatibility issues with Python 3.11
- #98: Write banner messaged to stderr insted of stdout
- #94: Fix
HeteroMatingwhen being used in aConditionalMatingmating scheme. - #93: Add function form of selection operators such as
maSelect(forMapSelector) andmlSelect(forMlSelector).
- #70: Fix compatibility with Mac OS using
libc++instead oflibstdc++.
- #28: Fix a segmentation fault when providing a non-existent VSP index
- #31: Allow operator DiscardIf to accept a probability in addition to
True/False - #35: Add a
weightByparameter to allowHeteroMatingto produce offspring subpopulation with weights determined by not only the size of the parental subpopulation, but also by for example number of mating pairs. - #49: Fix output of loci positions in MS and other formats.