{"id":26766152,"url":"https://github.com/ucl/calibr","last_synced_at":"2025-06-20T15:09:47.693Z","repository":{"id":218533112,"uuid":"734736898","full_name":"UCL/calibr","owner":"UCL","description":"Parallelized Bayesian calibration of simulations using Gaussian process emulation","archived":false,"fork":false,"pushed_at":"2024-04-26T17:01:52.000Z","size":667,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-13T18:50:22.717Z","etag":null,"topics":["bayesian-inference","calibration","emulation","high-performance-computing"],"latest_commit_sha":null,"homepage":"http://github-pages.ucl.ac.uk/calibr/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UCL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-12-22T13:26:38.000Z","updated_at":"2024-04-26T17:02:35.000Z","dependencies_parsed_at":"2024-01-22T16:31:23.296Z","dependency_job_id":"6bf73bdc-125d-4fc5-9425-8170b0bcb137","html_url":"https://github.com/UCL/calibr","commit_stats":null,"previous_names":["ucl/calibr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/UCL/calibr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fcalibr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fcalibr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fcalibr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fcalibr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UCL","download_url":"https://codeload.github.com/UCL/calibr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UCL%2Fcalibr/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260967380,"owners_count":23090101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bayesian-inference","calibration","emulation","high-performance-computing"],"created_at":"2025-03-28T20:19:19.243Z","updated_at":"2025-06-20T15:09:42.683Z","avatar_url":"https://github.com/UCL.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# calibr\n\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Tests status][tests-badge]][tests-link]\n[![Linting status][linting-badge]][linting-link]\n[![Documentation status][docs-badge]][docs-link]\n[![License][license-badge]](./LICENSE.md)\n[![Documentation](https://img.shields.io/badge/MkDocs-documentation-blue?logo=materialformkdocs\u0026logoColor=white)](https://github-pages.ucl.ac.uk/calibr/)\n\n\u003c!--\n[![PyPI version][pypi-version]][pypi-link]\n[![Conda-Forge][conda-badge]][conda-link]\n[![PyPI platforms][pypi-platforms]][pypi-link]\n--\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n[tests-badge]:              https://github.com/UCL/calibr/actions/workflows/tests.yml/badge.svg\n[tests-link]:               https://github.com/UCL/calibr/actions/workflows/tests.yml\n[linting-badge]:            https://github.com/UCL/calibr/actions/workflows/linting.yml/badge.svg\n[linting-link]:             https://github.com/UCL/calibr/actions/workflows/linting.yml\n[docs-badge]:            https://github.com/UCL/calibr/actions/workflows/docs.yml/badge.svg\n[docs-link]:             https://github.com/UCL/calibr/actions/workflows/docs.yml\n[conda-badge]:              https://img.shields.io/conda/vn/conda-forge/calibr\n[conda-link]:               https://github.com/conda-forge/calibr-feedstock\n[pypi-link]:                https://pypi.org/project/calibr/\n[pypi-platforms]:           https://img.shields.io/pypi/pyversions/calibr\n[pypi-version]:             https://img.shields.io/pypi/v/calibr\n[license-badge]:            https://img.shields.io/badge/License-MIT-yellow.svg\n\u003c!-- prettier-ignore-end --\u003e\n\nParallelized Bayesian calibration of simulations using Gaussian process emulation.\n\n`calibr` is a Python implementation of the algorithm described in _Parallel Gaussian\nprocess surrogate Bayesian inference with noisy likelihood evaluations_ (Järvenpää,\nGutmann, Vehtari and Marttinen; 2021)\n([doi:10.1214/20-BA1200](https://doi.org/10.1214/20-BA1200),\n[arxiv:1905.01252](https://arxiv.org/abs/1905.01252)). It is designed to allow\nestimation of the posterior distribution on the unknown parameters of expensive to\nevaluate simulator models given observed data, using a batch sequential design strategy\nwhich iterates fitting a Gaussian process emulator to a set of evaluations of the\n(unnormalized) posterior density for the model and using the emulator to identify a new\nbatch of model parameters at which to evaluate the posterior density which minimize a\nmeasure of the expected uncertainty in the emulation of the posterior density.\n\nThe posterior density can be evaluated at the parameter values in each batch in\nparallel, providing the opportunity for speeding up calibration runs on multi-core and\nmulti-node high performance computing systems. The acquisition functions used to choose\nnew parameter values to evaluate are implemented using the high-performance numerical\ncomputing framework [JAX](https://jax.readthedocs.io/en/latest/), with the\ngradient-based optimization of these acquisition functions exploiting JAX's support for\nautomatic differentiation.\n\nThe package is still in the early stages of development, with only a subset of the\nalgorithmic variants proposed by Järvenpää, Gutmann, Vehtari and Marttinen (2021)\ncurrently implemented. In particular there is no support yet for models with noisy\nlikelihood evaluations. Expect lots of rough edges!\n\nThis project is developed in collaboration with the [Centre for Advanced Research Computing](https://ucl.ac.uk/arc), University College London.\n\n## Getting started\n\n### Prerequisites\n\n`calibr` requires Python 3.10\u0026ndash;3.12.\n\n### Installation\n\nWe recommend installing in a project specific virtual environment created using a environment management tool such as [Mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) or [Conda](https://conda.io/projects/conda/en/latest/). To install the latest development version of `calibr` using `pip` in the currently active environment run\n\n```sh\npip install git+https://github.com/UCL/calibr.git\n```\n\nAlternatively create a local clone of the repository with\n\n```sh\ngit clone https://github.com/UCL/calibr.git\n```\n\nand then install in editable mode by running\n\n```sh\npip install -e .\n```\n\n### Documentation\n\nDocumentation for the package is available at \u003chttps://github-pages.ucl.ac.uk/calibr/\u003e.\n\n### Running tests\n\nTests can be run across all compatible Python versions in isolated environments using\n[`tox`](https://tox.wiki/en/latest/) by running\n\n```sh\ntox\n```\n\nTo run tests manually in a Python environment with `pytest` installed run\n\n```sh\npytest tests\n```\n\nagain from the root of the repository.\n\n### Building documentation\n\nThe MkDocs HTML documentation can be built locally by running\n\n```sh\ntox -e docs\n```\n\nfrom the root of the repository. The built documentation will be written to\n`site`.\n\nAlternatively to build and preview the documentation locally, in a Python\nenvironment with the optional `docs` dependencies installed, run\n\n```sh\nmkdocs serve\n```\n\n## Acknowledgements\n\nThis work was funded by a grant from the ExCALIBUR programme.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl%2Fcalibr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucl%2Fcalibr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl%2Fcalibr/lists"}