A fast and accurate coalescent simulator.
Msprime is a reimplementation of Hudson’s classical ms program for modern datasets. The Python API and storage format are currently alpha quality and not fully documented, but the command line interface mspms is reliable and ready for use. This program provides a fully ms compatible interface, and can be used as a drop-in replacement in existing workflows.
Msprime can simulate the coalescent with recombination much faster than programs based on the Sequentially Markov Coalescent for large sample sizes and has very reasonable memory requirements. Msprime makes it possible to simulate chromosome sized regions with hundreds of thousands of samples.
Please see the documentation for further details.
To install and run msprime on a fresh Ubuntu 15.10 installation, do the following:
$ sudo apt-get install pkg-config python-dev python-pip libgsl0-dev hdf5-tools libhdf5-serial-dev $ sudo pip install msprime $ mspms 2 1 -t 1 /usr/local/bin/mspms 2 1 -t 1 5338 8035 23205 // segsites: 3 positions: 0.014 0.045 0.573 100 011
If you do not wish to install msprime to your system, you can try it out in a virtualenv as follows:
$ virtualenv msprime-env $ source msprime-env/bin/activate (msprime-env) $ pip install msprime (msprime-env) $ mspms
See below for installation instructions for Macs.
Msprime requires Python 2.7+ (Python 3 versions are fully supported from 3.1 onwards), the GNU Scientific Library, and HDF5 version 1.8 or later. These packages are available for all major platforms. For example, to install on Debian/Ubuntu use:
# apt-get install python-dev libgsl0-dev libhdf5-serial-dev pkg-config
For Redhat/Fedora use:
# yum install gsl-devel hdf5-devel
On FreeBSD we can use pkg to install the requirements:
# pkg install gsl hdf5-18
To install the dependencies on OS X, we can use Homebrew:
$ brew update $ brew install gsl homebrew/science/hdf5
The simplest method of installation is to use PyPI and pip:
# pip install msprime
This will work in most cases, once the Requirements have been satisfied. See below for platform specific build instructions when this fails.
If you do not have root access to your machine, you can install msprime into your local Python installation as follows:
$ pip install msprime --user
To use the mspms program you must ensure that the ~/.local/bin directory is in your PATH, or simply run it using:
To uninstall msprime, simply run:
$ pip uninstall msprime
Platform specific installation
This section contains instructions to build on platforms that require build time flags for GSL and HDF5.
Install the prerequisitites, and build msprime as follows:
# pkg install gsl hdf5-18 # CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib pip install msprime
This assumes that root is logged in using a bash shell. For other shells, different methods are need to set the CFLAGS and LDFLAGS environment variables.
First, ensure that Homebrew is installed and up-to-date:
$ brew update
We need to ensure that the version of Python we used is installed via Homebrew (there can be issues with linking to HDF5 if we use the built-in version of Python or a version from Anaconda). Therefore, we install Python 3 using homebrew:
$ brew install python3 $ pip3 install --upgrade pip setuptools
The previous step can be skipped if you wish to use your own Python installation, and already have a working pip.
Now install the dependencies and msprime:
$ brew install gsl homebrew/science/hdf5 $ pip3 install msprime
Check if it works:
$ mspms 10 1 -T
Msprime is highly portable, and has been successfully built and tested on the following platforms:
|Debian jessie||x86-64||2.7.9||gcc 4.9.2|
|Debian jessie||x86-64||3.4.2||gcc 4.9.2|
|Debian wheezy||i686||2.7.3||gcc 4.7.2|
|Fedora 20||x86-64||2.7.5||gcc 4.8.3|
|FreeBSD 10||x86-64||2.7.6||clang 3.4.1|
|SunOS 5.10||SPARC||3.4.1||gcc 3.4.3|
|OS X 10.10.5||x86-64||3.4.2||clang 7.0.0|