dingo-gw / dingo

Dingo: Deep inference for gravitational-wave observations
MIT License
55 stars 18 forks source link

Asimov interface #131

Closed jonaswildberger closed 1 year ago

jonaswildberger commented 1 year ago

Added the interface with Asimov (https://git.ligo.org/asimov/asimov). This includes (1.) the file dingo/pipe/asimov.py and (2.) a templated dingo.ini file, which contains a template of all inference settings, i.e. asimov configuration can override certain settings based on specific events.

  1. The dingo/pipe/asimov.py file contains the class Dingo(Pipeline), which subclasses asimov.pipeline.Pipeline overriding certain methods according to the Dingo interface. Most importantly, this includes the methodsbuild_dag() and submit_dag(), which are called as part of generating and submitting the DAG in the asimov workflow. Most of the methods are implemented similarly to Bilby.
  2. This templated settings file uses the liquid language (https://liquidjs.com/tutorials/intro-to-liquid.html) allowing some logic in the file. A path to this settings file needs to be included in the asimov config file asimov.conf (see below)

To set up Asimov with Dingo, you need to perform the following steps

dingo-analysis.yaml

kind: analysis
name: Prod0
pipeline: dingo
approximant: IMRPhenomXPHM

TODOs

jonaswildberger commented 1 year ago

I've just added the latest condor arguments and removed the "plot-trace" + redundant "request_gpus" setting.

transientlunatic commented 1 year ago

Hi folks, I've just had a quick glance over this, and it looks sane. My one piece of advice would be to change the way that you're handling the template file so that it doesn't need to be specified in the asimov.conf file, but is instead included with the package.

You can see an example of that here which would reduce the amount of configuration required.

stephengreen commented 1 year ago

@jonaswildberger Could you please address the existing conversations, and then update the Asimov interface to reflect the latest dingo-pipe? DM me to discuss as needed.