asimov · v0.7.1 · open source (MIT)

Workflow infrastructure for large-scale scientific analysis

asimov automates, records and reproduces the analyses behind the gravitational-wave transient catalogues. It turns declarative blueprints into jobs on HTCondor and Slurm, keeps every analysis in a version-controlled ledger, and works with any analysis code through a documented plugin interface.

Install
pip install asimov
or
conda install -c conda-forge asimov
GWTC-2 → 4.0
catalogues produced with asimov by the LIGO, Virgo and KAGRA collaborations
16
plugins for parameter estimation, data, searches and more
33
papers citing asimov
HTCondor · Slurm
schedulers supported out of the box

What asimov does

A catalogue of gravitational-wave events means thousands of analyses, run with several codes, over months, by many people. asimov exists so that each of those analyses is specified once, run automatically, and can be traced and re-run later.

Declare

Analyses are described in YAML blueprints: which pipeline, which settings, and which other analyses they depend on. Settings cascade from project to subject to analysis, so shared choices are made in one place and can be reviewed.

Automate

asimov writes each pipeline's configuration, submits the jobs to HTCondor or Slurm, monitors them, resubmits them when they fail, and starts dependent analyses and post-processing when their inputs are ready.

Record

A ledger holds the configuration and state of every analysis, and generated configurations are committed to git. Review sign-off is stored alongside each result, and HTML reports summarise the state of a whole project.

Extend

Pipelines are Python packages that register through entry points, so asimov doesn't depend on any particular analysis code. Adding a pipeline means implementing one class; the registry lists the existing ones.

From blueprint to result

This blueprint asks for a noise-spectrum estimate followed by parameter estimation that uses it. asimov works out the order, builds both configurations, runs each job when its inputs are ready, and records the outcome in the ledger.

kind: analysis
name: generate-psds
pipeline: bayeswave
---
kind: analysis
name: parameter-estimation
pipeline: bilby
needs:
  - generate-psds
asimov apply -f analyses.yaml -e GW150914_095045
asimov manage build submit
asimov monitor
Blueprints are applied to the ledger; asimov builds pipeline configurations through plugins, submits them to a scheduler, monitors the jobs and records results and reviews back in the ledger. BlueprintsYAML, reviewed Ledgerconfig · statereviews · git Pluginsbilby, pycbc, … SchedulerHTCondor · Slurm Monitordetect · resubmit Resultsreports · review apply build submit status finish record

Learn

Cite

If asimov contributes to your research, please cite:

Williams, D., Veitch, J., Chiofalo, M., Schmidt, P., Udall, R., Vajpeyi, A., & Hoy, C. (2023). Asimov: A framework for coordinating parameter estimation workflows. The Journal of Open Source Software, 8(84), 4170. doi:10.21105/joss.04170
BibTeX and software DOIs →