Skip to main content

BayesWave pipeline integration for Asimov

Project description

asimov-bayeswave

Tests Documentation Status PyPI version License: MIT

BayesWave pipeline integration for Asimov.

This package provides a plugin for Asimov 0.7+ that enables integration with the BayesWave parameter estimation pipeline for gravitational wave data analysis.

Features

  • 🔌 Plugin Architecture: Seamlessly integrates with Asimov via entry points
  • 📊 PSD Generation: Automatic power spectral density estimation and collection
  • 🔄 Format Conversion: Converts PSDs to XML format for use with other pipelines
  • 🚀 HTCondor Integration: Automated DAG generation and job submission
  • 📈 Result Collection: Automatic collection of megaplot outputs and visualizations
  • 🎯 PSD Suppression: Support for suppressing frequency bands in PSDs
  • 🧪 Well Tested: Comprehensive unit test coverage

Installation

Via Asimov (Recommended)

If you have asimov 0.7+, you can install gravitational wave pipelines including bayeswave with:

pip install asimov[gw]

This will automatically install asimov-bayeswave and other GW analysis plugins.

From PyPI (when released)

pip install asimov-bayeswave

From Source

git clone https://github.com/transientlunatic/asimov-bayeswave.git
cd asimov-bayeswave
pip install -e .

For Development

pip install -e ".[docs,test]"

Quick Start

Once installed, the BayesWave pipeline is automatically available in Asimov. To add a new bayeswave analysis you can create a blueprint YAML file like the following:

kind: analysis
pipeline: bayeswave
comment: PSD generation with BayesWave
likelihood:
  sample rate: 2048
  segment length: 8
data:
  channels:
    H1: H1:GDS-CALIB_STRAIN
    L1: L1:GDS-CALIB_STRAIN
quality:
  minimum frequency:
    H1: 20
    L1: 20

Usage

Via Asimov CLI

# Build the DAG
asimov manage build --production Prod0

# Submit the job
asimov manage submit --production Prod0

# Monitor progress
asimov manage monitor

Via Python API

from asimov_bayeswave import BayesWave

# Create pipeline instance
pipeline = BayesWave(production)

# Build and submit
pipeline.build_dag()
pipeline.submit_dag()

# Collect results after completion
assets = pipeline.collect_assets()
psds = assets["psds"]
xml_psds = assets["xml psds"]

Requirements

  • Python >= 3.9
  • asimov >= 0.7.0
  • numpy
  • BayesWave (must be installed separately)

Documentation

Full documentation is available at asimov-bayeswave.readthedocs.io.

Building Documentation Locally

cd docs
make html

The built documentation will be in docs/build/html/.

Testing

Run the test suite with:

pytest

For coverage reporting:

pytest --cov=asimov_bayeswave --cov-report=html

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure:

  • All tests pass
  • New features include tests
  • Documentation is updated
  • Code follows PEP 8 style guidelines

Migration from Asimov 0.6

If you're upgrading from Asimov 0.6 which included BayesWave support natively:

  1. Install this plugin: pip install asimov-bayeswave
  2. The plugin will be automatically discovered by Asimov 0.7+
  3. No changes to your configuration files are required

License

This project is licensed under the MIT License - see the LICENSE file for details.

Authors

Acknowledgments

  • The LIGO Scientific Collaboration
  • The BayesWave development team
  • The Asimov development team

Citation

If you use this software in your research, please cite:

@software{asimov_bayeswave,
  author = {Williams, Daniel},
  title = {asimov-bayeswave: BayesWave integration for Asimov},
  url = {https://github.com/transientlunatic/asimov-bayeswave},
  year = {2026}
}

Support

For issues, questions, or contributions, please use the GitHub issue tracker.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asimov_bayeswave-0.1.0.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asimov_bayeswave-0.1.0-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file asimov_bayeswave-0.1.0.tar.gz.

File metadata

  • Download URL: asimov_bayeswave-0.1.0.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for asimov_bayeswave-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6928872a575781e710207f206127e06496d09ea642a5afc063d917c991ef92f4
MD5 d1125f76a8609314bc08ee2b265575c6
BLAKE2b-256 79b7c583999acb803e651c0115e05cfeac8585439f38fc0e0bc93abb962568aa

See more details on using hashes here.

File details

Details for the file asimov_bayeswave-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for asimov_bayeswave-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 abbca130d847737aea3964e1a4aa5fe42d675476491c18e60094d6a8e44e7358
MD5 2dffc24a4a1276d3ca3b47759ff79310
BLAKE2b-256 a1a94a45f5530a7beccfc4ce3dba20238b9531b870a832e5c712cea2a174108a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page