Skip to content

Using Singularity

Sam Minot edited this page Apr 21, 2022 · 1 revision

Using Singularity for Software Images

The alternative to Docker which can be provided on shared computing clusters is called Singularity. Before using this system, please make contact with your system administrator to ensure that Singularity is installed and configured appropriately for your account. This allows you to run Nextflow-based workflows which use Docker images to manage software dependencies.

Singularity and the BASH Workbench

Using Singularity within the BASH Workbench is achieved by selecting a launcher which has been configured appropriately. In the context of a shared computing cluster, this configuration typically involves:

  • Loading the appropriate software modules
  • Setting up cache directories in scratch space

An example of a launcher which has been configured for the SLURM cluster at the Fred Hutch Cancer Center can be found here.

The run script populates a local nextflow.config file appropriately and loads the Nextflow and Singularity modules (see code).

The config JSON allows the user to select the location of a cache directory in the scratch filesystem, and select a SLURM job queue for submission (see code).

To make a launcher which is appropriate for your system simply follow these examples in your own code repository, placing your run.sh and config.json in the folder ._wb/launcher/<launcher name>/. You can then use that launcher directly within the BASH Workbench for your own work.

For example, to use the FredHutch/bash-workbench-tools launcher for Nextflow on SLURM, clone the FredHutch/bash-workbench-tools repository within the BASH Workbench and then select the FredHutch/bash-workbench-tools/nextflow_slurm launcher when you run a tool.