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