Skip to main content

A general-purpose approximate Bayesian calculation

Project description

Approximate Bayesian calculation (ABC)

This package conducts ABC on a given model and parameters. Basically, ABayesianC does the following:

  • Sample uniformly from the n-dimensional space of the free parameters

  • Create a parameter set for each of sample set

  • Run the given model for each parameter set and collect the error value

  • Choose the best fits by the rejection algorithm

Getting started

Quick start

pip install --upgrade ABayesianC

# inside your script, e.g. test.py

from ABayesianC import tools

obj = tools.ABC(settings = settings, free_params = free_params)

obj.sample()

obj.run()

obj.postprocess()

More on it

The module receives two inputs from users. First, the free parameters' list that is a python dictionary containing the names and bounds (min and max) of each free parameter, as shown below:

free_params = {
    'p_name_1': [1.1,4.3], # [min,max]/ Prior
    'p_name_2': [6.4,23.1]
}

Second, the settings variable that is another python dictionary containing:

settings = {
    "MPI_flag": True, # whether to use MPI or not
    "sample_n": 10000,  # Sample number
    "top_n": 100, # Number of top selected samples, i.e. posterior
    "output_path": "outputs", # Relative output directory to save the results
    "replica_n":3 #  number of replica run for each param set
    "model": Model # the model that receives the parameter set and returns the error value

}

The provided model must:

  • receive a parameter set as argument
  • has a function named run
  • the run function runs the model and returns back the error/fitness value

Parallel run

To run the constructed script, e.g. test.py, in parallel, commain in terminal,

mpiexec -n available_cpu_core python test.py

available_cpu_core is the CPU core number that user intend to allocate for this process. For more info, see MPI for Python.

Outputs

Among the library outputs are:

  • samples.txt: the samples in the n-dimensional space of the free parameters
  • distances.txt: the distances/errors/fitness values obtained for each parameter set
  • best_distances.txt: the best n distances. n is defined in the settings
  • posterior.json: the posteriors extracted for each free parameter using top n best fit
  • medians.json: the medians of the posteriors for each free parameter. These values can be considered as inferred values.

Install

Using pip manager:

  • pip install --upgrade ABayesianC

Or, download the package and in the root folder, command:

  • python3 setup.py install

Authors

  • Jalil Nourisa

Useful links

MPI for Python.

Contributing to ABayesianC

In case of encountering a problem, pls report it as an issue or contant the author (jalil.nourisa@gmail.com)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ABayesianC-1.0.8.tar.gz (6.6 kB view hashes)

Uploaded Source

Built Distribution

ABayesianC-1.0.8-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page