Resource requirements

The key words “MUST”, “MUST NOT”, “SHOULD”, etc. are to be interpreted as described in RFC 2119.

1 Use of labels in modules

An appropriate resource label MUST be provided for the module as listed in the nf-core pipeline template. For example, process_single, process_low, process_medium or process_high.

2 Source of multiple threads or cores value

If the tool supports multi-threading, provide the appropriate parameter using the Nextflow task variable. For example, --threads $task.cpus.

If the tool does not support multi-threading, consider process_single unless large amounts of RAM are required.

3 Specifying multiple threads for piped commands

If a module contains multiple tools that support multi-threading (e.g., piping output into a samtools command), assign CPUs per tool:

  • [task.cpus] is supplied unchanged when a process uses multiple cores.
  • If one tool is multi-threaded and another uses a single thread, specify directly in the command itself. For example, with ${task.cpus}.