Skip to content

Containers

Computing on Klone requires the use of containers. Specifically, the Univ. of Washington utilizes Apptainer (formerly Singularity) on Klone for building/executing/running containers. See the section about containers for more background info.

The container the Roberts Lab uses hosts virtually all of the software we use. Its location on Klone:

/gscratch/srlab/containers/srlab-bioinformatics-container-<git_commit_hash>.sif

  • <git_commit_hash> is the corresponding git commit for the container definition file from which the container was built. This allows users to re-build previous versions of containers, if desired. It also allows users to keep track of which version of the container is being used.

Definition file(s)

The definition files are used to build the containers. They also contain all the instructions for software installation. Software cannot be installed in a container after it is built. To install new software, the container definition file needs to be updated with instructions for downloading and installing the software. Then, a new version of the container needs to be built, in order to incorporate the new software.

The definition file is in a git repo on Klone:

/gscratch/srlab/gitrepos/RobertsLab/code/apptainer_definition_files/srlab-bioinformatics-container.def

  • To minimize conflicts, please do not modify the git repo on Klone (other than using git pull to update the repo). Any changes should be made on your own computer or on GitHub, and then pulled to Klone.

Building containers

Containers are built using a definition file. Once built, they exist as a single file. Since we're using Apptainer (formerly Singularity), the container files will have the .sif suffix. Currently, we use the script srlab-bioinformatics-build.sh (GitHub) to build the container directly on Klone. However, the container could be built on any computer running Apptainer (formerly Singularity), and the resulting file could be transferred to Klone.

The build process must be initiated manually. If the definition file(s) is updated, then the user must remember to re-build the container, in order to incorporate the new changes!

More Resources

UW Hyak Documentation is a great way to start using Hyak (Klone) by providing (relatively) easy to follow walkthrough of how to access Klone, what the different nodes are, examples of how to build containers, and more.