Skip to content

Linux and HPC

Ways of using Neurocommand in Linux and HPC

Section titled “Ways of using Neurocommand in Linux and HPC”
  1. You can use the module files for Neurocontainers directly via CVMFS: /getting-started/neurocontainers/cvmfs/
  2. Or you can install Neurocommand as described here.

Install command line (e.g. running on Linux or HPC)

Section titled “Install command line (e.g. running on Linux or HPC)”
  1. Load Singularity.

    For optimal performance, ensure you are using Singularity version 3.x:

    Terminal window
    module load singularity/3.5.0
    #or
    module load singularity
    #or
    module load apptainer

    If this doesn’t work it might already be loaded. Just run singularity and check.

  2. Load aria2 (optional).

    To speed up container downloads, you can optionally install or load aria2c:

    Terminal window
    module load aria2c
  3. Clone and set up the repository.

    Clone the repository into a directory with enough storage and ensure you are not using a symbolic link (to be sure run cd `pwd -P` ). It is recommended to perform this setup within a Python virtual environment (venv) or a Conda environment:

    Terminal window
    git clone https://github.com/neurodesk/neurocommand.git
    cd neurocommand
    pip3 install -r neurodesk/requirements.txt --user
    bash build.sh --cli
    bash containers.sh
    export SINGULARITY_BINDPATH=`pwd -P`
    # OR, depending on your installation:
    export APPTAINER_BINDPATH=`pwd -P`
  • If these steps are successful, the help will be displayed.
  • Install all or only specific containers by following the instructions, e.g.:
  1. Search and install specific containers.

    To search for containers that have “itksnap” in the name:

    Terminal window
    bash containers.sh itksnap
  2. Install a specific version.

    To install a specific version (e.g., itksnap version 4.0.2 from 20240117):

    Terminal window
    ./local/fetch_containers.sh itksnap 4.0.2 20240117

    To install all containers with that name:

    Terminal window
    bash containers.sh --itksnap

    To download all containers (be careful, there are a lot of containers):

    Terminal window
    bash containers.sh --all
  • To add each container to the module search path, run the following:

    Terminal window
    module use $PWD/local/containers/modules/
  • It may be a good idea to add this to your .bashrc if it works. When adding to your .bashrc you will need to replace $PWD to point to the correct path, i.e. the output of:

    Terminal window
    echo "module use $PWD/local/containers/modules/"
  • It is very important to also set the SINGULARITY_BINDPATH or the APPTAINER_BINDPATH variable in your .bashrc. This variable must contain a comma-separated list of directories you want to access with the Neurodesk tools.

    e.g.:

    Terminal window
    export SINGULARITY_BINDPATH=/scratch/,/data/
    # OR, depending on your installation:
    export APPTAINER_BINDPATH=/scratch/,/data/
    # Note: use the correct line depending on your installation. Do not add a directory that does not exist, otherwise the containers will not start!
  • Run ml avail to see the installed containers at the top of the list (Neurodesk containers will take preference over system modules with the same name):

    Terminal window
    module --ignore_cache avail
  • Every time you start a new shell you need to run module use PathToYourContainers or add this command to your .bashrc file.

First, ensure your local repository is up to date by pulling the latest changes:

Terminal window
git pull

Next, rebuild Neurocommand by running:

Terminal window
bash build.sh

To update the containers, navigate to the neurodesktop directory and run:

Terminal window
bash containers.sh

Choose the module you want to update. For example, to update the mrtrix3/3.0.2 module with the eddy_cuda fix:

Terminal window
~/neurocommand/local/fetch_containers.sh mrtrix3 3.0.2 20221108 mrview $@

We show a couple of specific examples on how Neurodesk can be installed on various HPC systems here.