This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

User Documentation

Overview

For an overview of the Neurodesk platform, go to: Overview

Quick Start

To install the Neurodesktop container, go to: Getting Started

Feedback & Inquiries

To ask questions or suggest new features, join the discussion on github. For issues with the Neurodesk platform, please open a new issue.

Acknowledgments

nif

uq

swinburne

liege

Funding

Thank you to Oracle for Research for providing Oracle Cloud credits and related resources to support this project.

This project is supported by an Australian Research Data Commons (ARDC) Platform project “Australian Electrophysiology Data Analytics PlaTform (AEDAPT)”.

License

MIT License

Copyright (c) 2021 NeuroDesk

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1 - Neurodesk Overview

A flexible, scalable and easy to use data analysis environment for reproducible neuroimaging.

What is Neurodesk?

Neurodesk provides a containerised data analysis environment to facilitate reproducible analysis of neuroimaging data. At Neurodesk, we believe that reproducibility should be a fundamental principle underlying neuroscientific data analysis (1). Analysis pipelines for neuroimaging data typically rely on specific versions of packages and software, and are dependent on their native operating system. These dependencies mean that a working analysis pipeline may fail or produce different results on a new computer, or even on the same computer after a software update. Neurodesk provides a platform in which anyone, anywhere, using any computer can reproduce your original research findings given the original data and analysis code.

What is a container?

The Neurodesk environment allows users to build and use containers for analysing neuroimaging data. Containers can be compared to virtual machines, in that they allow users to create a virtual, isolated computing environment with an operating system separate to that of the host machine. However, containers differ from virtual machines in that they virtualise software rather than hardware. Practically, this means that container images require few system resources to install, start-up quickly, and are easily portable between computers.

We recommend watching this excellent short video from the Australian Research Data Commons (ARDC) on research applications of software containers. To read more about Docker containers, visit the Docker webpage

Video tutorial

Click here to watch a 2 minute introduction to the Neurodesk platform

Background

Neurodesk was origionally concieved as “Virtual Neuro Machine”, a hackathon project at the Brainhack 2020.

References

  1. National Academies of Sciences, Engineering, and Medicine. 2019. Reproducibility and Replicability in Science. Washington, DC: The National Academies Press. https://doi.org/10.17226/25303.

1.1 - How to cite us

How should I cite the tools I am using and Neurodesk itself?

Citing tools

We recommend to cite the tool you are using with the version number and the builddate, because this guarantees full reproducibility. You can find this information here: https://www.neurodesk.org/docs/overview/applications/. It’s also very important to cite the paper of the tool you are using and you find this information in the README.m of each tool, which you can find here (https://github.com/NeuroDesk/neurocontainers/tree/master/recipes) or when opening the application through the menu in Neurodesktop.

Citing Neurodesk

You can cite the Neurodesk Preprint (https://www.biorxiv.org/content/10.1101/2022.12.23.521691v1) and if you used Neurodesktop you can also add the version that was used (e.g. v20230531).

Citing AEDAPT

If you used any EEG/MEG or electrophysiology tools, please link to the AEDAPT website: https://www.aedapt.net/

Examples

“TGV QSM (v1.0.0_20210629, Langkammer, C; Bredies, K; Poser, BA; Barth, M; Reishofer, G; Fan, AP; Bilgic, B; Fazekas, F; Mainero; C; Ropele, S. Fast Quantitative Susceptibility Mapping using 3D EPI and Total Generalized Variation. Neuroimage. 2015 May 1;111:622-30. doi: 10.1016/j.neuroimage.2015.02.041) was run in Neurodesk (v20220302, https://www.neurodesk.org) (Renton, Angela I., Thanh Thuy Dao, David F. Abbott, Saskia Bollmann, Megan E. J. Campbell, Jeryn Chang, Thomas G. Close, et al. “Neurodesk: An Accessible, Flexible, and Portable Data Analysis Environment for Reproducible Neuroimaging.” bioRxiv, December 23, 2022. https://doi.org/10.1101/2022.12.23.521691)”

“EEGlab (2020.0_20211026, Delorme A & Makeig S (2004) EEGLAB: an open-source toolbox for analysis of single-trial EEG dynamics, Journal of Neuroscience Methods 134:9-21.) was run in Neurodesk (v20220302, https://www.neurodesk.org) part of the AEDAPT project https://www.aedapt.net/

1.2 - Applications

List of Applications.

For information on Neurodesktop installation, visit our Getting Started section

Neurodesktop comes packaged with:

  • programming software (e.g., Visual Studio Code, python, git)
  • workflow systems (Nipype)-data synchronization utilities (Rsync, Rclone, Nextcloud, Owncloud)
  • system management tools (Lmod, Singularity, Htop)
  • additional resources (Imagemagic, Firefox, OpenSSH client)
  • access to Neurocontainers via the Neurodesk menu (see list below)

See below for a list of Neurocontainer applications available via the Neurodesk menu

1.3 - Release History

Previous releases of neurodesktop
Latest Version
20230531

20230525

  • fixed environment variables for nipype
  • fixed RDP upload permission errors

20221216

20221129

  • updated qsmxt to 1.1.13 (contributed by Ashley)
  • added nipype 1.8.3 (contributed by Steffen)
  • added mneextended 1.1.0 (contributed by David)
  • added new tool category “workflows”
  • added new CVMFS mirror server in Phoenix
  • added mimetypes so that nii/minc files now open in the respective applications
  • matlab licenses can now be saved from the activation GUI
  • update rstudio to 2022.07.2 (and R version to 4.1.2 with new additional packages, like brms)

20220813

  • updated qsmxt to 1.1.12 (contributed by Ashley)
  • updated 3D Slicer to 5.0.3 and included MONAI Label (contributed by Xincheng)
  • added Matlab 2022a (contributed by Oren)
  • updated AFNI to 22.1.14 (contributed by Steffen)
  • updated Spinal Cord Toolbox to 5.7 (contributed by Steffen)
  • updated Oshyx to 0.4 (contributed by Jeryn)
  • updated freesurfer to 7.3.2 (contributed by Steffen)
  • added CVMFS mirror server in Perth and cleaned up server list to account for DNS geo location steering (contributed by Steffen)

20220701

  • added laynii 2.2.1 - layer fMRI toolbox (contributed by Renzo Huber)
  • added fieldtrip 20220617 - eeg processing (contributed by David White)

20220329

  • added bidscoin 3.7.0 (converting data to bids) contributed by Oren
  • added sigviewer 0.6.4 (viewing electrophysiological data) contributed by Tom
  • added niftyreg 1.4.0 (image registration tool) contributed by Steffen
  • added mne 1.0.0 (EEG processing pipeline) contributed by David

20220302

  • update of ROMEO (phase unwrapping) to latest version 3.2.8
  • update of QSMxT (automated end-to-end QSM processing) to latest version 1.1.10
  • added mritools 3.3.0 (includes clearswi 1.0.1, mcpc3ds 0.1.0, romeo 3.2.8 as compiled binaries)

20220222

  • update for PhysIO toolbox (physiological noise correction for fMRI) to r2021a including the latest SPM r8224
  • update of lcmodel to include basis sets for 1.5-9.4T
  • added a memory display plugin to illustrate how much memory is available to the container and how much is consumed
  • added a version checker to help with identifying if a new version is available
  • added file upload via guacamole (+ update of guacamole to 1.4) - users can now drag and drop their files onto guacamole and they get copied to the desktop

20220128

  • update of Spinalcordtoolbox to 5.5
  • update of CAT12 to r1933

20220121

  • MNE Python 0.23.4 container including VScode and extensions
  • VScode container including Python/Julia Extensions and singularity to test “Inception Mode” (Running singularity containers within singularity containers)
  • update of fsl to 6.0.5.1
  • added CAT12 (a software that allows estimation of tissue volumes (and additional surface parameters such as cortical thickness, gyrification or fractal dimension) for different volume and surface-based atlas maps)

20220111

  • a deep learning based vessel segmentation algorithm “vesselapp” was added in version 0.3.1
  • palm - Permutation Analysis of Linear Models - was added in version alpha119
  • niistat running in octave was added with version 1.0.20191216
  • MRIcroGL was updated to a version with included python support, so the scripting is now working
  • rabies - Rodent Automated Bold Improvement of EPI Sequences was added with version 0.3.5
  • oshyx was updated to 0.3

20211220

  • neurodesktop can now be accessed via native RDP client as well (e.g. for multi-monitor support): https://www.neurodesk.org/docs/getting-started/neurodesktop/windows/#using-an-rdp-client
  • there is a new Help button in the menu :)
  • updates of ants 2.3.4 (now includes Scripts as well, including antsCookTemplatePriors.sh) + newly added version 2.3.5
  • new version of QSMxT 1.1.9 20211219
  • new version of Spinal Cord Toolbox 5.4
  • new tools: MRIcroGL and surfice - fantastic viewers for neuroimaging data

20211207

  • Physio toolbox compiled and added to SPM + update of SPM
  • added brainstorm
  • new neurodesktop container management scripts for Linux, Mac and Windows: https://github.com/NeuroDesk/neurodesktop
  • added fieldtrip
  • Datalad is now in the main image, so datalad run should work
  • added Oshy-X segmentation tool
  • updated freesurfer 7.2.0

20211028

  • added EEGLAB

20211018

  • added Rstudio, R and multiple R packages (plotly, car, tidyverse, …)
  • added ClearSWI and ROMEO for MRI phase processing (including new Tutorials: https://www.neurodesk.org/tutorials/tutorials/phase_processing)
  • added more categories in applications menu (Body, Electrophysiology, Hippocampus, Phase Processing, Rodent Imaging, Shape Analysis, Spine, Statistics)
  • bugfix: improved startup time of the desktop container (miniconda in homedirectory was causing chmod slowdown)
  • bugfix: ssh, vnc and rdp servers are now restarted in case the container was stopped and started again (e.g. on Standby)

20210929

  • fixed naming of aidmri to aidamri and added new category “Rodent Imaging”
  • updated all tool icons and updated neurodesk icon including background image
  • VScode now stores settings in persistent storage /neurodesktop-storage and with this keeps extensions and settings across different neurodesktop versions
  • docker layers are now cached, so updating the desktop to the next version is very fast and consumes less disk space locally
  • default theme of terminal changed from Solarized to Tango as the old theme was hiding information in tools like htop (same font colour on same background…)

20210923

  • removed faulty mriqc 0.15.2 container
  • neurodesk.github.io is now starting page in firefox browser

20210918

  • added mriqc 0.16.1 and mrtrix 3.0.3

20210917

  • included more tools for connecting to cloud storage services (rclone, owncloud, nextcloud, davfs2, globus). For more info: Storage
  • styling of desktop interface, including background wallpaper and colour scheme in terminal window
  • new categories in menu system (visualization) and added more categories to tools

20210916

  • This is the first version of the newly renamed and rebuild neurodesktop (previously vnm and neuromachine)
  • containers are mounted by default from CVMFS, but this can be deactivated by adding -e CVMFS_DISABLE=true to the docker call

2 - Getting Started

Getting Started

Release

Ensure you note the release date of the Neurodesktop container image during installation, as it’s indicated in the docker run command, e.g.

version

We regularly update Neurodesktop for optimal performance and updated software. Check the Release History for past releases. To upgrade your container, replace the release number with your desired version. For replicable analysis pipelines, share the stable release number you used, enabling others to recreate your work environment anywhere.

Video tutorial

See below for a 14 minute tutorial video from eResearch 2021

2.1 - Neurodesktop

The plug-and-play, browser-accessible, containerised data analysis environment.

2.1.1 - Neurodesk App

Neurodesk App is the cross-platform desktop application for Neurodesk

Minimum System Requirements

  1. At least 5GB free space for neurodesktop base image
  2. Docker requirements.

Installing Docker

Neurodesk App requires Docker to be installed on your computer. If you already have Docker installed, you can skip this step.

After installation, open a terminal (Linux/macOS) or command prompt (Windows) and run the following command to verify that Docker is working correctly:

docker --version
docker run hello-world

Installing Neurodesk App

If you have an existing Neurodesk App installation, please uninstall it first by following the uninstall instructions.

Launching Neurodesk App

Neurodesk App can be launched from the GUI of your operating system by clicking the application’s icon or by using neurodeskapp command from the command line.

Neurodesk App sets File Browser’s root directory based on the launch method.

  • If launched from the application icon on GUI or by using neurodeskapp command without any arguments, then the default working directory is set as the root directory. The default working directory is user home directory but it can be customized from the Settings dialog.

Sessions and Projects

Sessions represent local project launches and connections to existing Neurodesk servers. Each Neurodesk UI window in the app is associated with a separate session and sessions can be restored with the same configuration later on.

Session start options

You can start a new session by using the links at the Start section of the Welcome Page.

Start

  • Open Local Neurodesk.. creates a new session in the default working directory.
  • Connect to remote Neurodesk server.. creates a session by connecting to a remote Neurodesk server.

Previously opened sessions are stored as part of application data and they are listed on the Welcome Page. Clicking an item in the Recent sessions list restores the selected session.

neurodeskapp command-line launch examples

Run neurodeskapp in the terminal.

Connecting to local Neurodesk

Neurodesk App creates new Neurodesk sessions by launching a locally running Neurodesk server and connecting to it. To open a local instance, click the Open Local Neurodesk.. button in the Start section of the Welcome Page.

It will show a Jupyterlab interface. There are two options to interact with Neurodesk:

  • By clicking the NeurodeskApp icon on the right. It launches new window to start Neurodesk interface.
  • By module loading containers on the left bar. You can interact with loaded modules in Terminal through command lines.

Local

Connecting to a remote Neurodesk Server

It can also connect to an existing Neurodesk server instance that is running remotely. In order to connect to a server, click the Connect to remote Neurodesk server.. button in the Start section of the Welcome Page.

Server

This will launch a dialog that automatically lists the remote Neurodesk server instances.

Select a server from the list or enter the URL of the Neurodesk application server. If the server requires a token for authentication, make sure to include it as a query parameter of the URL as well (/lab?token=<token-value>). After entering a URL hit Enter key to connect.

If the Persist session data option is checked, then the session information is stored and Neurodesk App will re-use this data on the next launch. If this option is not checked, the session data is automatically deleted at the next launch and servers requiring authentication will prompt for re-login.

You can delete the stored session data manually at any time by using the Clear History option in the Privacy tab of Settings dialog.

Settings

Configuration and data files

Neurodesk App stores data in ~/neurodesktop-storage for Linux and Mac, or C:/neurodesktop-storage for Windows, as default.

Add Custom Data Directory

Neurodesk App stores its data in the following locations:

  • By default, /home/jovyan/neurodesktop-storage in the app (which is binded with local directory ~/neurodesktop-storage in Unix or C:/neurodesktop-storage in Windows)

  • By choice, in the setting window below, select Additional Directory on the left side bar, click Change button to select the local directory, then click Apply & restart. The next time you start the app, the data from the local directory can be found in /home/jovyan/data.

Additional Directory

Uninstalling Neurodesk App

Debian, Ubuntu Linux

sudo apt-get purge neurodeskapp # remove application
sudo rm /usr/bin/neurodeskapp # remove command symlink
rm -rf ~/.config/neurodeskapp # to remove application cache

Red Hat, Fedora, SUSE Linux

sudo rpm -e neurodeskapp # remove application
sudo rm /usr/bin/neurodeskapp # remove command symlink
rm -rf ~/.config/neurodeskapp # to remove application cache

Arch-based Linux distributions

sudo pacman -Rs neurodeskapp-bin

macOS

Find the application installation NeurodeskApp.app in Finder (in /Applications or ~/Applications) and move to Trash by using CMD + Delete. Clean other application generated files using:

rm -rf ~/Library/neurodeskapp # to remove application cache
rm -rf ~/Library/Application\ Support/neurodeskapp # to remove user data

Windows

On Windows, go to Windows Apps & Features dialog using Start Menu -> Settings -> Apps and uninstall Neurodesk App as shown below.

In order to remove application cache, delete C:\Users\<username>\AppData\Roaming\neurodeskapp directory.

2.1.2 - Linux

Install neurodesktop on Linux

Minimum System Requirements

  1. At least 3GB free space for neurodesktop base image
  2. Docker requirements. Details found under https://docs.docker.com/get-docker/

Quickstart

1. Install Docker/Podman

Install Docker from here: https://docs.docker.com/get-docker/. Additional information available below. Neurodesk also works with Podman.

2. Run Neurodesktop

Before the first run, create a local folder where the downloaded applications will be stored, e.g. ~/neurodesktop-storage

Then use one of the following options to run Neurodesktop:

Instructions on installing and using the app: https://www.neurodesk.org/docs/getting-started/neurodesktop/neurodeskapp/

Option 2 (Advanced): Using Terminal

  1. Open a terminal, and type the following command to automatically download the neurodesktop container and run it
sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531
  1. Once neurodesktop is downloaded, leave the terminal open and check the server neurodesktop running on (Avoid pressing CTRL+C). For example,

image

  1. To access neurodesktop, open your web browser and type in one of those provided URLs provided in your terminal (e.g. http://127.0.0.1:8888/lab?token=your_unique_token).
  1. Press on “Desktop Auto-Resolution” under “ALL CONNECTIONS”

  2. If it is the first time you use Neurodesktop, wait until the desktop appears (it may take a few seconds). Otherwise, it should appear instantaneously.

  3. Neurodesk is ready to use! Click “What’s next?” on the left of this page for further instructions.

  4. For an optimal experience, switch your browser to full-screen mode by following the instructions for your browser here: https://www.thewindowsclub.com/open-chrome-edge-or-firefox-browser-in-full-screen-mode

Deleting neurodesktop:

When done processing your data it is important to stop and remove the container - otherwise the next start or container update will give an error ("… The container name “/neurodesktop” is already in use…")

  1. Click on the terminal from which you ran neurodesktop

  2. Press Ctrl-C

  3. Run:

docker stop neurodesktop
  1. Run:
docker rm neurodesktop

Installing Docker

For general installation instructions, refer to https://docs.docker.com/get-docker/

RHEL/CentOS (yum-based)

Refer to https://docs.docker.com/engine/install/centos/

One example to install docker in a yum-based distribution could look like this:

sudo dnf install -y yum-utils 
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io
# or if dnf not found: sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker
sudo docker version
sudo docker info
sudo groupadd docker
sudo usermod -aG docker $USER
sudo chown root:docker /var/run/docker.sock
newgrp docker

Ubuntu/Debian (apt-based)

Refer to https://docs.docker.com/engine/install/ubuntu/

One example to install docker in a apt-based distribution could look like this:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

GPU support

RHEL/CentOS (yum-based)

sudo yum install nvidia-container-toolkit -y

Running neurodesktop container with GPU

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  --gpus all \
  -p 8888:8888 -e NEURODESKTOP_VERSION=20230531 \
  vnmd/neurodesktop:20230531

Then inside the neurodesktop container run:

sudo apt update
sudo apt install libcudart10.1

For a GPU with Nvidia driver Version > 495.29.05:

wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run
sudo sh ./cuda_11.5.0_495.29.05_linux.run

Running tensorflow (w/ GPU)

Using tensorflow (python)
conda install tensorflow-gpu
python
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

image

Using tensorflow (singularity container in neurodesktop)
singularity pull docker://tensorflow/tensorflow:latest-gpu
singularity run --nv tensorflow_latest-gpu.sif
python
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

image

Using an RDP Client

Startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 -p 3390:3389 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Open your RDP client and connect to Computer localhost:3390

Use the following details to login if prompted

username
user
password
password

Using VNC

To enable VNC and disable RDP, startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc

To enable both VNC and RDP, startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc --rdp

Using a VNC Client

Startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 -p 5901:5901 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc

Install the Tiger VNC client

sudo apt install tigervnc-client

Run the VNC Client and connect to localhost::5901

tigervncclient

Enter password and click Ok.

tigervncclient-password

2.1.3 - MacOS

Install neurodesktop on MacOS

Minimum System Requirements

  1. At least 3GB free space for neurodesktop base image
  2. An Intel Mac. M1/ARM Macs are not yet supported.
  3. Docker requirements. Details found under https://docs.docker.com/get-docker/

Quickstart

1. Install Docker

Install Docker from here: https://docs.docker.com/get-docker/

  1. Open the Docker Desktop and Navigate to the Install Docker Desktop tab. Instructions found at https://docs.docker.com/desktop/install/mac-install/

  2. Increase the Memory slider from 2.00 GB to 4.00 GB (or greater)

  3. Increase Swap slider from 1GB to 2GB (or greater)

2. Run Neurodesktop

Use one of the following options to run Neurodesktop:

Instructions on installing and using the app: https://www.neurodesk.org/docs/getting-started/neurodesktop/neurodeskapp/

Option 2 (Advanced): Using Terminal

Create a local folder where the downloaded applications will be stored, e.g. ~/neurodesktop-storage

  1. Open a terminal, and type the following command to automatically download the neurodesktop container and run it
docker run \
--shm-size=1gb -it --privileged --user=root --name neurodesktop \
-v ~/neurodesktop-storage:/neurodesktop-storage \
-e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
-p 8888:8888 -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

if you get errors in neurodesktop then check if the ~/neurodesktop-storage directory is writable to all users, otherwise run chmod a+rwx ~/neurodesktop-storage

  1. Once neurodesktop is downloaded, leave the terminal open and check the server neurodesktop running on (Avoid pressing CTRL+C). For example,

image

  1. To access neurodesktop, open your web browser and type in one of those provided URLs provided in your terminal (e.g. http://127.0.0.1:8888/lab?token=your_unique_token).
  1. Press on “Desktop Auto-Resolution” under “ALL CONNECTIONS”

  2. If it is the first time you use Neurodesktop, wait until the desktop appears (it may take a few seconds). Otherwise, it should appear instantaneously.

  3. Neurodesk is ready to use! Click “What’s next?” on the left of this page for further instructions.

Deleting neurodesktop:

When done processing your data it is important to stop and remove the container - otherwise the next start or container update will give an error ("… The container name “/neurodesktop” is already in use…")

  1. Click on the terminal from which you ran neurodesktop

  2. Press control-C

  3. Type:

docker stop neurodesktop
  1. Type:
docker rm neurodesktop

Using an RDP Client

Startup Neurodesktop using the following command:

docker run \
--shm-size=1gb -it --privileged --user=root --name neurodesktop \
-v ~/neurodesktop-storage:/neurodesktop-storage \
-p 3390:3389 -p 8888:8888 \
-e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Open your RDP client and connect to Computer localhost:3390

Use the following details to login if prompted

username
user
password
password

Using VNC

To enable VNC and disable RDP, startup Neurodesktop using the following command:

docker run \
--shm-size=1gb -it --privileged --user=root --name neurodesktop \
-v ~/neurodesktop-storage:/neurodesktop-storage \
-e VNC_ENABLE=true -p 8888:8888 \
-e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Using a VNC Client

Startup Neurodesktop using the following command:

docker run \
--shm-size=1gb -it --privileged --user=root --name neurodesktop \
-v ~/neurodesktop-storage:/neurodesktop-storage \
-e VNC_ENABLE=true -p 5901:5901 -p 8888:8888 \
-e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Open a VNC Client and connect to port 5901

2.1.4 - Windows

Install neurodesktop on Windows

Minimum System Requirements

  1. At least 3GB free space for neurodesktop base image
  2. Docker requirements. Details found under https://docs.docker.com/get-docker/
  3. If installing docker using WSL, minimum 20GB space recommended for WSL with Ubuntu

Quickstart

1. Install Docker or Podman

Install Docker from here: https://docs.docker.com/get-docker/

Alternatively, Neurodesk also works with podman: https://podman.io/

2. Run Neurodesktop

Use one of the following options to run Neurodesktop:

Instructions on installing and using the app: https://www.neurodesk.org/docs/getting-started/neurodesktop/neurodeskapp/

Option 2 (Advanced): Using Terminal

  1. Open a terminal (e.g. Powershell), and type the following command to automatically download the neurodesktop container and run it
docker run \
--shm-size=1gb -it --privileged --user=root --name neurodesktop \
-v C:/neurodesktop-storage:/neurodesktop-storage \
-p 8888:8888 \
-e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531
  1. Once neurodesktop is downloaded, leave the terminal open and check the server neurodesktop running on (Avoid pressing CTRL+C). For example,

image

  1. To access neurodesktop, open your web browser and type in one of those provided URLs provided in your terminal (e.g. http://127.0.0.1:8888/lab?token=your_unique_token).
  1. Press on “Desktop Auto-Resolution” under “ALL CONNECTIONS”

  2. If it is the first time you use Neurodesktop, wait until the desktop appears (it may take a few seconds). Otherwise, it should appear instantaneously.

  3. Neurodesk is ready to use! Click “What’s next?” on the left of this page for further instructions.

  4. For an optimal experience, switch your browser to full-screen mode by following the instructions for your browser here: https://www.thewindowsclub.com/open-chrome-edge-or-firefox-browser-in-full-screen-mode

Deleting neurodesktop:

When done processing your data it is important to stop and remove the container - otherwise the next start or container update will give an error ("… The container name “/neurodesktop” is already in use…")

  1. Click on the terminal from which you ran neurodesktop

  2. Press control-C

  3. Type:

docker stop neurodesktop
  1. Type:
docker rm neurodesktop

Using an RDP Client

Startup Neurodesktop using the following command:

docker run \
--shm-size=1gb -it --privileged --user=root --name neurodesktop \
-v C:/neurodesktop-storage:/neurodesktop-storage \
-p 3390:3389 -p 8888:8888 \
-e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Open Windows Remote Desktop Connection and connect to Computer localhost:3390 as shown below.

win-rdp-1

Resolution and multi-monitor settings can be set from the Display tab.

Once ready, click Connect. This will take you to the following prompt

win-rdp-1

Use the following details to login

Session
Xorg
username
user
password
password

Using VNC

To enable VNC and disable RDP, startup Neurodesktop using the following command:

docker run --shm-size=1gb -it --privileged --user=root --name neurodesktop -v C:/neurodesktop-storage:/neurodesktop-storage -p 8888:8888 -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc 

Using a VNC Client

Startup Neurodesktop using the following command:

docker run --shm-size=1gb -it --privileged --user=root --name neurodesktop -v C:/neurodesktop-storage:/neurodesktop-storage -p 5901:5901 -p 8888:8888 -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc 

Download the Tiger VNC client (vncviewer64-1.12.0.exe) from https://sourceforge.net/projects/tigervnc/files/stable/1.12.0/

Run the VNC Client and connect to localhost::5901

tigervncclient

Enter password and click Ok.

tigervncclient-password

2.1.5 - Nectar Virtual Desktop Service

Run neurodesktop in the Nectar Virtual Desktop Service

There are a few differences between the open-source version of Neurodesk and what’s hosted on Nectar VDI:

  1. There is no /neurodesktop-storage folder (the folder on the Desktop does not lead anywhere).
  2. Files uploaded via drag and drop do not get stored on the desktop but in /home/vdiuser/thinclient_drives/GUACFS

Instructions for use

  1. Go to https://desktop.rc.nectar.org.au/

  2. Click on “Sign in”.

  3. Choose the AAF option.

  4. Choose your institution from the list.

  5. Provide your email address and password.

  6. Click on “EXPLORE”.

  7. Click “VIEW DETAILS” under Neurodesktop: image

  8. Click “CREATE DESKTOP +” button on the top right corner.

  9. Choose the desired availability zone.

  10. Wait until everything is completed: image

  11. Click “OPEN DESKTOP ->”: image

  12. For a general guide on using the ARDC virtual desktops, click here: https://tutorials.rc.nectar.org.au/virtual-desktop-service/01-overview

  13. For a specific explanation on how to launch the various applications available in the Neurodesktop desktop, follow the instructions here: https://www.neurodesk.org/docs/getting-started/neurodesktop/

2.1.6 - Cloud

Run neurodesktop using Oracle or Azure cloud computing

Minimum System Requirements

  1. At least 3GB free space for neurodesktop base image
  2. Docker requirements. Details found under https://docs.docker.com/get-docker/

Quickstart

1. Connect to cloud server

On the computer from which you want to access Neurodesktop, open an SSH connection to your cloud instance with port forwarding (USER should be substituted with a username that has admin privileges on the cloud instance, and IP should be substituted with the IP address of the cloud instance)

ssh -L 8080:127.0.0.1:8080 USER@IP

2. Install Docker

Install Docker on the cloud instance from here: https://docs.docker.com/get-docker/. Additional information available here: https://www.neurodesk.org/docs/getting-started/neurodesktop/linux/#installing-docker

3. Run Neurodesktop

Create a local folder ~/neurodesktop-storage on the cloud instance to store persistent data (data that will not disappear if neurodesktop is stopped)

Option 1: NeuroDesktop.run

Download and run the following executable on the cloud instance https://github.com/NeuroDesk/neurodesktop/raw/main/Linux_run_Neurodesk/NeuroDesktop.run

Option 2: Using Terminal

  1. Open a terminal on the cloud instance, and type the following command to automatically download the neurodesktop container and run it
sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531
  1. Once neurodesktop is downloaded, leave the terminal open and check the server neurodesktop running on (Avoid pressing CTRL+C). For example,

image

  1. If it is required to set up an SSH tunnel to access the cloud instance, please set up such a tunnel from the computer from which you want to access Neurodesktop (e.g. ssh -L 8080:127.0.0.1:8080 USER@IP)

  2. To access neurodesktop, open your web browser and type in one of those provided URLs provided in your terminal (e.g. http://127.0.0.1:8888/lab?token=your_unique_token)

If the computer runs Linux, check specific instructions at https://www.neurodesk.org/docs/getting-started/neurodesktop/linux/, Option 2, Step 3.

  1. Press on “Desktop Auto-Resolution” under “ALL CONNECTIONS”

  2. If it is the first time you use Neurodesktop, wait until the desktop appears (it may take a few seconds). Otherwise, it should appear instantaneously.

  3. Neurodesk is ready to use! Click “What’s next?” on the left of this page for further instructions.

  4. For an optimal experience, switch your browser to full-screen mode by following the instructions for your browser here (except Mac where full-screen mode is built-in): https://www.thewindowsclub.com/open-chrome-edge-or-firefox-browser-in-full-screen-mode

Deleting neurodesktop:

When done processing your data it is important to stop and remove the container - otherwise the next start or container update will give an error ("… The container name “/neurodesktop” is already in use…")

  1. Click on the terminal from which you ran neurodesktop

  2. Press Ctrl-C

  3. Run:

sudo docker stop neurodesktop && sudo docker rm neurodesktop

Portforwarding to an iOS ipad

You can also connect to this cloud instance from your iOS device :) For this install https://webssh.net/documentation/help/networking/port-forwarding/ and create a tunnel (the tool is free for one connection). Start the docker container in a screen session and then connect to it from your ios device in the browser.

Cloud-provider specific Tutorials

Cloud providerlink
Oraclehttps://mri.sbollmann.net/index.php/2020/12/08/run-neurodesk-on-oracle-cloud-free-tier/

Using an RDP Client

Open an SSH connection to your cloud instance with the following command

ssh -L 3390:127.0.0.1:3390 USER@IP

Startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 -p 3390:3389 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Open your RDP client and connect to Computer localhost:3390

Use the following details to login if prompted

username
user
password
password

Using VNC

To enable VNC and disable RDP, startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc

To enable both VNC and RDP, startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc --rdp

Using a VNC Client

Startup Neurodesktop using the following command:

sudo docker run \
  --shm-size=1gb -it --privileged --user=root --name neurodesktop \
  -v ~/neurodesktop-storage:/neurodesktop-storage \
  -e NB_UID="$(id -u)" -e NB_GID="$(id -g)" \
  -p 8888:8888 --network host  \
  -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531 --vnc

Download the Tiger VNC client from https://sourceforge.net/projects/tigervnc/files/stable/1.12.0/

Open an SSH connection to your cloud instance with the following command

ssh -L 5901:127.0.0.1:5901 USER@IP

Run the VNC Client and connect to localhost::5901

tigervncclient

Enter password and click Ok.

tigervncclient-password

2.1.7 - Play

Play and Lab are publicly available services for running Neurodesk straight from the browser

Neurodesk Play

  • Recommended for quick access and trialling
  • No login or sign-up required
  • Files and session is deleted after exiting
  • Does NOT preserve files from previous sessions

To use Neurodesk Play, choose the link below closest to your location:

Neurodesk Lab

  • Recommended for processing data across multiple sessions
  • Authenticate via GitHub
  • 50GB home directory allocated per account
  • Home directory is saved on cloud for use across multiple sessions

To use Neurodesk Lab, choose the link below closest to your location:

How to transfer data onto Neurodesk Play and Lab

You can upload data to the desktop by simply drag-and-dropping files on the browser window. Data uploaded during your session are stored on Oracle Cloud, and will be automatically deleted at the end of the session. To download your files before deletion: You need to open the guacamole settings by pressing CTRL-ALT-SHIFT (Control-Command-Shift on Mac). This will open a menu on the side:

{A12EDB8A-3D01-4524-A7B5-24E5E94FB418}

where you can click on “Shared Drive”:

{645953A1-5D11-48C7-9DFB-25D4339EEA34}

and a click (or double clink on Mac) on the file will start the download.

You can browse into folders in the shared drive by clicking (double clicking on Mac) on them. To get back to the base of the shared drive, press on the drive icon in the top left of the side menu (just below the “Shared Drive” title).

To close the side menu, click on CTRL-ALT-SHIFT once more (Control-Command-Shift on Mac).

2.2 - Neurocommand

For more advanced users who prefer a command-line interface

Neurocommand requires a Linux host machine, virtual machine or WSL for Windows.

2.2.1 - Linux

Install neurocommand on Linux

Ways of using Neurocommand in Linux:

  1. You can use Neurocontainers directly via CVMFS: https://www.neurodesk.org/docs/getting-started/neurocontainers/cvmfs/
  2. or you can install Neurocommand as described here:

Requirements:

Required

Optional

command line mode (e.g. running on an HPC or CVL)

  • Load singularity and for best performance it should be 3.x e.g. module load singularity/3.5.0
  • Load or install aria2 to optimize the download performance of our containers e.g. module load aria2c
  • Run git clone https://github.com/NeuroDesk/neurocommand.git to clone the repository - make sure to clone this to a directory with enough storage, write permissions and NOT a symbolic link (to be sure run cd `pwd -P`)!
  • Run cd neurocommand to change into the directory
  • Run pip3 install -r neurodesk/requirements.txt --user to install pre-requisite python packages
  • Run bash build.sh --cli to install in cli mode
  • Run bash containers.sh for installing individual containers or bash containers.sh --all for installing all containers
  • Run module use $PWD/local/containers/modules/ to add the containers to your module search path. Add this to your .bashrc if working. When adding to your .bashrc you will need to replace $PWD to point to the correct path, i.e. module use ~/neurocommand/local/containers/modules/.
  • 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). - If a container is not yet there run ml --ignore_cache avail
  • Every time you start a new shell you will need to run conda activate neurocommand. Unless you added it to your .bashrc, you will also need to run module use PathToYourContainers.

For Lxde desktops

If running on an lxde desktop… Run bash build.sh --lxde --edit

For Mate desktops

Run bash build.sh --init (or bash build.sh --lxde --edit)
lxde/mate: Mate
installdir: Where all the neurocommand files will be stored (Default: ./local)
appmenu: The linux menu xml file. (Usually /etc/xdg/menus/****-applications.menu)
appdir: Location for the .desktop files for this linux desktop (Usually /usr/share/applications)
deskdir: Location for the .directory files for this linux desktop (Typically /usr/share/desktop-directories)

For desktop menus:

sudo bash install.sh to install
Creates symlinks to menu files in installation dir

sudo bash uninstall.sh to uninstall
Removes symlinks

To update

Run git pull
Run bash build.sh # this updates the neurocommand but not the modules install.sh does not need to be run again to update containers go into the neurodesktop directory and run bash containers.sh Choose the module you want to update for example you want to update mrtrix3/3.0.2 module with the eddy_cuda fix: ~/neurocommand/local/fetch_containers.sh mrtrix3 3.0.2 20221108 mrview $@

To download all containers

Run bash containers.sh --all

2.2.2 - Windows

Install neurocommand on Windows

WSL (w/ Ubuntu + LXDE)

For more information on WSL: https://docs.microsoft.com/en-us/windows/wsl

Setting up

  1. Setup WSL2 using the following instructions (Ubuntu 18.04 recommended)
    https://docs.microsoft.com/en-us/windows/wsl/install-win10 Proceed until a Ubuntu bash shell is available from the Windows Host
    Run the remaining commands in the Bash shell
  2. sudo apt-get install lxde to install LXDE desktop in WSL
  3. Reboot
  4. sudo apt-get install xrdp to install XRDP in WSL
  5. Open /etc/xrdp/xrdp.ini Change port=3389 to port=3390 and save
  6. Run echo startlxde > ~/.xsession

Running

  1. sudo service xrdp start to start xrdp server
  2. Open Microsoft Remote Desktop Connection in Windows host
  3. Connect to localhost:3390
  4. In the next login page, leave Session as Xorg. Enter your WSL username and password and click OK
  5. This should open an LXDE Linux Desktop environment. Follow Linux guide from here on

2.2.3 - HPC

Run neurodesktop in a high performance computing environment

Ways of using Neurocommand in Linux:

  1. You can use Neurocontainers (i.e., download Singularity containers) directly via CVMFS: https://www.neurodesk.org/docs/getting-started/neurocontainers/cvmfs/
  2. or you can install Neurocommand as described here:

Requirements:

Required

Optional

NB: Your HPC will likely have lmod and Singularity already installed - check with your sysadmin

Command line mode (e.g. running on an HPC or CVL)

  • Load singularity and for best performance it should be 3.x e.g.
module load singularity/3.5.0
  • Load or install aria2 to optimize the download performance of our containers (THIS IS OPTIONAL)
module load aria2c
  • To install the repository, run the following (make sure to clone this to a directory with enough storage, write permissions and NOT a symbolic link (to be sure run cd `pwd -P`)!)
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
export APPTAINER_BINDPATH=$PWD

Containers

  • If these steps were successful, all Neurodesk containers will be listed
  • Copy and paste the line for your desired container(s)

Adding your containers to lmod

  • To add each container to module search path, run the following:
module use $PWD/local/containers/modules/
  • It may be a good idea to add this to your .bashrc if this is working. When adding to your .bashrc you will need to replace $PWD to point to the correct path, i.e.
module use ~/neurocommand/local/containers/modules/
  • It is very important to set the SINGULARITY_BINDPATH variable in your .bashrc as well. This variable needs to contain all directories you want to access with the Neurodesk tools:

e.g.:

export SINGULARITY_BINDPATH=/scratch/,/data/
  • to see the installed containers at the top of the list (neurodesk containers will take preference over system modules with the same name), run:
module load --ignore_cache avail

Starting a new shell

  • Every time you start a new shell you will need to run conda activate neurocommand. Unless you added it to your .bashrc, you will also need to run module use PathToYourContainers.

To update

Run

git pull
bash build.sh
  • this updates the neurocommand but not the modules
  • install.sh does not need to be run again to update containers go into the neurodesktop directory and run
bash containers.sh

Choose the module you want to update for example you want to update mrtrix3/3.0.2 module with the eddy_cuda fix:

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

To download all containers

Run

bash containers.sh --all

2.2.4 - Visual Studio Code

Guide connecting your VS Code environment to Neurodesktop

Following guide is for connecting to a Neurodesktop using a VS Code installation running on your host machine.

Additional instructions if your Neurodesktop is running remotely (i.e. Cloud, HPC, VM)

Pre-requisites

Visual Studio Code (https://code.visualstudio.com) installed on your host. Standalone version should work fine

Install the following VS Code extensions:

For Remote servers

Open VS Code

Open the Command Palette (Ctrl+Shift+P)

Find Remote-SSH: Connect to Host... and select your remote host

More information on remote hosts available at https://code.visualstudio.com/docs/remote/ssh

This will open a new VS Code instance connected to the remote host via SSH. You may close the previous VS Code instance.

Follow the steps in the next section using the new VS Code instance

Connecting to Neurodesktop

Open VS Code and open a Folder (File > Open Folder)

This can be any folder (e.g. home or project folder). VS Code runs into errors if no folder is opened.

Open the Command Palette (Ctrl+Shift+P).

Select Remote-Containers: Attach to Running Container from the dropdown panel

Start typing in ’neurodesktop. Select /neurodesktop from the list

This should open a VS Code Window connected to the neurodesktop as a Dev Container.

First time connection will take about a minute, as VS code has to install the VS Code server onto the container. Repeat connections should be faster

First time connection

First time connection will default to using neurodesktop root user. We want to default connection to be as the normal user to avoid permission issues. To check which user is being use, open the terminal in the neurodesktop VS Code and check if the user is user or root

Follow the following steps to configure your VS Code to connect to neurodesktop as normal user by default

Open the Command Palette (Ctrl+Shift+P).

Select Remote-Containers: Open Container Configuration File from the dropdown panel

This will open a neurodesktop%3alatest.json file. Overwrite the file with the following contents

{
	"workspaceFolder": "/home/user",
	"remoteUser": "jovyan"
}

Close this VS Code window. Use steps in previous section to connect normally

Useful Additions

A plugin to view neuroimaging data inside VScode is also available: image

2.3 - Neurocontainers

What neurocontainers are about

2.3.1 - CVMFS

Neurodesk Singularity Containers on CVMFS

Install CVMFS

First you need to install CVMFS. Follow the official instructions here: https://cvmfs.readthedocs.io/en/stable/cpt-quickstart.html#getting-the-software

one example for Ubuntu in Windows Subsystem for Linux (WSL) could look like this:

sudo apt-get install lsb-release
wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
sudo dpkg -i cvmfs-release-latest_all.deb
rm -f cvmfs-release-latest_all.deb
sudo apt-get update
sudo apt-get build-essential
sudo apt-get install cvmfs

Configure CVMFS

Once installed create the keys and configure the servers used:

sudo mkdir -p /etc/cvmfs/keys/ardc.edu.au/


echo "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwUPEmxDp217SAtZxaBep
Bi2TQcLoh5AJ//HSIz68ypjOGFjwExGlHb95Frhu1SpcH5OASbV+jJ60oEBLi3sD
qA6rGYt9kVi90lWvEjQnhBkPb0uWcp1gNqQAUocybCzHvoiG3fUzAe259CrK09qR
pX8sZhgK3eHlfx4ycyMiIQeg66AHlgVCJ2fKa6fl1vnh6adJEPULmn6vZnevvUke
I6U1VcYTKm5dPMrOlY/fGimKlyWvivzVv1laa5TAR2Dt4CfdQncOz+rkXmWjLjkD
87WMiTgtKybsmMLb2yCGSgLSArlSWhbMA0MaZSzAwE9PJKCCMvTANo5644zc8jBe
NQIDAQAB
-----END PUBLIC KEY-----" | sudo tee /etc/cvmfs/keys/ardc.edu.au/neurodesk.ardc.edu.au.pub

echo "CVMFS_USE_GEOAPI=yes" | sudo tee /etc/cvmfs/config.d/neurodesk.ardc.edu.au.conf

echo 'CVMFS_SERVER_URL="http://cvmfs.neurodesk.org/cvmfs/@fqrn@;http://cvmfs-brisbane.neurodesk.org/cvmfs/@fqrn@;http://cvmfs-sydney.neurodesk.org/cvmfs/@fqrn@;http://cvmfs-frankfurt.neurodesk.org/cvmfs/@fqrn@;http://cvmfs-zurich.neurodesk.org/cvmfs/@fqrn@;http://cvmfs-toronto.neurodesk.org/cvmfs/@fqrn@;http://cvmfs-ashburn.neurodesk.org/cvmfs/@fqrn@;http://cvmfs.neurodesk.org/cvmfs/@fqrn@"' | sudo tee -a /etc/cvmfs/config.d/neurodesk.ardc.edu.au.conf 

echo 'CVMFS_KEYS_DIR="/etc/cvmfs/keys/ardc.edu.au/"' | sudo tee -a /etc/cvmfs/config.d/neurodesk.ardc.edu.au.conf

echo "CVMFS_HTTP_PROXY=DIRECT" | sudo tee  /etc/cvmfs/default.local
echo "CVMFS_QUOTA_LIMIT=5000" | sudo tee -a  /etc/cvmfs/default.local

sudo cvmfs_config setup

For WSL users

It is required to run this for each new new WSL session:

sudo cvmfs_config wsl2_start

Test if the connection works:

sudo cvmfs_config chksetup

ls /cvmfs/neurodesk.ardc.edu.au

sudo cvmfs_talk -i neurodesk.ardc.edu.au host probe
sudo cvmfs_talk -i neurodesk.ardc.edu.au host info

cvmfs_config stat -v neurodesk.ardc.edu.au

For Ubuntu 22.04 users

If configuring CVMFS returns the following error:

Error: failed to load cvmfs library, tried: './libcvmfs_fuse3_stub.so' '/usr/lib/libcvmfs_fuse3_stub.so' '/usr/lib64/libcvmfs_fuse3_stub.so' './libcvmfs_fuse_stub.so' '/usr/lib/libcvmfs_fuse_stub.so' '/usr/lib64/libcvmfs_fuse_stub.so'
./libcvmfs_fuse3_stub.so: cannot open shared object file: No such file or directory
/usr/lib/libcvmfs_fuse3_stub.so: cannot open shared object file: No such file or directory
/usr/lib64/libcvmfs_fuse3_stub.so: cannot open shared object file: No such file or directory
./libcvmfs_fuse_stub.so: cannot open shared object file: No such file or directory
libcrypto.so.1.1: cannot open shared object file: No such file or directory
/usr/lib64/libcvmfs_fuse_stub.so: cannot open shared object file: No such file or directory


Failed to read CernVM-FS configuration

A temporary workaround is:

wget https://mirror.umd.edu/ubuntu/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.15_amd64.deb
dpkg -i libssl1.1_1.1.1f-1ubuntu2.15_amd64.deb

Install singularity/apptainer

e.g for Ubuntu/Debian install apptainer:

sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:apptainer/ppa
sudo apt-get update
sudo apt-get install -y apptainer 

e.g. for Ubuntu/Debian install singularity:

export VERSION=1.18.3 OS=linux ARCH=amd64 && \
    wget https://dl.google.com/go/go$VERSION.$OS-$ARCH.tar.gz && \
    sudo tar -C /usr/local -xzvf go$VERSION.$OS-$ARCH.tar.gz && \
    rm go$VERSION.$OS-$ARCH.tar.gz

echo 'export GOPATH=${HOME}/go' >> ~/.bashrc && \
    echo 'export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin' >> ~/.bashrc && \
    source ~/.bashrc

go get -d github.com/sylabs/singularity

export VERSION=v3.10.0 # or another tag or branch if you like && \
    cd $GOPATH/src/github.com/sylabs/singularity && \
    git fetch && \
    git checkout $VERSION # omit this command to install the latest bleeding edge code from master

export VERSION=3.10.0 && # adjust this as necessary \
    mkdir -p $GOPATH/src/github.com/sylabs && \
    cd $GOPATH/src/github.com/sylabs && \
    wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-ce-${VERSION}.tar.gz && \
    tar -xzf singularity-ce-${VERSION}.tar.gz && \789
    cd ./singularity-ce-${VERSION} && \
    ./mconfig --without-seccomp --without-conmon

./mconfig --without-seccomp --without-conmon && \
    make -C ./builddir && \
    sudo make -C ./builddir install

export PATH="/usr/local/singularity/bin:${PATH}"

Use of Neurodesk CVMFS containers

The containers are now available in /cvmfs/neurodesk.ardc.edu.au/containers/ and can be started with:

singularity shell /cvmfs/neurodesk.ardc.edu.au/containers/itksnap_3.8.0_20201208/itksnap_3.8.0_20201208.simg

make sure that SINGULARITY_BINDPATH include the directories you want to work with:

export SINGULARITY_BINDPATH='/cvmfs,/mnt,/home'

For WSL users

The homedirectory might not be supported. Avoid mounting it with

singularity shell --no-home /cvmfs/neurodesk.ardc.edu.au/containers/itksnap_3.8.0_20201208/itksnap_3.8.0_20201208.simg

or configure permanently:

sudo vi /etc/singularity/singularity.conf

set

mount home = no

Install module system

sudo yum install lmod

or

sudo apt install lmod

Use of containers in the module system

Configuration for module system

Create a the new file /usr/share/module.sh with the content (NOTE: update the version, here 6.6, with your lmod version, e.g. 8.6.19):

# system-wide profile.modules                                          #
# Initialize modules for all sh-derivative shells                      #
#----------------------------------------------------------------------#
trap "" 1 2 3

case "$0" in
    -bash|bash|*/bash) . /usr/share/lmod/6.6/init/bash ;;
       -ksh|ksh|*/ksh) . /usr/share/lmod/6.6/init/ksh ;;
       -zsh|zsh|*/zsh) . /usr/share/lmod/6.6/init/zsh ;;
          -sh|sh|*/sh) . /usr/share/lmod/6.6/init/sh ;;
                    *) . /usr/share/lmod/6.6/init/sh ;;  # default for scripts
esac

trap - 1 2 3

Make the module system usable in the shell

Add the following lines to your ~/.bashrc file:

if [ -f '/usr/share/module.sh' ]; then source /usr/share/module.sh; fi

if [ -d /cvmfs/neurodesk.ardc.edu.au/neurodesk-modules ]; then
        # export MODULEPATH="/cvmfs/neurodesk.ardc.edu.au/neurodesk-modules"
        module use /cvmfs/neurodesk.ardc.edu.au/neurodesk-modules/*
else
        export MODULEPATH="/neurodesktop-storage/containers/modules"              
        module use $MODULEPATH
        export CVMFS_DISABLE=true
fi

if [ -f '/usr/share/module.sh' ]; then
        echo 'Run "ml av" to see which tools are available - use "ml <tool>" to use them in this shell.'
        if [ -v "$CVMFS_DISABLE" ]; then
                if [ ! -d $MODULEPATH ]; then
                        echo 'Neurodesk tools not yet downloaded. Choose tools to install from the Application menu.'
                fi
        fi
fi

Restart the current shell or run

source ~/.bashrc

Use of containers in the module system

export SINGULARITY_BINDPATH='/cvmfs,/mnt,/home'
module use /cvmfs/neurodesk.ardc.edu.au/neurodesk-modules/*
ml fsl
fslmaths

2.3.2 - DataLad

Neurodesktop containers can be used in datalad container run

install datalad, datalad-containers, ReproNim containers repo

conda install datalad
pip install datalad_container
datalad install https://github.com/ReproNim/containers.git
cd containers

get a list of all available default containers

datalad containers-list

download and run latest container version

datalad containers-run -n neurodesk-romeo

Change version of container

Option 1: change version in .datalad/config

vi .datalad/config
# now change the version of the container you like
# all available containers can be seen via `ls images/neurodesk`
datalad save -m 'downgraded version of romeo to x.x.x'
datalad containers-run -n neurodesk-romeo

Option 2: change version using freeze_versions script

# all available containers can be seen via `ls images/neurodesk`
scripts/freeze_versions neurodesk-romeo=3.2.4
datalad save -m 'downgraded version of romeo to 3.2.4'
datalad containers-run -n neurodesk-romeo

2.3.3 - Docker

Neurodesk Docker containers

Our containers are automatically built in https://github.com/NeuroDesk/neurocontainers/ and hosted on dockerhub or on github

Pull Docker containers

e.g. for a julia container docker

docker pull vnmd/julia_1.6.1

build singularity image from dockerhub

singularity build julia_1.6.1.simg docker://vnmd/julia_1.6.1

Replace julia_1.6.1 with your selected application. You can find the available containers here: https://www.neurodesk.org/applications/

2.3.4 - Google Colab

Neurodesk Singularity Containers for Google Colab

Open a notebook in Google Colab and run the following commands to setup the Neurodesk environment:

import os
os.environ["LD_PRELOAD"] = "";
os.environ["APPTAINER_BINDPATH"] = "/content"
os.environ["MPLCONFIGDIR"] = "/content/matplotlib-mpldir"
os.environ["LMOD_CMD"] = "/usr/share/lmod/lmod/libexec/lmod"

!curl -J -O https://raw.githubusercontent.com/NeuroDesk/neurocommand/main/googlecolab_setup.sh
!chmod +x googlecolab_setup.sh
!./googlecolab_setup.sh

os.environ["MODULEPATH"] = ':'.join(map(str, list(map(lambda x: os.path.join(os.path.abspath('/cvmfs/neurodesk.ardc.edu.au/neurodesk-modules/'), x),os.listdir('/cvmfs/neurodesk.ardc.edu.au/neurodesk-modules/')))))

Once this setup is completed you can list Neurodesk applications like this:

import lmod
await lmod.avail()

and use applications like this:

await lmod.load('fsl/6.0.4')
!bet

This notebook demonstrates how to use all Neurodesk applications in Google Colab: https://colab.research.google.com/drive/1g5cnZxj1llRaHmOs4xSglqsXnFkQYuol?usp=sharing

image

This is a google colab notebook that shows how to integrate with google drive and it contains an example how to run fMRIprep in google colab: https://colab.research.google.com/drive/11wVBkjNvrzo2TkUAILtWnPumAeFAfqkl?usp=sharing

2.3.5 - Singularity

Neurodesk Singularity Containers

Our docker containers are converted to singularity containers and stored on Object storage.

Download Singularity Containers

First get an overview which containers are available as Singularity containers: https://github.com/NeuroDesk/neurocommand/blob/main/cvmfs/log.txt

curl -s https://raw.githubusercontent.com/NeuroDesk/neurocommand/main/cvmfs/log.txt

assign the container name to a variable:

export container=itksnap_3.8.0_20201208

Then download the containers. An easy way is to use CURL (e.g. downloading from the US location):

curl -X GET https://objectstorage.us-ashburn-1.oraclecloud.com/n/sd63xuke79z3/b/neurodesk/o/${container}.simg -O

or from australia

curl -X GET https://objectstorage.ap-sydney-1.oraclecloud.com/n/sd63xuke79z3/b/neurodesk/o/${container}.simg -O

or from europe

curl -X GET https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/sd63xuke79z3/b/neurodesk/o/${container}.simg -O

A faster way is pulling from multiple storage locations at once using aria2:

aria2c https://objectstorage.us-ashburn-1.oraclecloud.com/n/sd63xuke79z3/b/neurodesk/o/${container}.simg https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/sd63xuke79z3/b/neurodesk/o/${container}.simg https://objectstorage.ap-sydney-1.oraclecloud.com/n/sd63xuke79z3/b/neurodesk/o/${container}.simg 

Transparent Singularity

The singularity containers can be also be used in combination with our Transparent Singularity Tool tool, that wraps the executables inside a container to make them easily available for pipelines. More information can be found here:

one example to do this is:

curl -s https://raw.githubusercontent.com/NeuroDesk/neurocommand/main/cvmfs/log.txt
export container=itksnap_3.8.0_20201208
git clone https://github.com/NeuroDesk/transparent-singularity ${container}
cd ${container}
./run_transparent_singularity.sh ${container}

2.3.6 - Windows 11 and Windows Subsystem for Linux

Use Neurocontainers on Windows 11 with WSL and Wayland Display Server

1. Install WSL

Follow the instructions to enable Windows Subsystem for Linux 2 in Windows 11: https://docs.microsoft.com/en-us/windows/wsl/install

2. Configure CVMFS, Singularity and LMOD (only needs to be done once)

Install build tools

sudo apt update
sudo apt install make gcc

Install singularity

export SINGULARITY_VERSION=3.9.3 VERSION=1.17.2 OS=linux ARCH=amd64
wget -q https://dl.google.com/go/go$VERSION.$OS-$ARCH.tar.gz 
sudo tar -C /usr/local -xzvf go$VERSION.$OS-$ARCH.tar.gz 
rm go$VERSION.$OS-$ARCH.tar.gz 
export GOPATH=${HOME}/go 
export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin 
mkdir -p $GOPATH/src/github.com/sylabs 
cd $GOPATH/src/github.com/sylabs 
wget -q https://github.com/sylabs/singularity/releases/download/v${SINGULARITY_VERSION}/singularity-ce-${SINGULARITY_VERSION}.tar.gz 
tar -xzvf singularity-ce-${SINGULARITY_VERSION}.tar.gz 
cd singularity-ce-${SINGULARITY_VERSION} 
./mconfig --prefix=/usr/local/singularity 
make -C builddir 
sudo make -C builddir install 
cd .. 
sudo rm -rf singularity-ce-${SINGULARITY_VERSION} 
sudo rm -rf /usr/local/go $GOPATH

Setup Bindpaths for Singularity (e.g. in .bashrc)

export PATH="/usr/local/singularity/bin:${PATH}"
export SINGULARITY_BINDPATH='/cvmfs,/mnt,/home'

CVMFS

Follow the instructions here: https://www.neurodesk.org/docs/getting-started/neurocontainers/cvmfs/

LMOD

sudo apt install lmod

3. Use Neurodesk containers


Initialize the neurodesk modules:

module use /cvmfs/neurodesk.ardc.edu.au/neurodesk-modules/*

Example usage of fsleyes:

ml fsl
fsleyes

List the available programs:

ml av

2.4 - Storage

Add storage to Neurodesktop

Drag and Drop

Uploading files

You can drag-and-drop files into the browser window to get files into the Neurodesktop. This will then start a file upload:

{538BB51E-0FEB-46EA-B1B8-FDF122776735}

Downloading files

To download files from the desktop using the same mechanism you need to open the guacamole settings by pressing CTRL-ALT-SHIFT (Control-Command-Shift on Mac). This will open a menu on the side:

{A12EDB8A-3D01-4524-A7B5-24E5E94FB418}

where you can click on “Shared Drive”:

{645953A1-5D11-48C7-9DFB-25D4339EEA34}

and a click (or double clink on Mac) on the file will start the download.

You can browse into folders in the shared drive by clicking (double clicking on Mac) on them. To get back to the base of the shared drive, press on the drive icon in the top left of the side menu (just below the “Shared Drive” title).

To close the side menu, click on CTRL-ALT-SHIFT once more (Control-Command-Shift on Mac).

Note that it’s only possible to download one file at the time through this interface. If you have multiple files in a directory we recommend opening a terminal and zipping the files and then downloading one zip archive:

zip files.zip files/

Local storage

If you are running Neurodesktop on your own hardware there will be a direct connection between the “Storage” folder on the Destkop, which is a link to “/neurodesktop-storage” and a “neurodesktop-storage” folder on your C-drive (Windows) or home directory (Mac/Linux). This connection can be used for data processing and data transfer.

Mounting external storage on your host-computer

The -v C:/neurodesktop-storage:/neurodesktop-storage part of the docker command links the directory “neurodesktop-storage” on the “C drive” of your Windows computer to the directory /neurodesktop-storage inside the Desktop environment. Everything you store in there will be available inside the desktop and on the host computer. You can also mount additional directories by adding another -v parameter set (e.g. -v D:/moredata:/data) - this will mount the directory moredata from your D drive to /data inside neurodesktop. Important: the mountpoint inside neurodesktop should be named /data (or anything from this list: https://github.com/NeuroDesk/neurocontainers/blob/master/recipes/globalMountPointList.txt) - otherwise most of the tools will not be able to access the data.

Here is an example for Windows adding another storage directory:

docker run --shm-size=1gb -it --privileged --user=root --name neurodesktop -v C:/neurodesktop-storage:/neurodesktop-storage -v D:/moredata:/data -p 8888:8888 -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Cloud storage

Another way to get your data into Neurodesktop is to use a cloud storage provider like CloudStor, Dropbox, OneDrive and their sync tools like OwnCloud, Nextcloud or very flexible tools like rclone or davfs2. Another good option could be to utilize Globus for large amounts of data.

Nextcloud and Owncloud desktop clients

Under the menu item “Accessories” you can find “Nextcloud” and “ownCloud” desktop sync clients that you can configure with your cloud service accounts.

To connect for example to your AARNET cloudstor account you can start the ownCloud client and enter the Server Address:

https://cloudstor.aarnet.edu.au/plus/

Then generate an app-password here: https://cloudstor.aarnet.edu.au/plus/settings/personal?sectionid=security

Mounting webdav storage using davfs2

Another option is to directly mount webdav storage. Here is an example how to mount CloudStor into Neurodesktop:

sudo mount -t davfs https://cloudstor.aarnet.edu.au/plus/remote.php/webdav/ /data/

It then asks you for a username and password, which you can generate here: https://cloudstor.aarnet.edu.au/plus/settings/personal?sectionid=security

Rclone

Rclone is a command line tool that enables the interaction with various cloud services. Here is an example how to setup rclone with CloudStor Aarnet:

  • start the configuration in a terminal window rclone config
  • Create a new remote: n
  • Provide a name for the remote: CloudStor
  • For the “Storage” option choose: webdav
  • As “url” set: https://cloudstor.aarnet.edu.au/plus/remote.php/webdav/
  • As “vendor” set OwnCloud: 2
  • Set your CloudStor username after generating an access token https://cloudstor.aarnet.edu.au/plus/settings/personal?sectionid=security
  • Choose to type in your own password: y
  • Enter the Password / Token from the CloudStor App passwords page and confirm it again:
  • Leave blank the bearer_token: <hit Enter>
  • No advanced config necessary: <hit Enter>
  • accept the configuration: <hit Enter>
  • Quit the config: q
  • Now we can download data to the HPC easily: rclone copy --progress --transfers 8 CloudStor:/raw-data-for-science-paper .
  • or upload data to CloudStor: rclone copy --progress --transfers 8 . CloudStor:/data-processed

Globus

We also provide the globus client, so you can transfer large amounts of data between globus endpoints and Neurodesktop. You can configure it by running:

ml globus
# First run the setup:
globusconnectpersonal -setup -nogui

# Then start the GUI:
globusconnectpersonal -gui

Once authenticated you can go to the globus file-manager https://app.globus.org/file-manager and your neurodesktop instance will be an endpoint for globus.

Mount volume using SSHFS

It is theoretically possible to mount an SSH target inside Neurodesktop, but it’s not a very reliable way of mounting storage:

sshfs -o allow_root USER@TARGET_HOST:TARGET_PATH SOURCE_PATH

A better option is to use scp and copy data from an SSH endpoint:

scp /neurodesk/myfile user@remoteserver:/data/

An alternative is to mount the SSHFS target into a parent directory on your local machine or VM and then use the -v option in the docker run command to bind the parent directory of the SSHFS mount. NOTE: the SSHFS has to be mounted to a subdirectory inside a parent directory which is then bound to the docker container. If you directly bind to the mounted directory itself, your Neurodesktop container will stop being able to access it if the SSHFS mount disconnects and will not be able to access it again without restarting the Neurodesktop container.

For example, on a local Linux machine or VM:

sshfs -o allow_root USER@TARGET_HOST:TARGET_PATH/MyData SOURCE_PATH/SSHFS_Mounts/MyData

Then add the following line to the docker run command when starting Neurodesktop (note the rshared flag):

-v /SSHFS_Mounts:/data:rshared \

TIP: If you use key pair authentication instead of password for your SSHFS mount, you can use the reconnect flag to reconnect automatically if the connection drops:

sshfs -o IdentityFile=~/.ssh/id_rsa,allow_root,ServerAliveInterval=5,ServerAliveCountMax=3 USER@TARGET_HOST:TARGET_PATH/MyData SOURCE_PATH/SSHFS_Mounts/MyData

3 - Support

Support

3.1 - Neurodesk FAQ

Frequently Asked Questions.

What is Neurodesk?

Neurodesk provides a containerised data analysis environment to facilitate reproducible analysis of neuroimaging data. Analysis pipelines for neuroimaging data typically rely on specific versions of packages and software, and are dependent on their native operating system. These dependencies mean that a working analysis pipeline may fail or produce different results on a new computer, or even on the same computer after a software update. Neurodesk provides a platform in which anyone, anywhere, using any computer can reproduce your original research findings given the original data and analysis code.

More information:

In-depth information:

What applications are included in Neurodesk?

You can check out the complete list of these applications

How should I cite the tools I am using and Neurodesk itself?

See here

Can I run Neurodesk on an HPC without Docker?

Yes, our project aims to run on the hardware you have access to. However, without docker support you cannot use our desktop interface NeuroDesktop but you can still use the command line interface NeuroCommand on HPC. This works well for batch processing on HPCs once you developed your pipeline in our desktop interface. If your HPC provides a desktop interface you can use all our graphical applications without any issues and the GUIs even work via SSH x-forwarding - it’s not the most performant experience, but it works well enough.

Is there reduced performance when using containers?

If you are running containers on Linux there is no performance penalty - on an HPC with a Lustre filesystem it can even be faster to run our containers than running natively on the filesystem (because meta data operations are shifted to the compute node - more information can be found here: Rioux, Pierre, Gregory Kiar, Alexandre Hutton, Alan C. Evans, and Shawn T. Brown. ‘Deploying Large Fixed File Datasets with SquashFS and Singularity’. ArXiv:2002.06129 [Cs], 14 February 2020. https://arxiv.org/abs/2002.06129 ). However, running Neurodesktop on Windows and Mac will have a performance penalty, because Linux runs in a Hypervisor on these systems.

How can I see how much resources Neurodesk containers need?

In Linux the containers run as normal processes and you can use htop and top to inspect the resource footprint. For Windows and Mac the information is not readily available and we wrote some information here: Troubleshooting

Can I just use the plain containers?

Yes, there are multiple ways of using the containers directly and we provide an overview here: https://www.neurodesk.org/docs/getting-started/neurocontainers/

How to keep your modifications in the container

We designed neurodesk with reproducibility as a main goal, so the desktop containers should not be modified if one aims for full reproducibility. However, there is one good option to keep your settings across different container versions: You can write a shell script that installs additional packages and modifies the environment so it’s perfect for you. This script can then be re-executed in a new desktop version and will enable a reproducible customization.

Another option is to “save” your docker container including all changes you made. This could be useful when your changes are too difficult to write a shell script or when you do not care about reproducibility as much and you just want to get the job done. To do this you can commit (https://docs.docker.com/engine/reference/commandline/commit/) your container and by uploading the container to your own docker hub you could even share it.

How to force a complete container download to your system

To increase speed and reliability of Neurodesktop we mount the application containers from a CVMFS mount and download only the files required to run your current task. Although we aim to keep everything on there reproducible, there might be a reason that you want to fully download the containers to your system. You can force this behaviour by adding another parameter to the docker call: -e CVMFS_DISABLE=true

For windows an example would look like this:

docker run --shm-size=1gb -it --privileged --user=root --name neurodesktop -v C:/neurodesktop-storage:/neurodesktop-storage -e CVMFS_DISABLE=true -p 8888:8888 -e NEURODESKTOP_VERSION=20230531 vnmd/neurodesktop:20230531

Freeview 7.2.0 crashes when I open files

Freeview (and Freesurfer!) needs a valid license to work and we are not allowed to distribute a license with Neurodesk!

So here is how you can run freeview 7.2.0 and open your files:

  1. apply for a license (https://surfer.nmr.mgh.harvard.edu/registration.html) and paste this license in ~/.license

then run

echo "export FS_LICENSE=~/.license" >> ~/.bashrc
then start freeview 7.2.0 and it should all work perfectly.

Matlab asks me to reactivate after restarting the desktop

There is one workaround for this problem. Fix the mac address for your session by including this in your docker command:

--mac-address 02:42:ac:11:00:02 

VScode

Vscode is not starting up (or starts many many copies of itself …)

This problem seems to be caused by a corrupted config directory. To fix this, run:

rm -rf ~/.config/Code

Keyboard and Multi-Language support

I am using a European keyboard layout and I cannot type symbols that require the ALT-GR key (like @ or \)

This seems to be a bug in Guacamole and RDP in combination with certain browsers. There are a few workarounds you can try:

  1. Use the connection option “Desktop Fixed-Resolution (VNC)” instead of Desktop Auto-Resolution (RDP)
  2. connect to the desktop using an RDP client instead of the browser (https://www.neurodesk.org/docs/getting-started/neurodesktop/windows/#using-an-rdp-client)

Copy-Paste and Clipboard issues

How top copy and paste text

You can copy and paste text within Neurodesktop and between Neurodektop and your host computer using the regular keyboard shortcuts (CTRL+C, CTRL+X, and CTRL+V). Note however that some applications (e.g., command-line terminal) are using other keyboard shortcuts. You can usually find them in the “Edit” menu of the relevant application.

Note for Mac Users: You will need to use a combination of CTRL and Command shortcuts in order to copy and paste text between Neurodesktop and the host computer. For example, copy text from your Mac with Command+C and then paste it into Neurodesktop using CTRL+V. For the other way around, you’d use CTRL+C in Neurodesktop and then Command+V on the Mac.

I cannot copy and paste text within Neurodesktop using keyboard shortcuts

If you’re using Mac, you might be trying to use Mac keyboard shortcuts, but Neurodesktop is using Linux keyboard shortcuts (CTRL+C and CTRL+V) If you use the terminal, please see “I fixed my internet browser clipboard, but copy or paste still do not work in the terminal” below.

Copying text from my host computer and pasting it inside Neurodesktop doesn’t work in Firefox

This is a “feature” of firefox and you can disable this “feature”:

  • navigate to about:config and “Accept the Risk and Continue” (“about:config” needs to be entered in the address bar of firefox and hit enter)
  • now search for clipboard and then set the following to “true”:
    • dom.events.asyncClipboard.clipboardItem
    • dom.events.asyncClipboard.read
    • dom.events.testing.asyncClipboard

Then close firefox and restart. Then the clipboard should work as one would expect.

If the clipboard still does not work, check “I fixed my internet browser clipboard, but …” sections below.

Copy and paste between my host computer and Neurodesktop (or vice versa) doesn’t work in Chrome or Edge

The browsers have a security feature to protect you from something stealing your clipboard content. Depending on your security settings you have to enable it explicitly - it’s a little icon in the browser address bar that looks like a clipboard.

After pressing the icon, you should choose the option shown below in the dialog that opens. After pressing “Done”, close the current browser tab and open a new one for the changes to take effect.

image

If the clipboard still does not work, check “I fixed my internet browser clipboard, but …” sections below.

I fixed my internet browser clipboard, but copy or paste still do not work in the terminal

The terminal is using special keyboard shortcuts, Shift+CTRL+C for copy, and Shift+CTRL+V for paste. Alternatively, you can copy and paste text by using the terminal’s “Edit” menu.

I fixed my internet browser clipboard, but copy or paste still do not work in the file browser

The copy and paste options in the “Edit” menu of the file browser are used to copy and paste files, not text. To copy and paste text from/into the file browser application (e.g., copy a path into the path field in the top), use the CTRL+C and CTRL+V keyboard shortcuts.

I fixed my internet browser clipboard, but copy or paste still do not work in a specific/all applications

If you’re using Mac, you might be trying to use Mac keyboard shortcuts, but Neurodesktop is using Linux keyboard shortcuts. For more details, read the “Note for Mac users” here.

It is also possible that the text you are trying to copy includes special characters (e.g., non-English characters), which may cause Neurodesktop to not execute your paste command (including the non specials characters). Give special attention to the following characters:

  • Dash: the en (short) dash is the normal one and copies ok, but the em (long) dash is considered a special character. When in doubt, replace all the dashes in the text you want to copy with en dashes.
  • Quotation mark: a strictly vertical quotation mark is fine, but a slightly leaning quotation mark / an apostrophe are special characters. When in doubt, replace all quotation marks in the text you want to copy with vertical quotation marks.

If it still does not work, please report the problem and we will do our best to help you:

  1. Copy some text from your host computer (CTRL+C, or Command+C)
  2. Open the Mousepad text editor in Neurodesktop (Start button → “Accessories” → “Mousepad”)
  3. Try to paste the text using the menu option “Edit” → “Paste”
  4. Try to paste the text again using CTRL+V
  5. If you don’t have one already, please create a Github account here
  6. Go to our discussion forum here
  7. If you are not logged into Github, please log in (upper right corner)
  8. Press “New Discussion” button
  9. In the message that you write, please specify your operating system, your internet browser, the application in question, and if you can copy/paste to Mousepad and how?

Docker, WSL, Memory

docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.

This is usually a docker-related error, not related to neurodesktop itself. To troubleshoot docker, we can try a simpler container first:

docker run hello-world

Try the following solutions (in this order, until the above command works)

  1. Win/Mac: Open docker GUI and accept T&Cs. Check that the docker engine is running
  2. Linux: Make sure you started the docker daemon (sudo systemctl start docker)
  3. Add your user to the OS docker group (sudo usermod -aG docker $USER)
  4. docker.sock permissions need to be changed (sudo chown root:docker /var/run/docker.sock)
  5. Close and open the terminal and retry.
  6. Log out and login again, or restart the machine (current user environment does not fully know docker is running)

Windows users: WSL not installed properly

The Docker engine relies on the Windows subsystem for Linux (WSL) to run on a windows machine.

If WSL is properly installed, the Resources tab of the Docker settings should look something like this:

Docker_WSL_correct

However, if WSL is missing or incorrectly configured, the Resources tab of the Docker settings may look something like this:

Docker_WSL_incorrect

If this is the case, follow the manual install instructions to install WSL 2 (including installation of Ubuntu through Microsoft Store).

Windows users: Not enough free space on the partition in Windows and WSL2

This could help: https://yjmantilla.github.io/tutorials/wsl2-move-vhdx.html

Windows users: Failure to connect to Neurodesktop in Firefox

We recommend using Microsoft Edge or Google Chrome to access Neurodesktop.

Trouble installing neurodesk images

This may be a memory issue. First, ensure that there is enough free space on the disk. If there is, try resetting docker settings and data. To do this:

  1. Open the docker engine
  2. Navigate to “Troubleshooting” (the bug icon in the top right).
  3. Click “Reset to factory defaults”

Docker_troubleshooting

If you are still experiencing issues after this, you may need to update docker to the latest version. This can be achieved through “settings” in the docker engine, or (on windows) by right clicking on the docker tray icon:

Docker_update

I got an error message ‘X killed’ or not enough memory

This may be due to Docker not having access to enough RAM from your host computer.

If you are using Docker on MacOS

  1. The memory amount is managed via the Docker settings: image

If you are using Docker on Windows 10 with the WSL2 backend

then this is managed by Windows settings. Try the following steps to check how much RAM Docker has access to and increase the amount if necessary.

  1. Run Docker
  2. Open a terminal (ie. Powershell) in the PC you want to use to run Neurodesktop (not in Neurodesktop itself) and type the following command:
docker info

This will generate information about your Docker installation (make sure Docker is running during this step)

  1. Look for the line that says
Total Memory: **.**GiB
  1. If this value is ~2GB, try increasing it*:
    [wsl2]
    memory=32GB
    
    • Quit Docker (make sure it’s not running in the background, ie. system tray, check task manager)
    • In the terminal, run the following command
    wsl --running --list
    
    This will list any running distributions. For the update to be successful, WSL needs to have completely stopped running (ie. no distributions running)
    • Restart Docker and rerun steps 1-3 to confirm it was successful

If you are not using WSL2, you can check and manage your RAM allocation in the Docker desktop application.

  1. Open the Docker application and navigate to settings > resources > advances
  2. Scroll down to the Memory option and use the sliding bar to adjust the setting
  3. Click apply and restart

*RAM requirements will vary based on the tools/data you are using. If the system you’re using has limited RAM, test out a few different amounts by running the above steps and then your analyses in Neurodesktop. Version 20220208 onwards has a memory monitor in the taskbar - you can use this to check how much memory Neurodesktop has access to and how much is being used by the analyses being run.

How to empty trash bin in Neurodesktop

If you have deleted files using the Neurodesktop GUI but your storage is not yet emptied, execute the following command in the terminal.

rm -rf ~/.local/share/Trash/

How can I contribute new containers?

We are still working on making this easier, but here is the current workflow to add new applications.

I couldn’t find the information I was looking for. Where can I get additional assistance?

Neurodesk is an open-source project that is always evolving. If you are experiencing an issue not listed here, you can reach out to us on Github. Post your question at https://github.com/orgs/NeuroDesk/discussions or open a new issue, so that we can aim to solve it and update our help documentation.

How do I get my files in there?

It depends where you are running Neurodesk and where your files are. We provide many different ways from drag-and-drop, to cloud storage to file mounts in Storage in Neurodesk.

3.2 - Discussion Forum

Discussion Forum on Github.

3.3 - Contribute

Follow this template to contribute your own tutorial to the Neurodesk documentation.