Skip to content
Approximate Bayesian Computation Sequential Monte Carlo sampler for parameter estimation.
Branch: master
Clone or download
Latest commit 64a8f1f Jul 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
astroabc python3 compatibility checks Jul 19, 2019
examples fixing example notebook Jul 19, 2019
.gitignore test for 2 params Jul 21, 2016
.travis.yml Added Python3 testing to travis May 13, 2019
LICENSE.txt edit readme Jul 5, 2016 Update Jul 19, 2019
abc_logo.001.jpeg logo Jul 15, 2016 update tests for split comm Aug 25, 2016


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.

Recent applications

Mor et al. at the University of Barcelona have used astroABC to analyze data from the Gaia satellite. Nature Research Highlight: The cosmic drama that helped to build the Milky Way

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.

You can’t perform that action at this time.