Documentation

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

1 Module documentation is required

The module MUST have a meta.yaml in the same directory as the module main.nf.

2 Number of keywords

Keywords SHOULD be sufficient to make the module findable through research domain, data types, and tool function keywords. Keywords MUST NOT be solely the (sub)tool name.

Info

For multi-tool modules, add the keyword multi-tool and all the (sub)tools.

3 Keyword formatting

Keywords MUST be all lower case.

4 Documenting of all tools

The tools section MUST list every tool used in the module. For example:

tools:
  - bowtie2: <....>
  - samtools: <....>

5 Documentation of args of each piped or multiple command

The tools section MUST have a args_id: field for every tool in the module that describes which $args ($args2, $args3) variable is used for. A single tool module will only have args_id: "$args".

tools:
  - bowtie2:
      <...>
      args_id: "$args"
  - samtools:
      <...>
      args_id: "$args2"

6 Required channel documentation

Only include entries of input and output channels in the Input and Output sections of the meta.yaml.

7 Documentation of tuples

Split input and output tuples into separate entries. That is, meta should be a separate entry to the file it is associated with.

8 Input and output channel types

Use only the following categories for input/output types:

  • map
  • file
  • directory
  • string
  • boolean
  • integer
  • float
  • boolean
  • list

9 Correspondence of input/outputs entries to channels

Your input/output entries MUST match a corresponding channel in the module itself:

  • There should be a one-to-one relationship between the module’s inputs and outputs and those described in meta.yml.
  • You MUST NOT combine multiple output channels in input/output entries.

10 Useful input/output descriptions

Your input/output descriptions SHOULD be descriptive of the contents of file. For example, not only ‘A TSV file’ but describe what the file contains.

11 Input/output glob pattern

Your input/output patterns (if present) MUST follow a Java glob pattern.

12 Ontology

Your module meta.yml files SHOULD contain a bio.tools ID when available.

Your module meta.yml files SHOULD contain ontology URLs for files when relevant.

Some bioinformatics tools listed on bio.tools already have a list of inputs and outputs with their format that you can use (e.g., FastQC), the EDAM ontology term can be obtained by selecting the relevant format in the input section of the diagrams. Otherwise, you can get the ontology terms for a given format by searching the term in the EBI’s Ontology Lookup Service (recommended), or the EDAM browser.

13 Indication of input channel requirement

You should mark input entries as Mandatory or Optional