1.3 Program

1.3.1 May 3-4: Containers

1.3.1.1 Day 1: Docker

  • Containers: introduction and history.
  • Docker hub: find existing containers.
  • Fetch (and build) an image from public registries (Docker Hub, Quay.io, etc.)
  • Discover relevant base images
  • Run Docker container based on an existing image (also run it interactively).
  • Build an image from an existing recipe:
    • Sections and keywords.
    • Build options (e.g. cache or build variables).
  • Write a Docker recipe and build an image from it.

1.3.1.2 Day 2: Docker + Singularity

  • Docker:
    • Work with volumes and ports.
    • Upload image to registries.
  • Singularity:
    • Singularity versus Docker.
      • Differences, pros and cons for each system.
    • Fetch (and build) a Singularity images.
      • Build from existing public registries.
      • Build from local Docker instances.
    • Run a Singularity container (interactively).
    • Understanding and working with volumes.
    • Singularity build recipes.
    • Advanced features: services, etc.

1.3.2 May 10-11: Nextflow

1.3.2.1 Day 3: Understand the code, run, modify

  • Introduction to Nextflow.
  • Scripting.
  • Basic concepts:
    • Channels, processes and workflows.
  • The work folder and its structure.
  • The log file.
  • Resuming pipelines.

1.3.2.2 Day 4: Write and share

  • Decoupling configuration and main script.
  • Run Nextflow with containers.
  • Run Nextflow on a computing cluster (e.g. HPC):
    • Definition of computing requirements and queues.
    • Profiles.
  • Modules, subworkflows, and how to reuse the code.
  • Share Nextflow pipelines.