Welcome to GUIBRUSHR’s Documentation!¶
GUIBRUSHR (Graphic User Interface for Bayesian Retrieval Using Spectroscopy at High Resolution) is a comprehensive Python tool designed to perform end-to-end atmospheric characterization of exoplanets, from spectral processing to Bayesian retrieval, supporting both high-resolution (HR) and low-resolution (LR) datasets in a multi-instrument framework.
The observation of exoplanetary atmospheres contains crucial information about planet formation, evolution, and potential habitability. Ground-based HR spectroscopy (R > 25,000) with échelle spectrographs such as GIANO-B, IGRINS, CRIRES+, CARMENES, and NIRPS, and space-based LR spectrophotometry with JWST and HST, provide complementary information thanks to their sensitivity to different atmospheric depths. GUIBRUSHR aims to unify the different steps of atmospheric characterization — from reduced spectra to atmospheric retrievals, including telluric line removal and cross-correlation function (CCF) analysis — into a single, well-documented graphical interface backed by an integrated database.
Key Features¶
Graphical Interface and Data Management
Graphical interface built on tkinter, allowing users to operate without dealing with multiple configuration files.
All data related to the retrieval process are stored in a local SQLite3 database: folders, records, files, results, and internal configurations are organized so that users can easily visualize and interact with them through the interface.
Compatible with Python 3.10 and above.
Multi-Resolution and Multi-Instrument Support
Analysis and manipulation of datasets at both high resolution (HR, R > 25,000) and low resolution (LR, R < 4,000), either separately or in combination.
Multi-instrument approach: users can integrate datasets from different instruments for both CCF analyses and retrieval procedures.
Support for transmission and emission spectroscopy.
Radiative Transfer
Uses petitRADTRANS v3.0 as the primary radiative transfer engine.
HR opacities natively provided at R = 106, with a configurable line-by-line sampling factor.
LR opacities available in both correlated-k and line-by-line modes.
Ongoing implementation of PyratBay in a GPU framework.
Bayesian Retrieval
Self-developed, parallelized Python implementation of the EXOFAST fitting algorithm, based on the Differential Evolution Markov Chain Monte Carlo (DE-MCMC) technique.
Configurable number of chains per parameter and CPU cores.
Dedicated likelihood functions for HR, LR, and combined HR+LR retrievals.
Telluric Removal
PCA-based removal of telluric and stellar contamination from HR datasets.
Multi-step masking procedure (throughput correction, low-sensitivity channels, telluric/stellar contamination, phase-dependent variability) with user-adjustable thresholds via the GUI.
Extensible architecture supporting future user-defined custom functions as plugins.
Cross-Correlation Analysis
CCF analysis for detecting molecular species in HR spectroscopy datasets.
Support for combining multiple nights from a single instrument or across different instruments to increase the SNR.
Masking of specific orbital phase or radial velocity ranges to exclude contaminated regions.
Forward Modeling and Synthetic Observations
Generation of atmospheric models by manually adjusting parameter configurations (planetary properties, cloud/haze opacities, temperature–pressure profiles, chemical composition).
Generation of synthetic HR observations incorporating telluric absorption, stellar spectra via the PHOENIX archive, and photon noise.
Main Modules¶
GUIBRUSHR is organized into several main modules, each accessible through a dedicated tab panel in the graphical interface:
General Configuration – Initial setup of the analysis environment: paths to target folders, instrument data, and opacity databases.
Run Retrievals – Configuration of all parameters necessary to model 1D atmospheres, including the pressure–temperature profile and cloud parameterization.
Retrieval Analysis and Cross-Correlation – Core analysis module for visualizing posterior distributions, best-fit models, performing CCF on retrieved models, and managing retrieval runs.
Telluric Removal – Dedicated module for removing Earth’s atmospheric features from HR spectra using PCA-based algorithms with configurable masking options.
Forward Model – Interactive generation of atmospheric models for exploring parameter space and building model libraries for CCF analyses.
Cross-Correlation Night-Forward – CCF analysis using forward models, with multi-night and multi-instrument combination capabilities.
Generation HR Datasets – Generation of synthetic HR observations with realistic telluric, stellar, and noise components.
DB and Data Interactions – Interface to the SQLite3 database for managing instrument configurations, observatory information, target properties, and retrieval records.
Getting Started
API Reference
Citation¶
If you use GUIBRUSHR in your research, please cite:
Note
Amadori, Giacobbe et al. – GUIBRUSHR: A comprehensive tool to characterize exoplanet atmospheres at different spectroscopic resolutions and with a multi-instrument approach (submitted to the Open Journal of Astrophysics).
License¶
GUIBRUSHR is free software distributed under the GNU General Public License v3.0. You can redistribute it and/or modify it under the terms of the license as published by the Free Software Foundation, either version 3, or (at your option) any later version.
See GNU GPL v3.0 for details.
Acknowledgments¶
This work is supported by Fondazione ICSC, Spoke 3 Astrophysics and Cosmos Observations (PNRR Project ID CN 00000013), and by the European Union – Next Generation EU (PRIN MUR 2022 project 2022CERJ49, ESPLORA).
GUIBRUSHR relies on several open-source packages, including:
petitRADTRANS – Radiative transfer
PyratBay – Atmospheric modeling and spectral binning
NumPy, SciPy, Matplotlib – Scientific computing and visualization
Astropy – Astronomy utilities
barycorrpy – Barycentric corrections
pandas – Data structures
tkinter – GUI framework