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 parametersdistances.txt
: the distances/errors/fitness values obtained for each parameter setbest_distances.txt
: the best n distances. n is defined in the settingsposterior.json
: the posteriors extracted for each free parameter using top n best fitmedians.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
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6c828af74afa9f4e0baf273ecc9431bd7f3594b26f910dc2a1a7b041d8b50d9 |
|
MD5 | 7ecf531985cdd6cb015c9976309368cc |
|
BLAKE2b-256 | 0b9d2f11317bbbac3c62d3a0b5fe6a1374e5282188774f02fa51d60678638739 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a79bf64dca2e3da95fa04ebfc5512a9ff2b206a3d36066d6dc57b05b5901d56a |
|
MD5 | 229a6c560581d3a5577f376a3a5d4e9b |
|
BLAKE2b-256 | aadb817a6ef1c092b6ba92e1a49552511ed8608e315425173d0a16068037ac17 |