nextflow_config
PipelineLint.nextflow_config()
Checks the pipeline configuration for required variables.
All nf-core pipelines are required to be configured with a minimal set of variable names. This test fails or throws warnings if required variables are not set.
These config variables must be set in nextflow.config or another config
file imported from there. Any variables set in nextflow script files (eg. main.nf)
are not checked and will be assumed to be missing.
The following variables fail the test if missing:
-
params.outdir: A directory in which all pipeline results should be saved -
manifest.name: The pipeline name. Should begin withnf-core/ -
manifest.description: A description of the pipeline -
manifest.version- The version of this pipeline. This should correspond to a GitHub release.
- If
--releaseis set when runningnf-core lint, the version number must not contain the stringdev - If
--releaseis _not_ set, the version should end indev(warning triggered if not)
-
manifest.nextflowVersion- The minimum version of Nextflow required to run the pipeline.
- Should be
>=or!>=and a version number, eg.manifest.nextflowVersion = '>=0.31.0'(see Nextflow documentation) >=warns about old versions but tries to run anyway,!>=fails for old versions. Only use the latter if you know that the pipeline will certainly fail before this version.- This should correspond to the
NXF_VERversion tested by GitHub Actions.
-
manifest.homePage- The homepage for the pipeline. Should be the nf-core GitHub repository URL,
so beginning with
https://github.com/nf-core/
- The homepage for the pipeline. Should be the nf-core GitHub repository URL,
so beginning with
-
timeline.enabled,trace.enabled,report.enabled,dag.enabled- The nextflow timeline, trace, report and DAG should be enabled by default (set to
true)
- The nextflow timeline, trace, report and DAG should be enabled by default (set to
-
process.cpus,process.memory,process.time- Default CPUs, memory and time limits for tasks
-
params.input- Input parameter to specify input data, specify this to avoid a warning
- Typical usage:
params.input: Input data that is not NGS sequencing data
-
params.custom_config_version- Should always be set to default value
master
- Should always be set to default value
-
params.custom_config_base- Should always be set to default value:
https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version} -
params.show_hidden_params- Determines whether boilerplate params are showed by schema. Set to
falseby default
- Determines whether boilerplate params are showed by schema. Set to
-
params.schema_ignore_params- A comma separated string of inputs the schema validation should ignore.
The following variables throw warnings if missing:
manifest.mainScript: The filename of the main pipeline script (should bemain.nf)timeline.file,trace.file,report.file,dag.file- Default filenames for the timeline, trace and report
- The DAG file path should end with
.svg(If Graphviz is not installed, Nextflow will generate a.dotfile instead)
The following variables are depreciated and fail the test if they are still present:
params.version: The old method for specifying the pipeline version. Replaced bymanifest.versionparams.nf_required_version: The old method for specifying the minimum Nextflow version. Replaced bymanifest.nextflowVersionparams.container: The old method for specifying the dockerhub container address. Replaced byprocess.containerigenomesIgnore: Changed toigenomes_ignoreNoteThe
snake_caseconvention should now be used when defining pipeline parameters
The following Nextflow syntax is depreciated and fails the test if present:
- Process-level configuration syntax still using the old Nextflow syntax, for example:
process.$fastqcinstead ofprocess withName:'fastqc'.
You can choose to ignore tests for the presence or absence of specific config variables
by creating a file called .nf-core.yml in the root of your pipeline and creating
a list the config variables that should be ignored. For example:
lint:
nextflow_config:
- params.inputThe other checks in this test (depreciated syntax etc) can not be individually identified, but you can skip the entire test block if you wish:
lint:
nextflow_config: False