Metadata-Version: 2.4
Name: PycWB
Version: 1.1.0a5
Summary: A Python package for coherent gravitational wave burst analysis
Author-email: The PycWB team <yumeng.xu@ligo.org>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://git.ligo.org/yumeng.xu/pycwb
Project-URL: Documentation, https://pycwb.readthedocs.io
Project-URL: Issues, https://git.ligo.org/yumeng.xu/pycwb/-/issues
Project-URL: Changelog, https://git.ligo.org/yumeng.xu/pycwb/-/blob/main/CHANGES.md
Keywords: ligo,physics,gravity,signal processing,gravitational waves,cwb,coherent wave burst
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib
Requires-Dist: astropy
Requires-Dist: pyyaml
Requires-Dist: jsonschema
Requires-Dist: numba
Requires-Dist: jax
Requires-Dist: gwpy
Requires-Dist: gwosc
Requires-Dist: gwdatafind
Requires-Dist: requests
Requires-Dist: ligo-gracedb
Requires-Dist: filelock
Requires-Dist: numpy>=2
Requires-Dist: scipy>=1.13
Requires-Dist: h5py>=3.11
Requires-Dist: lalsuite>=7.23
Requires-Dist: healpy>=1.17
Requires-Dist: scikit-learn>=1.4.2
Requires-Dist: joblib>=1.3
Requires-Dist: pyarrow>=17
Requires-Dist: pillow>=9.0.0
Requires-Dist: click
Requires-Dist: orjson
Requires-Dist: dacite
Requires-Dist: cartopy
Requires-Dist: htcondor
Requires-Dist: psutil
Requires-Dist: memspectrum
Requires-Dist: jinja2
Requires-Dist: plotly
Requires-Dist: wdm-wavelet>=0.4.0
Requires-Dist: burst-waveform>=0.5.0
Requires-Dist: pandas
Requires-Dist: duckdb
Requires-Dist: tqdm
Requires-Dist: iminuit
Provides-Extra: pycbc
Requires-Dist: pycbc; extra == "pycbc"
Provides-Extra: nds2
Requires-Dist: python-nds2-client; extra == "nds2"
Provides-Extra: xgboost
Requires-Dist: xgboost; extra == "xgboost"
Provides-Extra: autoencoder
Requires-Dist: tensorflow; extra == "autoencoder"
Provides-Extra: root
Requires-Dist: uproot; extra == "root"
Requires-Dist: awkward; extra == "root"
Provides-Extra: test
Requires-Dist: pytest>=7; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: iminuit; extra == "test"
Requires-Dist: xgboost; extra == "test"
Requires-Dist: uproot; extra == "test"
Requires-Dist: awkward; extra == "test"
Dynamic: license-file

# PycWB

[![Documentation](https://readthedocs.org/projects/pycwb/badge/?version=latest)](https://docs.pycwb.org)
[![Build Status](https://git.ligo.org/yumeng.xu/pycwb/badges/main/pipeline.svg)](https://git.ligo.org/yumeng.xu/pycwb/-/pipelines)
[![Coverage](https://git.ligo.org/yumeng.xu/pycwb/badges/main/coverage.svg)](https://git.ligo.org/yumeng.xu/pycwb/-/pipelines)
[![Releases](https://git.ligo.org/yumeng.xu/pycwb/-/badges/release.svg)](https://git.ligo.org/yumeng.xu/pycwb/-/releases)
[![PyPI version](https://badge.fury.io/py/pycWB.svg)](https://badge.fury.io/py/pycWB)
[![License](https://img.shields.io/badge/license-GPLv3-blue)](https://git.ligo.org/yumeng.xu/pycwb/-/blob/main/LICENSE)

PycWB is a modular Python implementation of the coherent WaveBurst
(cWB/cWB-2G) algorithms for gravitational-wave burst searches.
The documentation can be found at [docs.pycwb.org](https://docs.pycwb.org).

## Get started

To run the bundled example from a source checkout:

```bash
conda create -n pycwb -c conda-forge python=3.13 pip nds2-client python-nds2-client lalsuite python-ligo-lw
conda activate pycwb
git clone https://git.ligo.org/yumeng.xu/pycwb.git
cd pycwb
python -m pip install .
pycwb --version
pycwb run examples/demo/user_parameters.yaml --work-dir my_first_search
pycwb progress --work-dir my_first_search
```

The CLI example in `examples/demo/` generates synthetic data containing a loud
injected burst and writes the normal pipeline outputs. It needs no detector-data account. The first run may
download a roughly 53 MiB cross-talk catalog and compile numerical kernels.
Use a fresh directory for each run. See [Your First Search](https://docs.pycwb.org/en/latest/start_here.html)
for expected outputs and [troubleshooting](docs/source/troubleshooting.rst).

## Choose the matching version

A normal `python -m pip install pycwb` selects a stable release; `--pre` allows
prereleases. Older releases have different dependencies and may require ROOT.
Match `pycwb --version` to the documentation version. Development documentation
can describe features not yet available on PyPI.

The current native path requires Python >=3.11 and does not require ROOT.
Linux x86_64/Python 3.13 is the current CI environment. Other platform coverage
and optional ROOT/PyCBC/XGBoost setup are described in the
[installation guide](docs/source/install.rst).

## Run your own analysis

```bash
pycwb run user_parameters.yaml
```

```python
from pycwb.workflow.run import search

search("user_parameters.yaml")
```

For production configuration templates, follow
[Setup Config Templates](https://docs.pycwb.org/en/latest/config_repository.html).
Read [Understanding Your Results](docs/source/understanding_results.rst),
[Reproducibility](docs/source/reproducibility.rst), and
[Validation Scope](docs/source/validation_status.rst) before interpreting an analysis.

## Help and contributions

- [Support and bug reports](SUPPORT.md), including an email route without a GitLab account.
- [Contribution instructions](CONTRIBUTING.md) and [changes](CHANGES.md).
- [Citation metadata](CITATION.cff) and [scientific citation guidance](docs/source/credit.rst).
- [Release and compatibility process](docs/source/release_policy.rst).

Current native notebooks and optional integrations are listed in the
[example guide](examples/README.md). The CLI [synthetic example](examples/demo/README.md) is the maintained beginner path.
