Skip to main content

Parallel tempering MCMC sampler written in Python

Project description

PTMCMCSampler

GitHub release (latest by date) PyPI Conda Version GitHub Workflow Status (event)

DOI Python Versions GitHub license

MPI enabled Parallel Tempering MCMC code written in Python.

See the examples for some simple use cases.

For MPI support you will need A functional MPI 1.x/2.x/3.x implementation like:

  • MPICH

    # mac
    brew install mpich
    
    # debian
    sudo apt install mpich
    
  • Open MPI

    # mac
    brew install open-mpi
    
    # debian
    sudo apt install libopenmpi-dev
    

To run with MPI support you can run your script containing a sampler with:

mpirun -np <number of temperature chains> script.py

This will kick off np chains running at different temperatures. The temperature ladder and sampling schemes can be set in the PTMCMCSampler.sample() method.

Installation

Development

For development clone this repo and run:

make init
source venv/bin/activate

Via pip

pip install ptmcmcsampler

for MPI support use

pip install ptmcmcsampler[mpi]

Via conda

conda install -c conda-forge ptmcmcsampler

for MPI support use

conda install -c conda-forge ptmcmcsampler mpi4py

Attribution

If you make use of this code, please cite:

@misc{justin_ellis_2017_1037579,
  author       = {Justin Ellis and
                  Rutger van Haasteren},
  title        = {jellis18/PTMCMCSampler: Official Release},
  month        = oct,
  year         = 2017,
  doi          = {10.5281/zenodo.1037579},
  url          = {https://doi.org/10.5281/zenodo.1037579}
}

Correlation Length

In order for the sampler to run correctly using acor with Python 3 kernels the GitHub version of acor needs to be installed. (Currently the PyPI version is behind the GitHub version.) It can be easily installed with:

pip install git+https://github.com/dfm/acor.git@master

Note that acor is not required to run the sampler, it simply calculates the effective chain length for output in the chain file.


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

ptmcmcsampler-2.1.0.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ptmcmcsampler-2.1.0-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file ptmcmcsampler-2.1.0.tar.gz.

File metadata

  • Download URL: ptmcmcsampler-2.1.0.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for ptmcmcsampler-2.1.0.tar.gz
Algorithm Hash digest
SHA256 336df081ac414db81dc8fad84e68fca1aeb200420f0851e1194f6b96c53bf3f5
MD5 97ec53f004a4ed8673d87699da8e158a
BLAKE2b-256 50cd9598b06385b82e239715bd13cae36dcb89de9b1c63dd096e60e9c392cd64

See more details on using hashes here.

File details

Details for the file ptmcmcsampler-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: ptmcmcsampler-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for ptmcmcsampler-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 071173b47feaecf18355e19819cf9615be46dff3739a97d52e32a90d862c78e3
MD5 a4ea85b16378df77d3871f299ca107fd
BLAKE2b-256 ac2796728d702bf85354a2ecc75b5f8eddbe73674b173305d5b3227988dae38c

See more details on using hashes here.

Supported by

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