# SelfiSys Examples

[![arXiv](https://img.shields.io/badge/astro--ph.CO-arxiv%3A2412.04443-B31B1B.svg?style=flat)](https://arxiv.org/abs/2412.04443)
[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/hoellin/selfisys_examples/blob/main/LICENSE)
[![GitHub version](https://img.shields.io/github/tag/hoellin/selfisys_examples.svg?label=version)](https://github.com/hoellin/selfisys_examples)
[![GitHub issues](https://img.shields.io/github/issues/hoellin/selfisys_examples)](https://github.com/hoellin/selfisys_examples/issues)
[![GitHub last commit](https://img.shields.io/github/last-commit/hoellin/selfisys_examples)](https://github.com/hoellin/selfisys_examples)

This repository provides Jupyter notebooks to explore the [SelfiSys](https://github.com/hoellin/selfisys_public) Python package for diagnosing systematic effects in spectroscopic galaxy surveys.

---

## Prerequisites

Before using the examples in this repository, ensure that the [SelfiSys](https://github.com/hoellin/selfisys_public) package is installed. Detailed installation instructions are available in the [SelfiSys documentation](https://hoellin.github.io/selfisys_public/).

---

## Content

The repository currently includes the following Jupyter notebooks:
- **survey_mask**: Generate a survey mask from an external sky map.
- **log-normal**: Define custom log-normal radial selection functions.
- **expl_interpolation**: Validate the interpolation strategy for representing power spectra.
- **expl_hiddenbox**: Implement a hidden-box forward model of a spectroscopic galaxy survey.

Additional examples will be added over time to cover more advanced features and applications.

---

## Requirements

The code depends on the following packages:
- [`pySELFI`](https://github.com/florent-leclercq/pyselfi): Python implementation of the Simulator Expansion for Likelihood-Free Inference.
- [`Simbelmynë`](https://simbelmyne.readthedocs.io/en/latest/): A hierarchical probabilistic simulator for generating synthetic galaxy survey data.
- [`SelfiSys`](https://github.com/hoellin/selfisys_public): A software package for diagnosing systematic effects in galaxy surveys.
- Jupyter Notebook: Required to run the example notebooks.

A comprehensive list of dependencies, including version specifications to ensure reproducibility, will be provided in a yaml file, along with refined installation instructions, in a future release.

---

## Linking to SelfiSys

The examples in this repository are built to work seamlessly with the SelfiSys package. For more information on the core functionality of SelfiSys, refer to:
- The SelfiSys GitHub Repository: [hoellin.github.io/selfisys_public](https://hoellin.github.io/selfisys_public/)
- The SelfiSys Documentation: [hoellin.github.io/selfisys_public](https://hoellin.github.io/selfisys_public/).

---

## Getting Started

1. **Clone this repository**:
   ```bash
   git clone https://github.com/hoellin/selfisys_examples.git
   cd selfisys_examples
   ```

2. **Install required dependencies.**

3. **Start a Jupyter server** in the repository directory:
   ```bash
   jupyter notebook
   ```

4. **Open one of the provided notebooks and follow the instructions within.**

---

## Contributors

- **Tristan Hoellinger**  
  [tristan.hoellinger@iap.fr](mailto:tristan.hoellinger@iap.fr)  
  Principal developer and maintainer, Institut d’Astrophysique de Paris (IAP).

For information on contributing, refer to [CONTRIBUTING.md](CONTRIBUTING.md).

---

## License

This software is distributed under the GPLv3 Licence. Please review the [LICENSE](https://github.com/hoellin/selfisys_examples/blob/main/LICENSE) file in the repository to understand the terms of use and ensure compliance. By downloading and using this software, you agree to the terms of the licence.