Metadata-Version: 2.4
Name: 21cmMC
Version: 1.0.0
Summary: An extensible MCMC framework for 21cmFAST.
Author-email: Brad Greig <greigb@unimelb.edu.au>, Steven Murray <steven.murray@sns.it>
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: <3.15,>=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: click
Requires-Dist: numpy
Requires-Dist: cosmoHammer
Requires-Dist: scipy
Requires-Dist: matplotlib<3.9,>=2.1
Requires-Dist: emcee<3
Requires-Dist: powerbox<0.9.0,>=0.5.7
Requires-Dist: cached_property
Requires-Dist: py21cmemu>=3.0.0
Requires-Dist: astropy>=5.2.1
Requires-Dist: 21cmFAST<4.0.0
Requires-Dist: tuesday-eor; python_version >= "3.11"
Provides-Extra: samplers
Requires-Dist: pymultinest; extra == "samplers"
Requires-Dist: ultranest; extra == "samplers"
Requires-Dist: zeus-mcmc; extra == "samplers"
Requires-Dist: nautilus-sampler; extra == "samplers"
Provides-Extra: likelihoods
Requires-Dist: pspec-likelihood; python_version >= "3.11" and extra == "likelihoods"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: docs
Requires-Dist: ipython; extra == "docs"
Requires-Dist: nbsphinx; extra == "docs"
Requires-Dist: numpydoc; extra == "docs"
Requires-Dist: sphinx>=1.3; extra == "docs"
Requires-Dist: furo; extra == "docs"
Provides-Extra: dev
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: 21cmMC[docs,likelihoods,samplers,test]; extra == "dev"
Dynamic: license-file

======
21CMMC
======

.. start-badges
.. image:: https://github.com/21cmfast/21CMMC/actions/workflows/test_suite.yaml/badge.svg
    :target: https://github.com/21cmfast/21CMMC/actions/workflows/test_suite.yaml
.. image:: https://codecov.io/gh/21cmfast/21CMMC/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/21cmfast/21CMMC
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/ambv/black
.. image:: https://readthedocs.org/projects/21cmmc/badge/?version=latest
    :target: https://21cmmc.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status
.. end-badges

An extensible MCMC framework for 21cmFAST.


This code uses `semantic versioning <https://semver.org>`_, though this will strictly
begin when `v1.0.0` is officially shipped.

* Free software: MIT license

Features
========

* Seamless integration with ``emcee``-based MCMC.
* Supports the ``MultiNest`` sampler.
* Supports the ``zeus`` sampler.
* MCMC is easily extensible via the addition of different likelihoods using the same underlying data.

Scalability
===========

.. image:: docs/multinest_scalability.jpg
    :width: 866

This plot shows the number of test models (see details `here <https://github.com/21cmfast/21CMMC/issues/50/#issuecomment-1091391508>`_) performed using the MultiNest sampler as a function of thread number, illustrating an almost ideal scalability where #model per human hour scales linearly with #thread. There are three runs for each thread number, which are indicated by the filled circles with errorbar. The double sided arrows show the relative (w.r.t. the 24-thread case) loss when scaling up the calculation. Note that a typical inference study, working with more complex models and therefore performing much fewer models per human hour, is expected to remain the same level of scalability.

Documentation
=============

See https://21CMMC.readthedocs.org.

Acknowledging
=============
If you find `21CMMC` useful in your research please cite at least one of the following
(whichever is most suitable to you):

    Bradley Greig and Andrei Mesinger, "21CMMC: an MCMC analysis tool enabling
    astrophysical parameter studies of the cosmic 21 cm signal", Monthly Notices of the
    Royal Astronomical Society, Volume 449, Issue 4, p.4246-4263 (2015),
    https://doi.org/10.1093/mnras/stv571

    Bradley Greig and Andrei Mesinger, "Simultaneously constraining the astrophysics of
    reionization and the epoch of heating with 21CMMC", Monthly Notices of the Royal
    Astronomical Society, Volume 472, Issue 3, p.2651-2669 (2017),
    https://doi.org/10.1093/mnras/stx2118

    Bradley Greig and Andrei Mesinger, "21CMMC with a 3D light-cone: the impact of the
    co-evolution approximation on the astrophysics of reionization and cosmic dawn",
    Monthly Notices of the Royal Astronomical Society, Volume 477, Issue 3, p.3217-3229
    (2018), https://doi.org/10.1093/mnras/sty796

    Jaehong Park et al.,  "Inferring the astrophysics of reionization and cosmic dawn
    from galaxy luminosity functions and the 21-cm signal", Monthly Notices of the
    Royal Astronomical Society, Volume 484, Issue 1, p.933-949 (2018),
    https://doi.org/10.1093/mnras/stz032
