Nextflow Config

Allows tweaking how the Nextflow Config file is generated.

labels

Type: Map of String to String

Default: A series of default labels to specify memory and cpu constraints

A series of default labels to specify memory and cpu constraints.

The default memory labels are defined as “mem1gb”, “mem2gb”, “mem4gb”, … upto “mem512tb” and follows powers of 2. The default cpu labels are defined as “cpu1”, “cpu2”, “cpu5”, “cpu10”, … upto “cpu1000” and follows a semi logarithmic scale (1, 2, 5 per decade).

Conceptually it is possible for a Viash Config to overwrite the full labels parameter, however likely it is more efficient to add additional labels in the Viash Project with a config mod.

Examples:

Replace the default labels with a different set of labels

labels:
  lowmem: "memory = 4.GB"
  lowcpu: "cpus = 4"
  midmem: "memory = 25.GB"
  midcpu: "cpus = 10"
  highmem: "memory = 50.GB"
  highcpu: "cpus = 20"
  vhighmem: "memory = 100.GB"
  vhighcpu: "cpus = 40"

Add ‘lowmem’ and ‘lowcpu’ to the default labels by using a config mod

-c '.platforms[.type == "nextflow"].config.labels.lowmem := "memory = 4.GB";.platforms[.type == "nextflow"].config.labels.lowcpu := "cpus = 4"'

Add ‘lowmem’ and ‘lowcpu’ to the default labels by using the Viash Project file

config_mods: |
  .platforms[.type == "nextflow"].config.labels.lowmem := "memory = 4.GB"
  .platforms[.type == "nextflow"].config.labels.lowcpu := "cpus = 4"

Replace the default labels with a different set of labels by using the Viash Project file

config_mods: |
  .platforms[.type == "nextflow"].config.labels := { lowmem: "memory = 4.GB", lowcpu: "cpus = 4", midmem: "memory = 25.GB", midcpu: "cpus = 10", highmem: "memory = 50.GB", highcpu: "cpus = 20", vhighmem: "memory = 100.GB", vhighcpu: "cpus = 40" }

script

Type: String / List of String

Default: Empty

Includes a single string or list of strings into the nextflow.config file. This can be used to add custom profiles or include an additional config file.

Examples:

script:
  - |
    profiles {
    ...
    }
script: includeConfig("config.config")