A Particle Filter for Demographic Inference
SMCSMC (Sequential Monte Carlo for the Sequential Markovian Coalescent) or SMC2 is a program for inferring population history from multiple genome sequences. It includes both a python package
smcsmc and a command line interface
smc2 along with two backend binaries
For examples and explaination, please see the documentation online or in
This repository contains two components, and both must be installed to properly use
Recommended Installation via
NOTE: We currently only support
condainstallation on 64 bit Linux. If you are using a different operating system you must install manually -- see below.
We have automated this process in a
conda package, and we highly recommend installing it this way.
conda install -c conda-forge -c luntergroup smcsmc
We must add
conda-forge as a channel (with the
-c flag) because the Boost version there is more current than default channels.
Installation from Source
Alternatively, a combination of
pip can be used to install the python and core components:
Obtain the code
git clone firstname.lastname@example.org:luntergroup/smcsmc.git git-smcsmc cd git-smcsmc git submodule init git submodule update
Download and install the following packages (or use a package manager):
Install the c++ backend
mkdir build; cd build cmake .. make cd ..
Install the frontend
pip install -r requirements.txt pip install .
If you use
smcsmc in your work, please cite the following articles:
Henderson D, Zhu S, Cole CB, Lunter G (2021) Demographic inference from multiple whole genomes using a particle filter for continuous Markov jump processes. PLOS ONE 16(3): e0247647. https://doi.org/10.1371/journal.pone.0247647
Staab, P. R., Zhu, S., Metzler, D., & Lunter, G. (2015). scrm: efficiently simulating long sequences using the approximated coalescent with recombination. Bioinformatics, 31(10), 1680–1682. https://doi.org/10.1093/bioinformatics/btu861