Skip to content

Modules

Overview

As well as the standard UNIX/Linux command line tools that you'd find on any other system, we've preinstalled over 200 bioinformatics programs for you to use. Many common programs are pre-loaded as soon as you log in, but some need to be loaded before you use them. We use the common module utility to do this.

module is a utility which is used to manage the working environment in preparation for running applications. By loading the module for a certain installed application, the environment variables that are relevant for that application are automatically defined or modified. At any time, a loaded module can also be unloaded, which allows you to dynamically choose which software you want available - including different versions of the same program.

Listing available modules

You can display the modules available on CCB by typing: module avail

You should see output like:

----------------------- /package/modulefiles ------------------------
ABySS/2.3.10                mosdepth/0.3.1                   
alicevision/2.2.0           mpileup2readcounts/1.0           
alleleCount/4.0.0           mpileup2readcounts/1.0a          
alphafold/3                 MTG-Link/2.4.1                   
annovar/20180416            mummer/3.23
...

To list versions of a module just append the module name: module avail python-cbrg

----------------------- /package/modulefiles ------------------------
python-cbrg/202307  python-cbrg/202407  python-cbrg/202507   
python-cbrg/202310  python-cbrg/202410  python-cbrg/202510   
python-cbrg/202401  python-cbrg/202501  python-cbrg/current  
python-cbrg/202404  python-cbrg/202504

Loading modules

You can load a module by typing: module add module-name. For example: module add bowtie

The above command will load the default version of an application, usually the latest. To load a particular version of an application use: module add module-name/version. For example: module add bowtie2/2.3.2

Getting help with a module

If you're not sure how to use the software provided by a module, you can use the built-in help. This will typically tell you where the program was downloaded from so that you can refer to the online manual, and occasionally has additional useful information.

$ module help SPACEc
-------------------------------------------------------------------
Module Specific Help for /package/modulefiles/SPACEc/0.1.2:

        SPACEc version 0.1.2

        https://github.com/yuqiyuqitan/SPACEc

A Streamlined, Interactive Python Workflow for Multiplexed Image Processing and Analysis

-------------------------------------------------------------------

Listing loaded modules

Modules that are already loaded can be displayed with the command: module list

Unloading modules

A module can be unloaded with the commands unload or rm , for example: module unload bowtie or module rm bowtie. Unload all modules with module purge.

Troubleshooting

module: not found

module is a shell function only present in login shells. So if you encounter error module: not found, first confirm that you have a login shell. With Bash shell (JADE's default), you can check by running shopt login_shell which should output login_shell on; fix by appending argument -l to request a login shell i.e. bash -l.

If you encounter error in other shell types e.g. sh, particularly with Slurm batch jobs, first consider switching to bash as this will integrate better with JADE's environment. Otherwise append that shell's equivalent of -l, which likely is also -l.

If you are using VSCode Remote SSH to connect to CCB and experience this problem, then configure VSCode's User Settings to append -l to Bash shells:

  • Open Command Palette

  • Type Preferences: Open User Settings (JSON), click or press Enter

  • Modify settings.json to resemble/include:

    {
        "terminal.integrated.profiles.linux": {
          "bashLogin": {
            "path": "bash", "icon": "terminal-bash", "args": ["-l"]
        },
        "terminal.integrated.defaultProfile.linux": "bashLogin"
    }
    

More information: GitHub discussion on configuring VSCode Remote SSH

As a last resort, you can manually load the file that defines module:

. /etc/profile.d/modules.sh

Requesting additional software

If you'd like to use some software which isn't already available, please contact us so that we can discuss your requirements.

Cautionary notice on Conda and venvs

Many sources will tell you to use Conda or Python venvs to manage your software installations. Conda and Python are fine pieces of software and this is not a bad way to do software installation. However, please be aware that using venvs or Conda environments means inherently breaking compatibility with the systems software that we've installed for you. As such, we recommend that you do not attempt to use our modules while you have a venv or a Conda environment loaded, as it may cause both to break. Additionally, as both venvs and Conda environments are entirely installed in userland, we regret that in many cases we are unable to help with problems resulting from their use.