Approximate Bayesian Computation Sequential Monte Carlo sampler for parameter estimation.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Latest Version Open Source Love contributions welcome

Author: Elise Jennings


Astronomy and Computing DOI:10.1016/j.ascom.2017.01.001

astroABC is a Python implementation of an Approximate Bayesian Computation Sequential Monte Carlo (ABC SMC) sampler for parameter estimation.

Key features

  • Parallel sampling using MPI or multiprocessing
  • MPI communicator can be split so both the sampler, and simulation launched by each particle, can run in parallel
  • A Sequential Monte Carlo sampler (see e.g. [Toni et al. 2009], [Beaumont et al. 2009], [Sisson & Fan 2010]) [Toni et al. 2009]: [Sisson & Fan 2010]: [Beaumont et al. 2009]:
  • A method for iterative adapting tolerance levels using the qth quantile of the distance for t iterations ([Turner & Van Zandt (2012)])
  • Scikit-learn covariance matrix estimation using [Ledoit-Wolf shrinkage] for singular matrices [Ledoit-Wolf shrinkage]:
  • A module for specifying particle covariance using method proposed by [Turner & Van Zandt (2012)], optimal covariance matrix for a multivariate normal perturbation kernel, local covariance estimate using scikit-learn KDTree method for nearest neighbours ([Filippi et al 2013]) and a weighted covariance (Beaumont et al 2009) [Turner & Van Zandt (2012)]: [Filippi et al 2013]:
  • Restart files output frequently so an interrupted run can be resumed at any iteration
  • Output and restart files are backed up every iteration
  • User defined distance metric and simulation methods
  • A class for specifying heterogeneous parameter priors
  • Methods for drawing from any non-standard prior PDF e.g using Planck/WMAP chains
  • A module for specifying a constant, linear, log or exponential tolerance level
  • Well-documented examples and sample scripts


For more information please read the wiki.


Install astroABC using pip

$ pip install astroabc

or git clone the repository using the url above. Check the dependencies listed in the next section are installed.


  • numpy
  • scipy
  • mpi4py
  • multiprocessing
  • sklearn

Python distributions like Anaconda have most of what is needed. You can then conda install or pip install all of the required dependencies.

$ conda install  numpy scipy scikit-learn mpi4py
$ pip install numpy scipy scikit-learn mpi4py


Copyright 2016 Elise Jennings

astroABC is free software made available under the MIT License. For details see the LICENSE.txt file.