Utilizing singularity containers in SD-Desktop
As the SD Desktop is not directly connected internet, you can't use tools like Git, Conda or Pip to install new software there. In stead, you can use Singularity Singularity software container tool to add new software to your SD Desktop environment. However, you have to first build or download a singularity container elsewhere, and then use Allas/SD Connect to import the container to SD Desktop.
If you have a root access to a machine with singularity, you can build your own container, that contains exactly the software and datasets you need. Many software are also available as ready made Singularity containers or as Docker containers that can be converted into Singularity containers. In this document we show, how to import a ready-made Singularity container from a public repository to SD Desktop.
Importing ready made container through Puhti
In the example below we import BETA Binding and Expression Target Analysis software to SD Desktop. This tool is available as a ready made Singularity container in Biocontainers repository. You can find the tool by searching for Binding and Expression Target Analysis in the repository. When you open the detailed information of the resulting cistrome_beta container, you can see that the sigularity module can be downloaded from url: "https://depot.galaxyproject.org/singularity/cistrome_beta:1.0.7--py27heb79e2c_4"
As we don't need to build the container from scratch, we can use puhti.csc.fi server to download the container image and push it to Allas.
First login to puhti.csc.fi. Then, start an interactive batch job session with command:
sinteractive
export SINGULARITY_TMPDIR=$LOCAL_SCRATCH
export SINGULARITY_CACHEDIR=$LOCAL_SCRATCH
unset XDG_RUNTIME_DIR
Then download a local copy of the Beta container with command
singularity pull beta.sif https://depot.galaxyproject.org/singularity/cistrome_beta:1.0.7--py27heb79e2c_4
wget http://cistrome.org/BETA/src/BETA_test_data.zip
Then we upload these two files to Allas. In this example we use project 2012345.
module load allas
module load biokit
module load biopythontools
allas-conf project_2012345
a-put --sdx beta.sif -b 2012345_beta
a-put --sdx BETA_test_data.zip -b 2012345_beta
The commands above store the files into bucket 2012345_beta in Allas. a-put is used with option --sdx in order to encrypt the uploaded data with SD Desktop compatible encryption.
Using a container in SD desktop
Once the sif formatted singularity container file and the sample data has been uploaded to Allas, we can copy them to SD Desktop. To do this open Data Gateway, in your session SD Desktop. After that copy the data to local disk in SD Desktop. You can do that using the graphical tools on the Desktop, or by using Linux command line: Open a Linux terminal in the SD-Desktop. In the terminal, move the singularity file and test data to your current locations:
cp Projects/SD\ connect/project_201234/2012345_beta/beta.sif ./
cp Projects/SD\ connect/project_201234/2012345_beta/BETA_test_data.zip ./
unzip BETA_test_data.zip
singularity exec beta.sif BETA minus -h
singularity exec beta.sif BETA minus -p BETA_test_data/3656_peaks.bed --bl -g hg19