Skip to main content
Contents

Reference


On this page

Reference

asimov-pesummary

asimov-pesummary is a plugin for Asimov 0.7+ that integrates PESummary as a post-processing pipeline. Once installed, the plugin is discovered automatically via Asimov’s entry-point registry — no extra configuration is required.

What it does

  • Builds a summarypages command from the per-production Asimov meta-data (waveform, data-quality, calibration, PSDs, …).

  • Submits the job to an HTCondor scheduler.

  • Returns the path to the resulting PESummary HDF5 metafile so that Asimov can track it as a downstream asset.

Installation

From PyPI:

pip install asimov-pesummary

From source:

git clone https://git.ligo.org/asimov/asimov-pesummary.git
cd asimov-pesummary
pip install -e ".[docs,test]"

Configuration

Add a postprocessing.pesummary block to the relevant production in your Asimov ledger. All keys are optional unless noted.

postprocessing:
  pesummary:
    accounting group: ligo.dev.o4.cbc.pe.lalinference  # required on LVK clusters
    multiprocess: 4          # number of CPUs (required)
    cosmology: Planck15_lal
    redshift: exact
    skymap samples: 2000
    evolve spins: forwards   # "forwards", "backwards", or "forwards backwards"
    calculate:
      - precessing snr
    regenerate: true
    regenerate posteriors:
      - redshift
      - mass_1_source
      - mass_2_source

Subject analyses

PESummary can also be attached to an Asimov SubjectAnalysis instead of a single production, in which case it combines several productions’ results into one set of summary pages rather than post-processing just one. This uses the same postprocessing.pesummary configuration described above (inherited from the event/project the same way it is for a regular production), plus the analyses/refreshable keys, which are generic Asimov SubjectAnalysis behaviour rather than anything specific to this plugin:

kind: analysis
name: CombinedPESummary
pipeline: pesummary
analyses:
  - pipeline: bilby   # combine every bilby production on this event
refreshable: true
status: ready

Marking the analysis refreshable: true means Asimov’s own monitor loop (asimov monitor) automatically resubmits it whenever the set of resolved source analyses changes — for example because a new production finished, or because a review decision changed which productions match the analyses selector. See Asimov’s own documentation for the analyses/refreshable selector syntax and staleness detection; this plugin only implements what happens when such a resubmission occurs.

The first time a SubjectAnalysis PESummary production runs, it submits a single summarypages run combining every currently resolved source analysis.

On a later refresh that only adds newly-resolved analyses to an already-published page, only the new analyses are submitted, using summarypages’s own --add_to_existing/--existing_webdir flags to append them to the existing pages in place, rather than reprocessing every source analysis again from scratch.

On a later refresh that only removes analyses (for example after a review decision drops a production from the analyses selector, with nothing new added), summarypages has no way to retract a label from an already-published page in place – but recombining every remaining analysis from scratch would also be wasteful, since none of their posteriors have changed. Instead, summarymodify --remove_label strips the removed analyses out of the existing metafile directly, and summarypages is re-run against that trimmed metafile to regenerate the pages, without reprocessing the analyses that remain.

Anything else – a refresh that both adds and removes analyses at once, or a previously-published page that’s gone missing on disk – falls back to a full rebuild, recombining every currently resolved analysis from scratch.

Note

Renaming a stored analysis (for example after a production is renamed in the ledger) is not handled automatically, since a before/after diff of resolved dependency names alone can’t distinguish a rename from an unrelated removal and addition. Call PESummary.rename_analysis() directly to rename a label in the published metafile in place via summarymodify, without triggering a re-run.