Neurodesk Architecture
Neurodesktop: Recommended for Beginners
Neurodesktop is a compact Docker container with a browser-accessible virtual desktop that allows you develop and implement data analysis, pre-equipped with basic fMRI and EEG analysis tools. To get started, see: Neurodesktop (Github)
- docker container with interface modifications
- contains tools necessary to manage workflows in sub-containers: vscode, git
- CI: builds docker image and tests if it runs; tests if CVMFS servers are OK before deployment
- CD: pushes images to github & docker registry
Neurocommand:
Neurocommand offers the option to install and manage multiple distinct containers for more advanced users who prefer a command-line interface. Neurocommand is the recommended interface for users seeking to use Neurodesk in high performance computing (HPC) environments.
To get started, see: Neurocommand (Github)
- script to install and manage multiple containers using transparent singularity on any linux system
- this repo also handles the creation of menu entries in a general form applicable to different desktop environments
- this repo can be re-used in other projects like CVL and when installing it on bare-metal workstations
- CI: tests if containers can be installed
- CD: this repo checks if containers requested in apps.json file are available on object storage and if not converts the singularity containers based on the docker containers and uploads them to object storage
transparent-singularity:
transparent-singularity offers seamless access to applications installed in neurodesktop and neurocommand, treating containerised software as native installations.
More info: transparent-singularity (Github)
- script to install neuro-sub-containers, installers are called by neurocommand
- this repo provides a way of using our containers on HPCs for large scale processing of the pipelines (including the support of SLURM and other job schedulers)
- CI: test if exposing of binaries from container works
Neurocontainers:
neurocontainers contains scripts for building sub-containers for neuroimaging data-analysis software. These containers can be used alongside neurocommand or transparent-singularity.
To get started, see: Neurocontainers (Github)
- build scripts for neuro-sub-containers
- CI: building and testing of containers
- CD: pushing containers to github and dockerhub registry
Neurodocker:
Neurodocker is a command-line program that generates custom Dockerfiles and Singularity recipes for neuroimaging and minifies existing containers.
More info: Github
- fork of neurodocker project
- provides recipes for our containers built
- we are providing pull requests back of recipes
- CI: handled by neurodocker - testing of generating container recipes