Skip to content

Prerequisites and installation

Young-Chan Park edited this page Nov 2, 2021 · 16 revisions

Prerequisites and installation

In order to run the containerised version, the only thing you need is a recent (>v3.0, 3.6 recommended) version of the Singularity software. Ask your admin to install this for you if you are not superuser. If you have a HPC environment, singularity is fully compatible, but it will need to be installed on the nodes. Installation instructions can be found on the official singularity website.

Pulling the container

Once singularity is installed, run the following on your computer, server or head node:

singularity pull library://hmgu-itg/default/burden_testing:latest

This will connect to Singularity Container Services and download the latest burden testing container. Following this, a file named burden_testing_latest.sif should have been created in the current directory. You can check which version the downloaded image is by running singularity inspect burden_testing_latest.sif | grep singularity.deffile.from

ℹ️ As of October 18th, 2021, latest version of the container is v1.5.4

ℹ️ Pulling an image using the latest tag will download an image file with the _latest.sif file name. For cleanly keeping track of your analysis history, we recommend pulling images using specific version tags (e.g. :1.5.4)

ℹ️ You can find all available version of the burden testing containers at https://cloud.sylabs.io/library/hmgu-itg/default/burden_testing. Please contact Young-Chan or Arthur if you encounter any problem or need a custom build of the container. You can also view our legacy containers at Singularity Hub collection and pull them with singularity pull shub://hmgu-itg/burden_testing.

Testing the container

Just run (no root required)

singularity exec burden_testing_latest.sif help

ℹ️ All analyses described in this wiki should work out-of-the-box. If you encounter errors that look like missing libraries, missing software or paths, it is likely that your system's configuration, a part of which can get imported by Singularity, is interfering with the container. Please try giving the --containall argument to singularity. If your problem does not go away, please contact the developers.

More details on how the software is packaged can be found here.

Old instructions

⚠️ These instructions are deprecated and point to outdated versions of the pipeline. Please DO NOT use them unless you have a good reason.

Downloading the pre-built Singularity container

The most recent stable build of the container is available through this link. This is a Google Drive link, so you won't be able to wget it directly from the command line. Instead, we found that rclone gives good results. You will find steps on how to configure it here. If you use rclone, please set your root folder ID to 131_TC7twzq03iFG-e4IzKMUhpyDY8waZ. We will attempt to keep this link up to date, however if you want to be sure to have the latest version, build your own container as described below.

Building the latest container

We keep a Docker container up to date on Docker Hub. In order to build this on your machine, run the following (as root):

git clone https://github.com/hmgu-itg/burden_testing/ && cd burden_testing && singularity build burden.latest Singularity_via_docker

This can be done on a machine where you have local root access, this is just to build the container. If you don't have a Linux machine with root access, you can try the --fakeroot option of Singularity, please check their docs. DO NOT try building with --remote, our container is too big for that.

Making changes to the container

For this, you will currently also require an installation of Docker on at least one machine with Singularity (this can be done on your laptop). You will also need an account on Docker Hub. In the below code, I assume your username is username.

git clone https://github.com/hmgu-itg/burden_testing/ && cd burden_testing
nano Dockerfile ## make your changes here
docker build -t username/burden_testing .
docker push username/burden_testing ## this will take a long time
sed -i 's/agilly/username/' Singularity_via_docker
sudo singularity build burden.latest Singularity_via_docker