Reference

asimov-lalinference

asimov-lalinference is a plugin for Asimov 0.7+ that integrates the LALInference parameter-estimation pipeline. Once installed, the plugin is discovered automatically via Asimov’s entry-point registry — no extra configuration is required.

Warning

LALInference has been superseded by newer sampling pipelines (bilby, RIFT) and its integration with Asimov is not fully reviewed. It must not be used for collaboration parameter estimation analyses. It remains useful for cross-checks and for replicating older analyses.

What it does

  • Builds a lalinference_pipe DAG from a production’s .ini file (either pre-seeded in the event repository, or rendered by Asimov from this plugin’s bundled config_template using the production’s meta-data — waveform, data, likelihood, priors).

  • Submits the resulting DAG to an HTCondor or Slurm scheduler via Asimov’s scheduler-agnostic API.

  • Once the run completes (a real posterior_samples/posterior_*.hdf5 file is produced), hands off to the asimov-pesummary plugin for post-processing, if it is installed.

Installation

LALInference itself is only distributed via conda-forge — there is no PyPI wheel — so this plugin has two installation steps:

conda install -c conda-forge lalinference
pip install asimov-lalinference

From source:

conda install -c conda-forge lalinference
git clone https://github.com/transientlunatic/asimov-lalinference.git
cd asimov-lalinference
pip install -e ".[docs,test]"

Configuration

A minimal production blueprint:

kind: analysis
name: Prod0
pipeline: lalinference
status: ready
interferometers:
  - H1
  - L1
engine: lalinferencenest
nparallel: 4
waveform:
  approximant: IMRPhenomPv2pseudoFourPN
  reference frequency: 20
data:
  segment length: 4
  channels:
    H1: H1:DCS-CALIB_STRAIN_CLEAN_C01
    L1: L1:DCS-CALIB_STRAIN_CLEAN_C01
  frame types:
    H1: H1_HOFT_C01
    L1: L1_HOFT_C01
likelihood:
  sample rate: 2048
  minimum frequency:
    H1: 20
    L1: 20
priors:
  mass 1:
    minimum: 1
    maximum: 200
  mass ratio:
    minimum: 0.05
    maximum: 1.0
  luminosity distance:
    minimum: 10
    maximum: 5000
scheduler:
  accounting group: ligo.dev.o4.cbc.pe.lalinference

The sampler block controls the nested-sampling settings that were historically hard-coded in the template (nlive, tolerance, maxmcmc, neff, ntemps); all default to their original values if omitted:

sampler:
  nlive: 2048
  tolerance: 0.1

Alternatively, a production’s .ini can be committed directly to the event repository (at <category>/<production name>.ini, analyses/ by default) instead of relying on templated generation — Asimov’s manage build step only renders one if it doesn’t already find one. This is how this plugin’s own end-to-end test is set up, using LALInference’s built-in simulated (“fake-cache”) Gaussian noise rather than real strain data.

Status messages

wait

The pipeline will ignore the production.

ready

Asimov will attempt to submit the job to the scheduler.

running

Applied after the job is submitted to the cluster.

stuck

Applied when the job is held or an error is detected in the pipeline’s execution.

finished

Applied when normal termination of the pipeline is detected (a real posterior_samples/posterior_*.hdf5 file exists).

Post-processing

Once a job completes, after_completion() looks up the pesummary pipeline via the asimov.pipelines entry-point group and hands the production off to it. If asimov-pesummary is not installed, a clear PipelineException is raised (rather than silently failing) explaining how to install it:

pip install asimov-pesummary
© Copyright 2026, Daniel Williams.
Created using Sphinx 9.1.0.