CBCB Software Modules

From Cbcb
Jump to navigation Jump to search

Starting in the Spring of 2015, communal CBCB Bioinformatics Software has been installed using GNU Modules.

Common Modules

CBCB Software modules are already configured for interactive shells on Red Hat 7 machines - no additional setup is required. The module files are installed in the following location:


To see see what modules are available:

bash$ module avail 2>&1 | less


tcsh> module avail |& less

To add a module to your environment, use module add:

$ module add samtools/0.1.19

Note that you can also specify the software name without the version:

$ module add samtools

Now samtools has been added to your environment:

$ which samtools

User Modules

We have created some scripts to assist you with installing software and modules to your user directory in /cbcb/sw. We recommend that you use these scripts because this will help us share installed software among other CBCB users.

Run this initialization script to set up your directory structure:

$ /cbcb/sw/RedHat-7-x86_64/common/scripts/init_cbcb_sw_user.sh

This will create a directory for you:

$ tree /cbcb/sw/RedHat-7-x86_64/users/<username>
├── local
├── modules
│   └── <username>
│       └── env
├── module_template
├── scripts
│   ├── copy_module_template.sh
│   ├── init_install_vars.sh
│   └── install_package.sh
└── src
  • Use the src directory for storing and compiling source code.
  • Use the local directory as the installation prefix.
  • Use the modules directory to store your modulefiles.

See #Installing Software below.

To make use of your personal module file directory, add the following to your ~/.bashrc:

module use /cbcb/sw/RedHat-7-x86_64/users/<username>/modules

Installing Software

Use the install_package.sh script to automatically compile software that uses ./configure; make; make install. The advantage to using this install script is that it will:

  • use the standardized directory structure for personal software installation, and
  • automatically create a module file for the software in your modules directory!

For full details, read the README placed in your personal directory (/cbcb/sw/RedHat-7-x86_64/users/<username>). It's also available in the cbcb-sw Gitlab repository.

Listing All Modules

The command module avail only lists modulefiles that appear in directories that have been added to your $MODULEPATH environment variable (either by hand or via module use command). To see all modulefiles that are available for your use in both the Common Modules and the User Modules:

cat /cbcb/sw/RedHat-7-x86_64/common/all_modules.txt

or see here.

Setup for non-interactive shells

Modules are already configured for interactive shells, but to use modules with non-interactive shells, add the following to your ~/.bashrc:

$ source /usr/share/Modules/init/${SHELL}
bash$ source /etc/profile.d/ummodules.sh

For more information, see the UMIACS wiki.

GNU Modules Cheatsheet

Ask for help:

module --help

List available modules:

$ module avail

Read the description of a module:

$ module whatis blast

Read the help text for a module:

$ module help blast

Add a module to your environment:

$ module add blast

Add a specific version to your environment:

$ module add blast/2.2.31

List loaded modules:

$ module list

Remove a module from your environment:

$ module rm blast

Remove all modules from your environment:

$ module purge

Add a path to search for available modules:

$ module use /cbcb/sw/RedHat-7-x86_64/users/lmendelo/modules

See what changes a module makes to your environment:

$ module show Python2/common/2.7.9


Creating a new release

Upgrading R

There are a couple scripts to hopefully make upgrading R easier. Let us say that you are installing a new version of R and R libraries. If that is (for example) version 3.2.1, then a set of commands might include:

> cd $MOD/R/common
> cp 3.2.0 3.2.1

Now edit 3.2.1 to include the new version and change anything of interest.

> mkdir $STOW/Rext/3.2.1
> module add R/common/3.2.1

Assuming that you edited the $MOD 3.2.1 file to tell it to load R version 3.2.1, then $(which R) will show the new version and the module command will set the R_LIBS variable to a new, empty directory.

> cd $STOW/R/common
> ./update_R.sh 3.2.0_list

This little shell script should call Bioconductor's biocLite() once for each R library which was installed in 3.2.0.

(Adapted from /cbcb/sw/RedHat-7-x86_64/common/local/Rext/README.md)


Brought to you by:

See Also