The Module System

Hundreds of software packages are installed on the SCC, usually in several versions each. Lmod, the SCC's module system, is how all of that software is organized: no package is available to you until you ask for it by name, using the module command.

Loading only what you need keeps packages that would otherwise interfere with one another apart, and it lets you choose which version you get.

Finding Software

module avail lists everything installed on the SCC. That is a very long list, so send it through less, which shows one screenful at a time — press the space bar for the next screen, and q to quit:

[scc4]$ module avail | less

Once you know what you are after, give module avail the package name and it shows just that package's versions:

[scc4]$ module avail dcm2niix

--------------------------- /share/module.8/imaging ----------------------------
   dcm2niix/1.0.20220720    dcm2niix/1.2024.02 (D)

  Where:
   D:  Default Module

Two versions of dcm2niix are installed here.

Loading Software

[scc4]$ module load dcm2niix/1.2024.02

Confirm it worked:

[scc4]$ module list
Currently Loaded Modules:
  1) dcm2niix/1.2024.02

You can now run dcm2niix by name from anywhere, and which will tell you where the version you loaded actually lives:

[scc4]$ which dcm2niix
/share/pkg.8/dcm2niix/1.2024.02/install/bin/dcm2niix

Always Name a Version

You can leave the version off:

[scc4]$ module load dcm2niix

That gives you whichever build is marked (D) for default. Do not do this in anything you want to reproduce. The default moves when RCS installs a newer build, so the same script can quietly start running different software six months from now. Name the version explicitly in every script.

The default is not always the newest. Several imaging packages on the SCC default to an older build than the newest one installed. Check module avail rather than assuming.

Unloading

[scc4]$ module purge

That unloads everything. To drop a single module:

[scc4]$ module unload dcm2niix

Modules in Batch Jobs

A batch job does not inherit the modules you loaded in your terminal. Load them inside the job script itself, every time. See The Batch System.

Neuroimaging Software on the SCC

Suites Tools
FreeSurfer MRIcroGL
FSL MRIcron
AFNI Nipype
SPM MRIQC
CONN fMRIPrep
ANTs dcm2niix

RCS has written detailed guides for several of these:

Further Reading