Introduction to Singularity

Welcome to the Jackson Laboratory introduction to Singularity workshop!

Containerization technologies (Docker, Singularity, etc.) are rapidly becoming an important tool to facilitate and encourage scientific reproducibility, and containers of computational tools and their dependencies are increasingly distributed as digital artifacts alongside manuscript publication. While Docker is the de facto standard for software containerization in cloud computing environments, Singularity is rapidly emerging as the standard for containerization in large scale parallel and distributed computing environments, such as a typical high performance computing cluster at an academic institution. In this tutorial, we will provide an introduction to containerization technologies in general, with a specific focus on Singularity and cover core features of using Singularity to containerize and execute computational biology and bioinformatics applications.

Objectives

Prerequisites

  • Familiarity with BASH shell scripting.

  • Familiarity with editing text files using programs such as Nano or vi.

If you are attending a scheduled workshop, virtual machine instances will be provided for each attendee. For workshop connection instructions, please click here

Schedule

Setup Download files required for the lesson
09:00 1. Welcome and Introductions Instructor introductions
09:10 2. What is a Container Containers and Scientific Reproducibility
09:25 3. Singularity Basics Singularity basics: pull, shell, exec, search, bind mounts
09:55 4. Scientific Containers Getting started with a recipe file
10:10 5. Break
10:20 6. Building and Modifying Containers Building Containers
10:55 7. Using Containers & Questions Use a container
11:30 Finish

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