Author: | Jesus Torrado and Antony Lewis |
---|---|
Source: | Source code at GitHub |
Documentation: | Documentation at Readthedocs |
Licence: | LGPL + mandatory bug reporting asap + mandatory arXiv'ing of publications using it (see LICENCE.txt for exceptions). The documentation is licensed under the GFDL. |
E-mail list: | https://cosmocoffee.info/cobaya/ – sign up for important bugs and release announcements! |
Support: | For general support, CosmoCoffee; for bugs and issues, use the issue tracker. |
Installation: | pip install cobaya --upgrade --user (see the installation instructions; in general do not clone) |
Cobaya (code for bayesian analysis, and Spanish for Guinea Pig) is a framework for sampling and statistical modelling: it allows you to explore an arbitrary prior or posterior using a range of Monte Carlo samplers (including the advanced MCMC sampler from CosmoMC, and the advanced nested sampler PolyChord). The results of the sampling can be analysed with GetDist. It supports MPI parallelization (and very soon HPC containerization with Docker/Shifter and Singularity).
Its authors are Jesus Torrado and Antony Lewis. Some ideas and pieces of code have been adapted from other codes (e.g CosmoMC by Antony Lewis and contributors, and Monte Python, by Julien Lesgourgues and Benjamin Audren).
Cobaya has been conceived from the beginning to be highly and effortlessly extensible: without touching cobaya's source code, you can define your own priors and likelihoods, create new parameters as functions of other parameters...
Though cobaya is a general purpose statistical framework, it includes interfaces to cosmological theory codes (CAMB and CLASS) and likelihoods of cosmological experiments (Planck, Bicep-Keck, SDSS... and more coming soon). Automatic installers are included for all those external modules. You can also use cobaya simply as a wrapper for cosmological models and likelihoods, and integrate it in your own sampler/pipeline.
The interfaces to most cosmological likelihoods are agnostic as to which theory code is used to compute the observables, which facilitates comparison between those codes. Those interfaces are also parameter-agnostic, so using your own modified versions of theory codes and likelihoods requires no additional editing of cobaya's source.
The overhead per posterior evaluation is < 0.1 ms / dimension
per posterior evaluation (mostly due to evaluating scipy.stats
logpdf's in the prior), which makes it suitable for most cosmological applications (CAMB and CLASS take seconds to run), but not necessarily for more general statistical applications, if the evaluation time per pdf involved is of that order or smaller.
As of this version, there is no scientific publication yet associated to this software, so simply mention its GitHub repository.
To appropriately cite the modules (samplers, theory codes, likelihoods) that you have used, simply run the script cobaya-bib with your input file(s) as argument(s), and you will get bibtex references and a short suggested text snippet for each module mentioned in your input file. You can find a usage example here.
Thanks to Julien Lesgourgues and Will Handley for support on interfacing CLASS and PolyChord respectively.
Thanks too to Guadalupe Cañas Herrera, Andreas Finke, Lukas Hergt, Vivian Miranda, Timothy Morton, Joe Zunz and many others for extensive and somewhat painful testing.