Metadata-Version: 2.4
Name: sgnax
Version: 0.2.0
Summary: Multi-channel excess-power search pipeline - a rewrite of snax using SGN framework
Project-URL: Homepage, https://git.ligo.org/detchar/sgn-dq/sgnax
Project-URL: Documentation, https://detchar.docs.ligo.org/sgn-dq/sgnax
Project-URL: Repository, https://git.ligo.org/detchar/sgn-dq/sgnax.git
Project-URL: Issues, https://git.ligo.org/detchar/sgn-dq/sgnax/-/issues
Author-email: Olivia Godwin <olivia.godwin@ligo.org>, Zach Yarbrough <zach.yarbrough@ligo.org>
Maintainer-email: Olivia Godwin <olivia.godwin@ligo.org>, Zach Yarbrough <zach.yarbrough@ligo.org>
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.11
Requires-Dist: gwpy
Requires-Dist: h5py
Requires-Dist: igwn-ligolw
Requires-Dist: igwn-segments
Requires-Dist: lalsuite>=7.26
Requires-Dist: ligo-scald
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: psutil
Requires-Dist: scipy
Requires-Dist: sgn
Requires-Dist: sgn-arrakis
Requires-Dist: sgn-ligo
Requires-Dist: sgn-ts
Requires-Dist: torch
Provides-Extra: dev
Requires-Dist: graphviz; extra == 'dev'
Requires-Dist: markdown-callouts>=0.2; extra == 'dev'
Requires-Dist: markdown-exec>=0.5; extra == 'dev'
Requires-Dist: matplotlib; extra == 'dev'
Requires-Dist: mkdocs-coverage>=0.2; extra == 'dev'
Requires-Dist: mkdocs-gen-files>=0.3; extra == 'dev'
Requires-Dist: mkdocs-literate-nav>=0.4; extra == 'dev'
Requires-Dist: mkdocs-material-igwn; extra == 'dev'
Requires-Dist: mkdocs-section-index>=0.3; extra == 'dev'
Requires-Dist: mkdocs>=1.3; extra == 'dev'
Requires-Dist: mkdocstrings[python]; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: mypy-extensions; extra == 'dev'
Requires-Dist: pip; extra == 'dev'
Requires-Dist: pymdown-extensions; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: pytest-markdown-docs; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: docs
Requires-Dist: markdown-callouts>=0.2; extra == 'docs'
Requires-Dist: markdown-exec>=0.5; extra == 'docs'
Requires-Dist: mkdocs-coverage>=0.2; extra == 'docs'
Requires-Dist: mkdocs-gen-files>=0.3; extra == 'docs'
Requires-Dist: mkdocs-literate-nav>=0.4; extra == 'docs'
Requires-Dist: mkdocs-material-igwn; extra == 'docs'
Requires-Dist: mkdocs-section-index>=0.3; extra == 'docs'
Requires-Dist: mkdocs>=1.3; extra == 'docs'
Requires-Dist: mkdocstrings[python]; extra == 'docs'
Requires-Dist: pymdown-extensions; extra == 'docs'
Provides-Extra: lint
Requires-Dist: mypy; extra == 'lint'
Requires-Dist: mypy-extensions; extra == 'lint'
Requires-Dist: pip; extra == 'lint'
Requires-Dist: ruff; extra == 'lint'
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-markdown-docs; extra == 'test'
Provides-Extra: viz
Requires-Dist: graphviz; extra == 'viz'
Requires-Dist: matplotlib; extra == 'viz'
Description-Content-Type: text/markdown

# SGNAX

SGNAX is a multi-channel excess-power search pipeline - a rewrite of SNAX using the SGN framework for LIGO gravitational wave detection.

## Overview

SGNAX detects short-duration transients in detector channels — strain and auxiliary alike — with two searches: a Q-transform excess-power search (`sgnax-qtransform`) and a matched-filter search against a sine-Gaussian template bank (`sgnax-extract`). It is built on the SGN (Stream Graph Navigator) family of libraries:

- [`sgn`](https://docs.ligo.org/greg/sgn/): Base streaming graph framework
- [`sgn-ts`](https://docs.ligo.org/greg/sgn-ts/): TimeSeries utilities
- [`sgn-ligo`](https://docs.ligo.org/greg/sgn-ligo/): LIGO-specific extensions

## Features

- Q-transform excess-power search over a (frequency, Q) tile grid, with time-based trigger clustering
- Matched-filter search with multi-rate sine-Gaussian template banks and GPU-accelerated PyTorch correlation
- Flexible data source support (frames, devshm, arrakis), each whitened in-pipeline
- HDF5 output format, identical from both searches

## Installation

```bash
pip install sgnax
```

For development:

```bash
pip install -e ".[dev]"
```

## Usage

Run the Q-transform search:

```bash
sgnax-qtransform --help
```

or the matched-filter search:

```bash
sgnax-extract --help
```

## Development

Run the full test suite:

```bash
make all
```

Individual commands:

```bash
make test        # Run tests
make lint        # Run linter
make format      # Format code
make type-check  # Run type checker
make docs        # Build documentation
```

## License

GPL-3.0-or-later. See the [LICENSE](LICENSE) file for details.
