BayesWave pipeline integration for Asimov
Project description
asimov-bayeswave
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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:
- Install this plugin:
pip install asimov-bayeswave - The plugin will be automatically discovered by Asimov 0.7+
- No changes to your configuration files are required
License
This project is licensed under the MIT License - see the LICENSE file for details.
Authors
- Daniel Williams (daniel.williams@ligo.org)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6928872a575781e710207f206127e06496d09ea642a5afc063d917c991ef92f4
|
|
| MD5 |
d1125f76a8609314bc08ee2b265575c6
|
|
| BLAKE2b-256 |
79b7c583999acb803e651c0115e05cfeac8585439f38fc0e0bc93abb962568aa
|
File details
Details for the file asimov_bayeswave-0.1.0-py3-none-any.whl.
File metadata
- Download URL: asimov_bayeswave-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abbca130d847737aea3964e1a4aa5fe42d675476491c18e60094d6a8e44e7358
|
|
| MD5 |
2dffc24a4a1276d3ca3b47759ff79310
|
|
| BLAKE2b-256 |
a1a94a45f5530a7beccfc4ce3dba20238b9531b870a832e5c712cea2a174108a
|