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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file ABayesianC-1.0.8.tar.gz.

File metadata

  • Download URL: ABayesianC-1.0.8.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.7.9

File hashes

Hashes for ABayesianC-1.0.8.tar.gz
Algorithm Hash digest
SHA256 a6c828af74afa9f4e0baf273ecc9431bd7f3594b26f910dc2a1a7b041d8b50d9
MD5 7ecf531985cdd6cb015c9976309368cc
BLAKE2b-256 0b9d2f11317bbbac3c62d3a0b5fe6a1374e5282188774f02fa51d60678638739

See more details on using hashes here.

File details

Details for the file ABayesianC-1.0.8-py3-none-any.whl.

File metadata

  • Download URL: ABayesianC-1.0.8-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.7.9

File hashes

Hashes for ABayesianC-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a79bf64dca2e3da95fa04ebfc5512a9ff2b206a3d36066d6dc57b05b5901d56a
MD5 229a6c560581d3a5577f376a3a5d4e9b
BLAKE2b-256 aadb817a6ef1c092b6ba92e1a49552511ed8608e315425173d0a16068037ac17

See more details on using hashes here.

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