Forward-time population genetic simulation in Python
The following must be present on your system:
- GSL. This is a C library. It is available via conda.
- pybind11. This should be installed via pip or conda as appropriate for your system.
GPLv3 or later (See COPYING)
Suppored Python version
fwdpy11 is written for Python 3. We will not modify the package to be compatible with Python 2.7.
git submodule init git submodule update python setup.py build_ext -i python test.py
The clang compiler is the assumed default on OS X. However, life is simpler if you use gcc. The setup.py takes a –gcc option that eliminates OS X-specific (really Xcode clang-specific) features so that an OS X/gcc build is possible.
Using pip on OS X and Linux (or pip3 as appropriate for your system):
pip install --upgrade fwdpy11
If you prefer a pip install on OS X using GCC instead of clang:
pip install --upgrade fwdpy11 --install-option=--gcc
You may or may not need to prefix the above with
depending on wheter or not your user’s $PATH is set up to override Xcode’s symlink of gcc to clang.
Enabling assertions in the C++ code
The C++ code uses C’s assert macros in several places. These are disabled by default. However, it can be useful to enable them when hacking the code. To do so:
python setup.py build_ext -i --debug
Never install the package compiled in debug mode! First, things will run much more slowly. Second, triggering an assertion will cause the Python interpreter to crash. These assertions exist as a brute-force method to help developers quickly identify bugs.
fwdpy11 is available through bioconda for Linux and for OS X:
conda install -c bioconda fwdpy11
The OS X build is built using gcc.