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.
00:00 2. Channels What are Nextflow channels?
Define the different types of Nextflow channels?
What are the major differences between queue and values channels?
How do you create a channel?
How do you create a queue channel from a specified glob pattern?
How do you modify the behaviour of a channel factory?
00:15 3. Processes What is a Nextflow process?
How do I create a Nextflow process?
How do I input data into processes
How do I output data from a process?
How do I sepcify conditions for a process in order for it to execute?
What are process directives?
How do i save output from a process?
00:15 4. Operators Key question (FIXME)
00:15 5. DSL2 What is DSL2
00:15 6. Nextflow configuration How do you configure Nextflow?
How do you write a Nextflow configuration file?
00:35 7. nf-core What is nf-core?
How do you find nf-core pipelines?
How do you run nf-core pipelines?
How do you use nf-core pipelines offline?
How do oyu configure nf-core pipleines for your envirnoment?
01:05 Finish

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