1 of 10

Virtual Neuro Machine�

Project kick-off (better late than never)

​

17/6/2020

​

Project leader: �Oren Civier� �Swinburne Neuroimaging

Swinburne University of Technology

ocivier@swin.edu.au

2 of 10

Two possible implementations of VNM:

“master” container

​

* “library” of containers

​

Graphical interface

Interactive processing

Software and

working environment�in a single container

Work env. FSL

SPM

ANTs

Graphical interface

Interactive processing

Each software has its container

Working environment in a container

FSL

SPM

ANTs

Work env.

CVL project’s

Library

3 of 10

Some things are common to the two implementations:

​

  1. Working environment�
  2. Testing the containers�
  3. A tool to easily build the containers

4 of 10

Task 1 – Working environment

What is included in the working environment?�

1.1 GUI menu for launching graphical apps

- “master” container: Runs a graphical app from a specific package

- * “Library” of containers: Download the container, and run the graphical app from within it�

1.2 Scripting tools (shells, python, jupyter, MATLAB, octave, etc.)

1.2.1 A tool to let users load a personal MATLAB license (consult with @orenciv)

1.2.2 A tool to let connect to a site MATLAB license (consult with @sbollmann_mri)�

1.3 Tools to connect to storage (sshfs, gpfs, XNAT, etc.)

1.3.1 sshfs: possibly graphical tools like available in UBUNTU (consult with @orenciv)

1.3.2 XNAT: can be part of the Australian AIS project (consult with @orenciv)

1.3.3 gpfs: ? (consult with @sbollmann_mri)

​

​

5 of 10

Task 1 – cont. GUI menu

  • 1.1.1 Choose a tool to program the menu �The menu should run on Linux’ X graphics, which is the environment available within containers – can consult with @cnolan
  • 1.1.2 Graphically design the menu�To have something that stands out (be creative!)
  • 1.1.3 Prepare a list of graphical apps to include�Should include name and path of each app, divided into categories (“borrow” from the CVL project’s menu, consult @sbollmann_mri)
  • 1.1.4 Program the menu
  • 1.1.5 * Enable the menu to run apps within Singularity containers�(using modules system and https://github.com/CAIsr/transparent-singularity, consult @sbollmann_mri)
  • 1.1.6 * Enable the menu to download Singularity containers�(progress bar, notification on completion, Consult @sbollmann_mri)

​

6 of 10

Task 2 – Testing the containers

Testing is important both for “master” container and “library” of containers.

​

2.1 Choose the source of testing pipelines (python). Need pipelines that are freely available and their output is known.

​

2.2 Choose a source of MATLAB testing pipelines.

​

2.3 Choose the testing tool from many available.

​

2.4 Prepare scripts that users of the container(s) can run on their own, � as graphics might need to be tested in the actual environment.�

2.5 Incorporate into continuous integration, � to test things when building the container/s.

​

7 of 10

Task 2 – cont. Source of testing pipelines

NeuroLibre – collection of pipelines in Jupyter books with data and outputs�(One of the other projects in Hackathon, BrainIAK uses it. Can consult with @manojneuro)

TestKraken – tool for systematic testing�(can consult with @kaczmarj ?)

8 of 10

Task 3 – Adding recipes to neurodocker

  • Neurodocker is an open-source command-line tool to build neuroimaging containers easily
  • The required software packages and versions are specified using command-line arguments (permit building containers with multiple packages)
  • However, right now neurodocker only includes a limited range of software packages
  • As part of the hackathon, we would like to expend its offering

9 of 10

Task 3 – cont. Expending neurodocker

3.1 A list of packages that will be useful to add� (do homework + consult with me and @sbollmann_mri)��3.2 Clonning neurodocker and adding packages � (writing and testing install scripts)

�3.3 Pull requests on neurodocker to incorporate new packages��3.4 Script to generate “master” container (consult with me)�

3.5 * Scripts to generate stand-alone versions of applications� https://github.com/CAIsr/caid (consult with @sbollmann_mri)

​

10 of 10

Assign people to tasks