BLiSS — Blind Line Search System
BLiSS is an open-source Python package for finding emission lines in spectra without telling the code where to look first. In other words: a real blind line-search algorithm — you only need your spectrum.
BLiSS was designed to simplify and speed up spectral analysis in X-ray astronomy. Instead of manually inspecting spectra, guessing candidate energies, and testing lines one by one, BLiSS performs an automatic search for statistically significant emission features and then cross-matches them with atomic transitions.
The package combines Gaussian line-profile fitting, statistical scoring, and database-based identification using XSTAR atomic data. It is especially useful when the continuum is complex, uncertain, or simply not the main focus of the analysis.
Although BLiSS was developed for X-ray spectra, the core idea is more general: if you have spectral data with uncertainties, BLiSS can help you search for emission features in a systematic and reproducible way.
Features
- Blind emission-line search
- Automatically searches spectra for statistically significant emission features.
-
No prior knowledge of line positions is required.
-
Automatic Gaussian fitting
- Fits candidate features with Gaussian profiles.
-
Provides statistical ranking of all detected lines.
-
Continuum-independent workflow
-
Line searches can be performed without defining a global continuum model beforehand.
-
Atomic line identification
- Cross-matches detected features with XSTAR atomic transitions.
-
Supports Doppler velocity constraints.
-
Flexible rebinning
-
Rebin spectra by instrumental resolution or target signal-to-noise ratio.
-
Null-spectrum evaluation
- Reports five global Monte Carlo p-values based on synthetic null spectra.
-
Provides an additional empirical BLiSS score derived using Gaussian mixture modelling.
-
Reproducible analyses
- Applies identical search criteria across large spectral samples.
Installation
Install BLiSS directly from PyPI:
pip install bliss-lib
or install the development version from GitHub:
git clone https://github.com/xragua/bliss.git
cd bliss
pip install -e .
Quick start
import bliss
# Import your spectrum
# Run the blind line search
# Inspect the detected candidates
Example notebooks are available in the notebooks/ directory:
https://github.com/xragua/BLiSS/tree/main/notebooks
Documentation
GitHub repository:
https://github.com/xragua/bliss
Latest releases:
https://github.com/xragua/bliss/releases
Requirements
- Python 3.10 or newer
- NumPy
- SciPy
- Pandas
- Astropy
- Matplotlib
These dependencies are installed automatically with BLiSS.
Citation
If you use BLiSS in your research, please cite:
@misc{abalo2026blindlinesearchsystem, title={Blind Line Search System: BLiSS}, author={Luis Abalo and Graciela Sanjurjo-Ferrín and Jessica Planelles-Villalva and José Joaquín Rodes-Roca and José Miguel Torrejón}, year={2026}, eprint={2607.07783}, archivePrefix={arXiv}, primaryClass={astro-ph.IM}, url={https://arxiv.org/abs/2607.07783}, }
Support
Bug reports, feature requests and suggestions are welcome through GitHub Issues:
https://github.com/xragua/bliss/issues
License
This project is distributed under the MIT License.