Installing frb

This document describes how to install the frb repository.

Quick Start

The recommended installation path is now through pip using the repository’s pyproject.toml metadata.

We recommend Python 3.11 or later in a fresh virtual environment or conda environment.

For example, with venv:

git clone https://github.com/FRBs/FRB.git
cd FRB
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .

or with conda:

conda create -n frb python=3.11 -y
conda activate frb
git clone https://github.com/FRBs/FRB.git
cd FRB
pip install --upgrade pip
pip install -e .

This installs the base package plus its core dependencies, including the git-based requirements such as linetools, ne2001, and astropath.

Note

setup.py is kept for backward compatibility, but the supported installation workflow is pip install -e .. Likewise, frb/requirements.txt and frb/optional_requirements.txt are now reference files rather than the primary installation source.

Base Dependencies

The base install is defined in pyproject.toml and includes the main runtime requirements for the package. At the time of writing, these include packages such as:

Extras

The current optional packages covers:

We do not include these as dependencies as they may require additional system setup. These are however necessary to run specific modules of the code-base, and we recommend installing them if you intend to use those modules.

The following feature-specific dependencies may still require separate, manual installation:

The hmf_emulator package is especially important for halo-related modules, but it may require additional local system setup depending on your platform.

Environment Variables

Most users do not need any extra environment variables for a basic install. Some workflows do:

  • FRB_GDB is needed by several build scripts and tests that expect access

    to the FRB database or generated data products.

  • EAZYDIR is needed for the EAZY wrappers described below.

Our CIGALE wrappers use custom filter files not provided by their current release (e.g DES, Pan-STARRS). See the instructions for adding those as needed.

Installing frb

If you already cloned the repository, install it from the checkout root with:

pip install -e .

This installs the package in editable mode and exposes the scripts in your active Python environment.

Adding additional CIGALE filter files

We have had to add new filters to CIGALE (e.g. from DES and Pan-STARRS). You can find these filter files in frb.data.analysis.CIGALE. If you use any of those surveys, our wrappers will not work without them.

Here are the steps to update CIGALE:

  • cd frb/data/analysis/CIGALE

  • Add any desired filter into your CIGALE code base with: pcigale-filters add file.dat

Note that DECaLs uses the BASS and MzLS data files.

EAZY setup

In order to perform photo-z estimation with EAZY using our wrappers, the following changes need to be made.

  • Add an environment variable EAZYDIR that points to your EAZY installation. Add this to your bashrc:

    export EAZYDIR="/path/to/eazy-photoz/"
    
  • Locate the templates folder in $EAZYDIR and edit the paths present in *.spectra.param. Replace all SED file paths with the absolute paths. For instance, in $EAZYDIR/templates/eazy_v1.3.spectra.param, replace:

    templates/EAZY_v1.1_lines/eazy_v1.1_sed1.dat
    

with:

/path/to/eazy-photoz/templates/EAZY_v1.1_lines/eazy_v1.1_sed1.dat

pPXF

Our pPXF wrapper currently uses an older version of the code (v 6.7.17) and a few custom files. These are made available in a separate repository, and you can install it with:

pip install git+https://github.com/SunilSimha/frb_ppxf.git

If instead you want to install this manually and apply the relevevant patches yourself, see the InstallNotes in this Google Drive. Contact JXP if you have any questions about this process.