Skip to content

How to use the looper config file

Starting with looper version >=1.5.0, you should specify a pipeline interface in the looper config file, rather than in the PEP.

Example looper config file using local PEP:

pep_config: $HOME/hello_looper-master/project/project_config.yaml
output_dir: "$HOME/hello_looper-master/output"
pipeline_interfaces:
  sample: "$HOME/hello_looper-master/pipeline/pipeline_interface"
  project: "some/project/pipeline"

In addition, looper>=1.5.0 supports projects from PEPhub. Using a PEP from PEPhub allows a user to run a pipeline without downloading the PEP. This allows you to keep the sample table in a centralized, shared location. You need only specify all necessary environment variables used by the PEP.

Example looper config file using PEPhub project:

pep_config: pepkit/hello_looper:default
output_dir: "$HOME/hello_looper-master/output"
pipeline_interfaces:
  sample: "$HOME/hello_looper-master/pipeline/pipeline_interface_sample.yaml"
  project: "$HOME/hello_looper-master/pipeline/pipeline_interface_project.yaml"

Where: - output_dir is pipeline output directory, where results will be saved. - pep_config is a local config file or PEPhub registry path. (registry path should be specified in one of supported ways: namespace/name, namespace/name:tag) - pipeline interfaces is a local path to project or sample pipelines.

To run pipeline, go to the directory of .looper.config and execute command in your terminal: looper run --looper-config {looper_config_path} or looper runp --looper-config {looper_config_path} (project-level pipeline).

Customize looper

You can also customize things further. You can provide a cli keyword to specify any command line (CLI) options from within the looper config file. The subsections within this section direct the arguments to the respective looper subcommands. So, to specify, e.g. sample submission limit for a looper run command use:

cli:
    run:
      limit: 2

Keys in the cli.<subcommand> section must match the long argument parser option strings, so command-extra, limit, dry-run and so on. For more CLI options refer to the subcommands usage.