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 availrather 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: