Skip to content
Demographic inference from whole genomes
C++ Python Other
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
recipe Clean up the comments Jul 23, 2019
smcsmc Fixed small vcf writing bug where missing data was not being excluded… Jul 12, 2019
src Actually only checking the first, otherwise it gets stuck. Feb 18, 2019
test Add the ability to not specify a mask, and test it Jul 2, 2019
.gitignore Copy over python frontend from other repository. Jun 7, 2019
.gitmodules Update documentation for use in RTD. Jun 18, 2019
.readthedocs.yml {RTD} nvm Jul 2, 2019
CMakeLists.txt Clean up the comments Jul 23, 2019
LICENSE Demolish current structure in preperation for clean release Jun 6, 2019 Make it very clear that only linux installations are supported Jul 23, 2019
requirements.txt standardize Jul 22, 2019 Overhaul of the conda recipe, now correctly builds from anaconda on l… Jun 21, 2019
smc2 {GL} added documentation; dependencies; front end CLI Jun 12, 2019
version Version bump Jul 2, 2019

A Particle Filter for Demographic Inference

Anaconda-Server Badge Anaconda-Server Badge Documentation Status Anaconda-Server Badge

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 smcsmc/scrm.

For examples and explaination, please see the documentation in docs/ or online.


This repository contains two components, and both must be installed to properly use smcsmc.

Recommended Installation via conda

We have automated this process in a conda package, and we highly recommend installing it this way.

NOTE: We currently only support conda installation on 64 bit Linux and if you are using a different operating system you must install manually.

conda config --add channels conda-forge
conda config --add channels terhorst
conda install -c luntergroup smcsmc

Installation from Source

Alternatively, a combination of cmake and pip can be used to install the python and core components.

Obtain the code

git clone git-smcsmc
cd git-smcsmc
git submodule init
git submodule update

Install dependencies

Download and install the following packages (or use a package manager):

  • boost
  • cmake
  • tcmalloc

Install the c++ backend

mkdir build; cd build
cmake ..

Install the frontend

pip install -r dependencies
pip install .


If you use smcsmc in your work, please cite the following articles:

  1. Henderson, D., Zhu, S. (Joe), & Lunter, G. (2018). Demographic inference using particle filters for continuous Markov jump processes. BioRxiv, 382218.

  2. 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.

You can’t perform that action at this time.