Skip to content

Looper configuration file

The .looper.yaml file configures looper for your project. It specifies where to find your samples, pipelines, and how to run them.

pep_config: ./project_config.yaml
output_dir: ./results
pipeline_interfaces:
- ./pipeline/pipeline_interface.yaml
KeyTypeDescription
pep_configstringPath to PEP config file (YAML or CSV) or PEPhub registry path
output_dirstringDirectory for pipeline outputs
pipeline_interfaceslistPaths to pipeline interface YAML files

The pipestat section configures result reporting. All keys are optional.

pipestat:
project_name: my_project
results_file_path: results.yaml
flag_file_dir: results/flags
KeyTypeDescription
project_namestringProject name for results tracking
results_file_pathstringPath to YAML file for storing results
flag_file_dirstringDirectory for status flag files
pephub_pathstringPEPhub registry path for results storage

For PostgreSQL, use a nested database section:

pipestat:
project_name: my_project
database:
dialect: postgresql
driver: psycopg2
name: pipestat-db
user: postgres
password: ${POSTGRES_PASSWORD}
host: 127.0.0.1
port: 5432

Environment variables can be used anywhere in the config with ${VAR} syntax. This is recommended for sensitive values like passwords.

For PEPhub:

pipestat:
pephub_path: "databio/myproject:results"

The pep_config value can be:

  1. Local YAML file: ./project_config.yaml
  2. Local CSV file: ./samples.csv (simple projects)
  3. PEPhub registry path: databio/myproject:default
pep_config: samples.csv
output_dir: results
pipeline_interfaces:
- pipeline_interface.yaml
pep_config: ./metadata/project_config.yaml
output_dir: ./results
pipeline_interfaces:
- ./pipeline/pipeline_interface.yaml
pipestat:
project_name: my_project
results_file_path: results.yaml
flag_file_dir: results/flags
pep_config: databio/example_project:default
output_dir: ./results
pipeline_interfaces:
- ./pipeline/pipeline_interface.yaml

You can use environment variables anywhere in the config file with ${VAR} syntax. This is useful for:

  • Keeping secrets out of config files (database passwords, API keys)
  • Making configs portable across machines (paths, hostnames)
pipestat:
database:
password: ${DB_PASSWORD}
host: ${DB_HOST}
  • DIVCFG - Path to divvy configuration file (for compute settings)