Developing Nextflow plugins

Learning new languages

Groovy adventures in workflow engineering. Learning how workflows work under the hood.

In nf-core, pipelines were using a JSON schema to describe the pipeline parameters. Nextflow itself doesn't have a built-in way to validate the parameters, so we created a plugin to do so.

I was involved in the development of the nf-schema plugin (previously known as nf-validation). Later on, the validation of an input samplesheet was added to the plugin.

I also joined the initial efforts to create the nf-co2footprint plugin. This plugin is used to calculate the carbon footprint of a pipeline. This was a nice project contributing to the awareness of the environmental impact of computing. 🌿

⚙️ Some technical aspects:

  • Nextflow plugins are written in Groovy
  • JSON Schema is used as the structural base for parameter validation. And it is also used to render the nf-core website, pipeline help messages and logs
  • The CO₂ plugin tracks execution metrics and resource usage, which are obtained from the Nextflow execution engine
  • A report is generated with HTML, mimicking the Nextflow execution report
  • The documentation of both plugins is written in Markdown and rendered with MkDocs