Skip to content

fmagrini/bayes-bay

Repository files navigation

BayesBay

PyPI version Documentation Status

BayesBay is a user-friendly Python package designed for generalised trans-dimensional and hierarchical Bayesian inference. Optimised computationally through Cython, our library offers multi-processing capabilities and runs seamlessly on both standard computers and computer clusters.

Distinguishing itself from existing packages, BayesBay provides high-level functionalities for defining complex parameterizations. These include prior probabilities that can be specified by uniform, Gaussian, or custom density functions and may vary depending on the spatial position in a hypothetical discretization.

By default, BayesBay employs reversible-jump Markov chain Monte Carlo (MCMC) for sampling the posterior probability. It also offers options for parallel tempering or simulated annealing, while its low-level features enable the effortless implementation of arbitrary sampling criteria. Utilising object-oriented programming principles, BayesBay ensures that each component of an inference problem --- such as observed data, forward function(s), and parameterization --- is a self-contained unit. This design facilitates the integration of various forward solvers and data sets, promoting the simultaneous use of multiple data types in the considered inverse problem.

Documentation

For comprehensive guides and examples on using BayesBay, make sure to check out our documentation.

Development tips

  • To set up development environment:

    $ mamba env create -f envs/environment_dev.yml

    or

    $ python -m venv bayesbay_dev
    $ source bayesbay_dev/bin/activate
    $ pip install -r envs/requirements_dev.txt
  • To install the package:

    $ python -m pip install .
  • Look at noxfile.py for building, testing, formatting and linting.