pyabc
What it is
pyabc is a free Python package for likelihood-free parameter inference with black-box simulators and observed or synthetic data. It uses Approximate Bayesian Computation with Sequential Monte Carlo to estimate Bayesian posterior distributions without requiring an analytical likelihood function. The package supports multicore and distributed execution, including SGE environments and cloud deployments. Backend options include Dask.distributed, a Redis-based broker, and IPython parallel. Algorithm components can be replaced or extended through custom classes. Optional interfaces connect workflows with R through rpy2 and Julia through PyJulia. Simulation and logging records are stored in SQL databases for later analysis and sharing, with exports available in CSV, feather, JSON, msgpack, HTML, HDF, and Stata formats. Plotting and analysis routines are included, along with a Dash visualization server for running and completed jobs. pyABC requires Python 3.11 or later, installs with pip, and uses a 3-clause BSD license.
For and against
For
- Likelihood-free Bayesian inference
- Sequential Monte Carlo posterior estimation
- Multicore and distributed execution
- SQL storage and multiple export formats
- R and Julia interfaces
Against
- Requires Python 3.11 or later
- Windows multiprocessing may not work as expected
- Main development focus is Linux
- Flask visualization server is deprecated
The verdict
pyabc provides a configurable ABC-SMC workflow for black-box simulation problems, with distributed execution, database storage, exports, and language interfaces. Its Linux focus and Windows multiprocessing limitation matter when choosing an environment.
Who it suits
pyabc suits researchers and developers working with simulator-based Bayesian inference when an analytical likelihood is unavailable. It is aimed mainly at Linux users needing multicore, cluster, or cloud execution.
On the record
- Bayesian analysis
- Yespyabc.readthedocs.io · read 24 Sep 2026
- Customization
- Users can customize algorithm aspects by implementing custom classes alongside the package’s default choices.pyabc.readthedocs.io · read 12 Oct 2026
- Data exports
- Its database export utility supports CSV, feather, JSON, msgpack, HTML, HDF, and Stata formats.pyabc.readthedocs.io · read 12 Oct 2026
- Data storage
- pyABC stores simulation and logging data in SQL databases for later analysis and sharing.pyabc.readthedocs.io · read 12 Oct 2026
- Deployment
- desktoppyabc.readthedocs.io · read 24 Sep 2026
- Distributed backends
- Supported backend modes include Dask.distributed, a Redis based broker, and IPython parallel.pyabc.readthedocs.io · read 12 Oct 2026
- Extensibility
- Users can experiment with ABC-SMC schemes by customizing algorithm components through classes.pyabc.readthedocs.io · read 12 Oct 2026
- Inference method
- It uses Approximate Bayesian Computation with a Sequential Monte Carlo scheme for Bayesian posterior estimation.pyabc.readthedocs.io · read 12 Oct 2026
- Installation
- The package can be installed with pip, including a recommended per-user installation using `pip install --user pyabc`.pyabc.readthedocs.io · read 12 Oct 2026
- Integrations
- Optional interfaces are available for R via rpy2 and Julia via PyJulia.pyabc.readthedocs.io · read 12 Oct 2026
- Language interfaces
- The documentation includes interfaces for using R through rpy2 and Julia through PyJulia.pyabc.readthedocs.io · read 12 Oct 2026
- License
- The package is licensed under a permissive 3-clause BSD license.pyabc.readthedocs.io · read 12 Oct 2026
- Method
- It implements Approximate Bayesian Computation using Sequential Monte Carlo for Bayesian posterior estimation.pyabc.readthedocs.io · read 12 Oct 2026
- No likelihood required
- Users do not need to provide an analytical likelihood function.pyabc.readthedocs.io · read 12 Oct 2026
- Operating systems
- The package is continuously tested on Linux; the documentation says many parts should work on Windows, while noting that its multiprocessing depends on forking and its main development focus is Linux.pyabc.readthedocs.io · read 12 Oct 2026
- Parallel computing
- It is designed for multicore and distributed environments, including scientific cluster and cloud deployments.pyabc.readthedocs.io · read 12 Oct 2026
- Parallel execution
- pyABC supports multicore and distributed execution, including SGE environments and cloud deployment.pyabc.readthedocs.io · read 12 Oct 2026
- Purpose
- pyABC performs likelihood-free parameter inference from a black-box simulator and observed or synthetic data.pyabc.readthedocs.io · read 12 Oct 2026