In the HPC we have

  1. A legacy catalogue (bespoke)
  2. A modern but not yet fully implemented catalogue based on LMOD

Using LMOD

Check if a software is already installed:

module avail samtools

this will print something like:


-----------------------/nbi/software/modulefiles/sci -----------------------
   samtools/1.10    samtools/1.12    samtools/1.15.1    samtools/1.18 (D)

  Where:
   D:  Default Module

So we have four versions of samtools available, and 1.18 is the default. To activate the latest (default) version simply:

module load samtools

to load a specific version:

module load ssamtools/1.12

Using Core Bioinformatics modules

Some modules are not yet available campus wide. For example:

module avail seqfu

will probably return no hits.

Core Bioinformatics can create new images for users, and to enable our catalogue please run (once) this command:

echo -e '\n# Enable Core Bioinformatics modules\nmodule use /qib/research-projects/bioboxes/lua' >> ~/.bashrc
source ~/.bashrc

then you will see that

module avail seqfu

will work.

Legacy

Load our nbi-slurm package and then just type

# Activate NBI slurm if not done already
source package /nbi/software/testing/bin/nbi-slurm

# Search for a package
shelf samtools

to see the list of available packages and the command to “activate”.

Singularity behind the scene

Most package are in fact Singularity containers. For example if you

source package /nbi/software/testing/seqfu__1.20.0

you are in fact adding to your path this directory:

ls -l /nbi/software/testing/seqfu__1.20.0//last/x86_64/bin/

lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-cov -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-homocomp -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-index -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-msa -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-multirelabel -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-orf -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-primers -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-rename -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-shred -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-split -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-sw -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-tabcheck -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Jan 21 12:40 fu-virfilter -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
lrwxrwx--- 1 telatina QIB_FR009  68 Sep 11  2023 seqfu -> /nbi/software/testing/seqfu__1.20.0/last/x86_64/bin/singularity.exec
-rwxrwxr-x 1 telatina QIB_FR009 191 Sep 11  2023 singularity.exec

In practice we have a script called singularity.exec and then a set of links to it with different names. The script is:

#!/bin/bash
# Launcher for seqfu__1.20.0 made by Core Bioinformatics
singularity exec "/qib/platforms/Informatics/transfer/outgoing/singularity/core/seqfu__1.20.0.simg" $(basename "$0") "$@"

Which means that if I type seqfu I will run the script, that will execute the name of the link (seqfu) from the container with all the parameters the user passes ($@).