BLiSS — Blind Line Search System
BLiSS (Blind Line Search System) is an open-source Python package for the automatic detection and identification of emission lines in astronomical spectra.
Rather than requiring users to manually inspect spectra or provide a list of candidate line energies, BLiSS performs a genuine blind line search directly on the data, ranking statistically significant emission-line candidates and optionally identifying them using atomic databases.
Originally developed for X-ray spectroscopy, BLiSS is designed around a general workflow that can be applied to any spectral dataset with associated uncertainties.
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.
Metadata
Release files for bliss-lib 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bliss_lib-0.1.1.tar.gz | 3.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bliss_lib-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.9 MB
Release files / bliss_lib-0.1.1.tar.gz
| Download URL | bliss_lib-0.1.1.tar.gz |
|---|---|
| Size | 3.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a95f3010f11464aba418cff869724431abc6816453cb83be5682d2a5fac49996
|
|
BLAKE2b-256 checksum How to use checksums |
a0b85eabd4b1eafb32e51607b9ea4da35b820e81931d4877b51aee0577282d24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / bliss_lib-0.1.1-py3-none-any.whl
| Download URL | bliss_lib-0.1.1-py3-none-any.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73f79d26fa29e96ceff0179564c0c3ceabcd828f79cc3e0b17580f6f83742ff6
|
|
BLAKE2b-256 checksum How to use checksums |
790001d05ee7462d5cdcf5841590054b6e5d378f6949f2ccbaeca51a5c0f67b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|