Metadata-Version: 2.4
Name: castor-gw
Version: 0.1.0
Summary: Transformer-based gravitational-wave detection pipeline
Author: Chayan Chatterjee
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/chayanchatterjee/castor
Project-URL: Documentation, https://castor.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/chayanchatterjee/castor
Project-URL: Issues, https://github.com/chayanchatterjee/castor/issues
Project-URL: Changelog, https://github.com/chayanchatterjee/castor/blob/main/CHANGELOG.md
Keywords: gravitational waves,deep learning,transformers,signal detection,pytorch
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: numpy<2,>=1.26
Requires-Dist: scipy>=1.14
Requires-Dist: h5py>=3.13
Requires-Dist: torch>=2.4
Requires-Dist: tqdm>=4.64
Provides-Extra: training
Requires-Dist: ml4gw<0.8,>=0.7.4; extra == "training"
Provides-Extra: data
Requires-Dist: pycbc; extra == "data"
Requires-Dist: ligo-segments>=1.4; extra == "data"
Requires-Dist: requests>=2.32; extra == "data"
Provides-Extra: evaluation
Requires-Dist: pycbc; extra == "evaluation"
Provides-Extra: plotting
Requires-Dist: matplotlib>=3.10; extra == "plotting"
Requires-Dist: pandas>=2.2; extra == "plotting"
Provides-Extra: docs
Requires-Dist: sphinx>=7; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=3; extra == "docs"
Requires-Dist: myst-parser>=3; extra == "docs"
Requires-Dist: sphinx-autoapi>=3; extra == "docs"
Requires-Dist: sphinx-design>=0.6; extra == "docs"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pytest-cov>=5; extra == "dev"
Requires-Dist: ruff>=0.11; extra == "dev"
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: twine>=6; extra == "dev"
Requires-Dist: tomli>=2; python_version < "3.11" and extra == "dev"
Dynamic: license-file

# CASTOR

[![CI](https://github.com/chayanchatterjee/castor/actions/workflows/ci.yml/badge.svg)](https://github.com/chayanchatterjee/castor/actions/workflows/ci.yml)
[![Documentation Status](https://readthedocs.org/projects/castor/badge/?version=latest)](https://castor.readthedocs.io/en/latest/?badge=latest)
[![PyPI](https://img.shields.io/pypi/v/castor-gw)](https://pypi.org/project/castor-gw/)
[![License](https://img.shields.io/github/license/chayanchatterjee/castor)](LICENSE)

CASTOR is a transformer-based pipeline for gravitational-wave detection,
training, inference, and sensitivity evaluation.

> CASTOR is under active development. Version 0.1.0 packages the analysis
> workflow described in the accompanying paper.

## Installation

Choose and install the appropriate CPU, CUDA, or ROCm build of PyTorch for
your platform before installing CASTOR. This prevents a CPU-only Linux
environment from downloading an unintended CUDA runtime. Then install the
released package with:

```bash
python -m pip install castor-gw
```

For an editable development installation, install from a clone:

```bash
git clone https://github.com/chayanchatterjee/castor.git
cd castor
python -m pip install -e .
```

Install the scientific extras needed by a workflow with:

```bash
python -m pip install -e ".[training]"   # ML4GW online training
python -m pip install -e ".[evaluation]" # PyCBC whitening
python -m pip install -e ".[plotting]"   # plotting dependencies
```

Verify the installed commands with:

```bash
castor-train --help
castor-eval --help
```

See the [documentation](https://castor.readthedocs.io/en/latest/) for the
training, evaluation, cluster, data-format, and reproducibility guides.

## Reproducibility

The paper workflow uses 10--50 solar-mass component masses, 500 epochs,
global seed 2026, deterministic validation, raw checkpoint weights, and a
factor of 32 that reconciles the PyCBC and ML4GW whitening conventions.
Checkpoints and evaluation caches record the configuration and input
identities required to reject incompatible reuse.

## License

CASTOR is distributed under the Apache License 2.0.
