FIGARO - Fast Inference for GW Astronomy, Research & Observations
FIGARO is an inference code designed to estimate multivariate probability densities given samples from an unknown distribution using a Dirichlet Process Gaussian Mixture Model (DPGMM) as nonparameteric model. It is also possible to perform hierarchical inferences: in this case, the model used is (H)DPGMM, described in Rinaldi & Del Pozzo (2022a). Differently from other DPGMM implementations relying on variational algorithms, FIGARO does not require the user to specify a priori the maximum allowed number of mixture components. The required number of Gaussian distributions to be included in the mixture is inferred from the data. The documentation and user guide for FIGARO is available at the documentation page.
Getting started
You can install FIGARO either via pip (stable release, recommended)
pip install figaro
or from the repository (potentially unstable)
git clone git@github.com:sterinaldi/FIGARO.git
cd FIGARO
pip install .
FIGARO comes with two plug-and-play CLI:
figaro-densityreconstructs a probability density given a set of samples;figaro-hierarchicalreconstructs a probability density given a set of single-event samples, each of them drawn around a sample from the initial probability density.
If you only want to reconstruct some probability density or run a vanilla hierarchical analysis, we strongly recommend using these CLI, which are already tested and optimised. A (hopefully gentle) introduction to them can be found at this page, and a guide on how to use the FIGARO reconstructions is available here. If you want to include FIGARO in your own scripts, an introductive guide can be found here: there we show how to to reconstruct a probability density with FIGARO and how to use its products.
Acknowledgments
If you use FIGARO in your research, please cite Rinaldi & Del Pozzo (2024):
@ARTICLE{Rinaldi2024,
author = {{Rinaldi}, Stefano and {Del Pozzo}, Walter},
title = "{FIGARO: hierarchical non-parametric inference for population studies}",
journal = {Journal of Open Source Software},
publisher = {The Open Journal},
year = 2024,
month = may,
volume = {9},
number = {97},
pages = {6589},
doi = {10.21105/joss.06589},
url = {https://doi.org/10.21105/joss.06589}
}
If you make use of the hierarchical analysis, you should mention (H)DPGMM as the model used and cite Rinaldi & Del Pozzo (2022):
@ARTICLE{2022MNRAS.509.5454R,
author = {{Rinaldi}, Stefano and {Del Pozzo}, Walter},
title = "{(H)DPGMM: a hierarchy of Dirichlet process Gaussian mixture models for the inference of the black hole mass function}",
journal = {\mnras},
keywords = {gravitational waves, methods: data analysis, methods: statistical, stars: black holes, Astrophysics - Instrumentation and Methods for Astrophysics, General Relativity and Quantum Cosmology},
year = 2022,
month = feb,
volume = {509},
number = {4},
pages = {5454-5466},
doi = {10.1093/mnras/stab3224},
archivePrefix = {arXiv},
eprint = {2109.05960},
primaryClass = {astro-ph.IM},
adsurl = {https://ui.adsabs.harvard.edu/abs/2022MNRAS.509.5454R},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
Metadata
Release files for figaro 1.13.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| figaro-1.13.0.tar.gz | 66.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| figaro-1.13.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 142.8 kB
Release files / figaro-1.13.0.tar.gz
| Download URL | figaro-1.13.0.tar.gz |
|---|---|
| Size | 66.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
852dff1e8be2896f1851550b4527fef80d9ae390a82765c89ffd55e742824d0a
|
|
BLAKE2b-256 checksum How to use checksums |
9eab80328400ab6650a007437363a31ad4687e063ae40db8365a37968d32c9a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / figaro-1.13.0-py3-none-any.whl
| Download URL | figaro-1.13.0-py3-none-any.whl |
|---|---|
| Size | 76.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8aded097f45c928b1a716b1efdff8996f7735c6107847078f173252366ec93a7
|
|
BLAKE2b-256 checksum How to use checksums |
3a28f5c38c2aaac75a6a02b3268f7410baecc0ef79273f5263b6c72192418184
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency log