In addition to the core software tools that are available by default, additional software is available via different Software Repositories. Note that some of these software tools are installed and maintained by other users or research groups of the cluster who have kindly agreed on sharing their efforts with other cluster users. Currently known and publicly shared repositories are:
The Computational Biology and Informatics (CBI) Software Repository
Repository of software shared by the Computational Biology and Informatics (https://cbi.ucsf.edu) at the UCSF Helen Diller Family Comprehensive Cancer Center.
Sali Lab Software Repository
Repository of software shared by the UCSF Sali Lab (https://salilab.org/).
Comment: Contrary to the UCSF QB3 cluster, where these modules were available by default, this repository has to be loaded explicitly in order to have access to its modules on Wynton HPC.
To get access to the software available in one or more of these repositories, load the repository using
module load <repos> (on command line and in script). After loading a software repository, all of its software tools are available as environment modules, that is, they can in turn be loaded using
module load <software>.
The R software is available in software repository CBI. To use that R installation, first make sure to enable (“load”) the repository and then the software as in:
module load CBI ## Enables the software repository module load r ## Enables R
or, shorter (order is important):
module load CBI r
After this, the
R and the
Rscript commands are available on the search path (
$ Rscript --version R scripting front-end version 4.0.3 (2020-10-10)
For jobs, software modules need to be loaded in the submitted job script - it is not enough to load them in the terminal before submitting the job to the scheduler.
To disable (“unload”) R, that is, remove it from the search path, do:
module unload r
If you unload a repository, any of its software modules that are loaded will be deactivated - they remain listed but act as they never have been loaded. If you then reload the repository, such software modules will be activated again.
To see what software modules you have currently loaded, use:
To disable all loaded software modules and repositories, use:
To see what software modules are currently available (in the software repositories you have loaded), use:
If the software repository provides more than one version of each software, specific versions can be loaded using the
module load <software>/<version> format. For instance, the CBI repository provides a large number of historical R versions. To load R 3.2.0, use:
module load r/3.2.0
Comment: If another version of R is already loaded, that will automatically be unloaded before loading the new version.
module is only available on the development and compute nodes,
its use in a login script (.profile, .bash_profile, .bashrc) needs
to be guarded:
if [[ -n "$MODULEPATH" ]] then module load <software> fi
The names of software repositories are always capitilized (e.g.
Sali) whereas the names of the software themselves are typically in all lower case (e.g.
bwa). This makes it easier to distiguish between repositories and software.
For more information on how to use modules and the
module command, see
man module, and the official Lmod documentation.
Instead of the classical Tcl-based environment module system commonly available on Linux, the cluster uses a Lua-based environment module system called Lmod. Lmod has a several advantages over the Tcl-based module system while being backward compatible, i.e. users of Tcl modules can still use them with Lmod. There are a few rare corner cases where a Tcl module might fail and the module has to be rewritten as a Lua-based module.
When loading a software repository (
module load <repos>), it will append its module folder to the
$MODULEPATH. Unloading it (
module unload <repos>) will undo any changes. For instance,
module load <repos> appends
$MODULEPATH_ROOT/<repos> to your
$MODULEPATH. Multiple software repositories can be loaded in one call, e.g.
module load <repos1> <repos2>. It is also possible to load a software repository and some of its software tools in one call, e.g.
module load <repos> <software1> <software2>.