Metadata-Version: 2.4
Name: figaro
Version: 1.8.4
Summary: FIGARO: Fast Inference for GW Astronomy, Research & Observations
Author-email: Stefano Rinaldi <stefano.rinaldi@uni-heidelberg.de>, Walter Del Pozzo <walter.delpozzo@unipi.it>
License: MIT License
        
        Copyright (c) 2022 Stefano Rinaldi
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Documentation, https://figaro.readthedocs.io
Project-URL: Repository, https://github.com/sterinaldi/FIGARO.git
Project-URL: Issues, https://github.com/sterinaldi/FIGARO/issues
Keywords: DPGMM,HDPGMM,figaro,hierarchical,inference
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>1.22
Requires-Dist: scipy
Requires-Dist: matplotlib!=3.6.3
Requires-Dist: dill
Requires-Dist: corner
Requires-Dist: numba
Requires-Dist: h5py
Requires-Dist: tqdm
Requires-Dist: astropy
Requires-Dist: ray
Dynamic: license-file

# [FIGARO - Fast Inference for GW Astronomy, Research & Observations](https://www.youtube.com/watch?v=uJeJ4YiVFz8)

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)](https://ui.adsabs.harvard.edu/abs/2022MNRAS.509.5454R/abstract).
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](https://figaro.readthedocs.io).

[![DOI](https://joss.theoj.org/papers/10.21105/joss.06589/status.svg)](https://doi.org/10.21105/joss.06589)
![Test](https://github.com/sterinaldi/FIGARO/actions/workflows/test.yml/badge.svg)
## 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-density` reconstructs a probability density given a set of samples;
* `figaro-hierarchical` reconstructs 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](https://figaro.readthedocs.io/en/latest/quickstart.html), and a guide on how to use the FIGARO reconstructions is available [here](https://figaro.readthedocs.io/en/latest/use_mixture.html).
If you want to include FIGARO in your own scripts, an introductive guide can be found [here](https://figaro.readthedocs.io/en/latest/python_script.html): 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)](https://joss.theoj.org/papers/10.21105/joss.06589):
```text
@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)](https://ui.adsabs.harvard.edu/abs/2022MNRAS.509.5454R/abstract):

```text
@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}
}
```

