This lesson is still being designed and assembled (Pre-Alpha version)

Introduction to Bioinformatics workflows with Nextflow and nf-core

Nextflow enables scalable and reproducible scientific workflows using software containers such as Docker and Singularity, and Conda, a package and environment management system. It allows the adaptation of pipelines written in the most common scripting languages suach as such as R and Python. Its has a Domain Specific Language (DSL) that simplifies the implementation and the deployment of complex parallel and reactive workflows on clouds and clusters.

This lesson will also introduce nf-core: a framework that provides a community-driven, peer reviewed platform for the development of best practice analysis pipelines written in Nextflow.

This lesson motivates the use of Nextflow and nf-core as a development tool for building and sharing computational pipelines that facilitate reproducible (data) science workflows.

lesson objectives

  1. The learner will understand the basic concepts of a Nextflow script, including channels, processes and operators.
  2. The learner will be able to write a Nextflow configuration file to alter the computational resources allocated to a process.
  3. The learner will write a multi-step workflow scripts to align, quantify, and perform QC on an RNA-Seq data in Nextflow DSL.
  4. The learner will use nf-core to run a community curated pipeline, on an RNA-Seq dataset


This is an intermediate lesson and assumes familiarity with the core materials covered in the Software Carpentry Lessons. In particular learners need to be familiar with material covered in The Unix Shell, Version Control with Git, and either Plotting and Programming in Python or R for Reproducible Scientific Analysis.


Setup Download files required for the lesson
00:00 1. Getting Started with Nextflow What is a workflow and what are workflow management systems?
Why should I use a workflow management system?
What is Nextflow?
What are the main features of Nextflow?
What are the main components of a Nextflow script?
How do I run a Nextflow script?
How can I use the nextflow logs?
00:40 2. Nextflow scripting What language are Nextflow scripts written in?
How do I store values in a Nextflow script?
How do I write comments Nextflow script?
How can I store and retrieve multiple values?
How are strings evaluated in Nextflow?
How can I create simple re-useable code blocks?
01:15 3. Channels How do I get data into Nextflow?
How do I handle different types of input, e.g. files and parameters?
How do I create a Nextflow Channel?
How can I use pattern matching to select input files?
How do I change the way inputs are handled?
01:55 4. Processes How do I run tasks/processes in Nextflow?
How do I pass parameters to a Nextflow script on the command line?
How do I get data, files and values, into and out of processes?
How do can I control when a process is executed?
How do I control resources, such as number of CPUs and memory, available to processes?
How do I save output/results from a process?
03:15 5. Operators How do I perform operations, such as filtering, on channels?
What are the different kinds of operations I can perform on channels?
How do I combine operations?
How can I use a CSV file to process data into a Channel?
03:55 6. Workflow How do I combined channels and processes to create a workflow?
04:40 7. Nextflow configuration How can I configure how Nextflow runs?
How can I write a Nextflow configuration file?
How can I control process settings using the Nextflow configuration file?
05:25 8. Simple RNA-Seq pipeline How can I create a RNA-Seq pipeline?
How do I print all the pipeline parameters by using a single command?
How can I use conda with my pipeline?
How do I know when my pipeline has finished?
How do I see runtime metrics and execution information?
06:25 9. Modules How do I modularise my pipeline?
How can I reuse a workflow as part of another larger workflow?
07:10 10. Reporting How do I get information about my pipeline run?
How can I see what commands I ran?
How can I create a report from my run?
07:35 11. Sub-workflows How do I reuse a workflow as part of a larger workflow?
07:55 12. Workflow parameterization How can I change the data a workflow uses?
How can parameterize a workflow?
08:35 13. Deploying nf-core pipelines What is nf-core?
What is nf-core tools?
How do you find nf-core pipelines?
How do you run nf-core pipelines?
How do you configure nf-core pipelines?
How do you use nf-core pipelines offline?
09:05 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.