About the course

This slow-paced hands-on internal course is designed for absolute beginners who want to start using Nextflow DSL2 to achieve reproducibility of the data analysis.

Main instructors:

Luca Cozzuto

Toni Hermoso

Julia Ponomarenko

Alternative text

Alternative text

Alternative text

Dates, time, location

  • Dates: From 12th of September to 15th of September 2023.

  • Time: 12/09/23 9:30 - 17:00h (CET)

  • Time: 13-14-15 09/23 9:30 - 13:00h (CET)

  • Location: Training room, CRG.

Program

Day 1: Understand and run a basic Nexflow pipeline

  • 09:30-11:00 Introduction to Nextflow

  • 11:00-11:30 Coffee break

  • 11:30-13:00 Making simple scripts: channels operators and workflows

Day 1: Write, modify, and run a complex pipeline

  • 14:30-15:30 More complex scripts

  • 15:30-16:00 Coffee break

  • 16:00-17:00 Directive and resuming

Day 2: Linux containers

  • 09:30-11:00 - Linux containers: Docker & Singularity/Apptainer

  • 11:00-11.30 - Coffee break

  • 11:30-13.00 - Decoupling resources, parameters and main script

Day 3: Run a Nextflow pipeline in different environments

  • 09:30-11:00 Singularity and more processes

  • 11:00-11:30 Coffee break

  • 11:30-13:00 Profiles and cloud

Day 4: Nextflow modules and Tower

  • 09:30-11:00 Modules

  • 11:00-11:30 Coffee break

  • 11:30-13:00 Tower

Outline

This Nextflow course will train participants to build Nextflow pipelines and run them with Linux containers.

Learning objectives

  • Execute/Run a Nextflow pipeline.

  • Describe and explain Nextflow basic concepts.

  • Test and modify a Nextflow pipeline.

  • Implement short blocks of code into a Nextflow pipeline.

  • Understand, run and build Linux containers

  • Use containers in Nextflow processes

  • Develop a Nextflow pipeline from scratch.

  • Run a pipeline in diverse computational environments (local, HPC, cloud).

  • Share a pipeline.

Prerequisite / technical requirements

Being comfortable working with the CLI (command-line interface) in a Linux-based environment. Knowledge of containers is not mandatory. The course materials is online in the dedicated GitHub page for self-learning.

Practitioners will need to connect during the course to a remote server via the “ssh” protocotol. You can learn about it here

Those who follow the course should be able to use a command-line/screen-oriented text editor (such as nano or vi/vim, which are already available in the server) or to be able to use an editor able to connect remotely. For sake of information, below the basics of nano

Having a GitHub account is recommended.