Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add more published containers and update status of containers in progress

...

Contributions to this page are very welcome. These can be in the form of links to published images / commands, proposals for future work, or comments. Edit the page directly on the wiki, or make a pull request to the markdown source document in the container service repo.

Anchor
completed
completed
Completed

TitleAuthorDocker HubGitHubNotes
DICOM to NIFTIFlavinxnat/dcm2niixnrgxnat/docker-images/dcm2niix
DICOM to BIDSFlavinxnat/dcm2bids-sessionnrgxnat/docker-images/dcm2bids-session
DebugFlavinxnat/debug-commandnrgxnat/docker-images/debug-commandTest that your container service is working by executing something, anything at all. Look through the command JSON to understand the basic structure
Convert a session full of DICOM files into NIFTI files with BIDS metadata. Store that metadata back to XNAT as resources in the way that the xnat2bids setup container expects.
XNAT PopulateCharlie Mooregreppy/xnat-populatenrgxnat/xnat-populateMeant for dev use only.
Version 2.0-uncached does not have all of the populate downloaded into it, so it's smaller. You can use 2.0-cached which does have all of the data already installed in it, but it comes at the tradeoff of the image being 20GB.TitleContainerNotesStatusTicketSnapshot generatorImageJ?Don't want to just containerize WebBasedQcImageCreator. Want to re-write snapshot generation, possibly with ImageJ script.
Status
colourBlue
titleOpen
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-193
DefacerEither an official one with the MATLAB runtime, or roll our ownUse Misha's mask_face; also see face masking pipeline on Marketplace. This tool uses MATLAB, which is a problem; Misha is investigating making a compiled version. StatuscolourBluetitleOpen
CONDR_METS lesion atlasMisha / FlavinNot published. 1. see note on NIL Tools. 2. This was built as a demo that relies on access to a non-public CNDA project.

Proposed

On deck

niftyregFlavin / Marc ModatImage not publishednrgxnat/docker-images/niftyregDeveloped during container hackathon at UCL. I was unsure whether to publish this image or not, so I did not.
BIDS MRIQCFlavinN/Anrgxnat/docker-images/bids-mriqcNot published as an image, only as a command. This fits the degin goal of the BIDS containers: use off-the-shelf BIDS docker images and write the command metadata to run them.

Anchor
setup-containers
setup-containers
Setup Containers

As of Container Service 1.4.0, commands can request to launch a setup container to pre-process the files received from XNAT before they are mounted.

TitleAuthorDocker HubGitHubNotes
BIDS SetupFlavinxnat/xnat2bids-setupnrgxnat/docker-images/setup-commands/xnat2bids

Anchor
debug-testing
debug-testing
Debug / Testing

TitleAuthorDocker HubGitHubNotes
DebugFlavinxnat/debug-commandnrgxnat/docker-images/debug-commandTest that your container service is working by executing something, anything at all. Look through the command JSON to understand the basic structure.
Debug Setup CommandFlavinxnat/debug-setupnrgxnat/docker-images/debug-setup-commandA minimally functional setup command to test that setup commands work at all.
Debug Command with Setup CommandFlavinxnat/debug-command-with-setupnrgxnat/docker-images/debug-setup-commandA minimally functional command which uses and verifies a setup command.
Debug Wrapup CommandFlavinxnat/debug-wrapupnrgxnat/docker-images/debug-wrapup-commandA minimally functional setup command to test that wrapup commands work at all.
Debug Command with Wrapup CommandFlavinxnat/debug-command-with-wrapupnrgxnat/docker-images/debug-wrapup-commandA minimally functional command which uses and verifies a wrapup command.

Anchor
proposed
proposed
Proposed

Anchor
on-deck
on-deck
On deck

TitleContainerNotesStatusTicket
BIDS AppsNumerousWe can now run BIDS containers on XNAT-style BIDS formatted data. This unlocks several potential containers. But many are made to be run either on a single subject or across a group of subjects with the change of a single flag. This is not great for us because we can’t launch in the latter way (bulk launching N inputs into one container). Distribution is also less than ideal, because we do not control the source images, only the command metadata that is used by the container service to run them. So we cannot create XNAT-ready images.
Status
colourYellow
titleIn progress
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-
195
237
ImageJfiji/fiji or build from DockerfilesImageJ is less a single tool and more of a scripting platform. As such, users would want to be able to run their own scripts for this container to be useful. Or we would need to write a ton of commands covering lots of basic functions (which I do not know, and which would never cover everything)
FreesurferRoll our ownCurrent sticky issue is the license file. We will have to include one in the image, as we have no good way to get one at runtime from XNAT.
Status
colour
Grey
Yellow
title
Needs expert review
In progress
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-
196
199
Freesurfer
PUPRoll our own
or use someone else's (plenty of freesurfer images out there)Would be better by resolving
This will need to include some NIL Tools binaries, and probably atlases as well. So it will be big.
Status
colourBlue
titleOpen
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-
29 (XNAT has no internal API to add objects from XML files) and
200
Slicerfederov/slicerdockersI have investigated and categorized the executables within the slicer image, and manually tested running several of them. Some simple executables would make good commands.
Status
colourYellow
titleIn Progress
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-
80 (no way to upload output files to other previously-created outputs).
198
DefacerEither an official one with the MATLAB runtime, or roll our ownUse Misha’s mask_face; also see face masking pipeline on Marketplace. This tool uses MATLAB, which is a problem. As of last discussion this had been assigned to Misha. He had worked on it, but I do not know the status of this.
Status
colour
Yellow
Grey
title
In progress
Unknown
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-
199
195
BIDS AppsNumerousWe can only run these on BIDS-formatted data, which we don't have (much of). And they are made to be run either on a single subject or across a group of them with the change of a single flag, but we can't launch in the latter way (bulk launching N inputs into one container)
Snapshot generatorImageJ?Don’t want to just containerize WebBasedQcImageCreator. Want to re-write snapshot generation, possibly with ImageJ script. As of most recent discussion, the task of developing this script had been assigned to Rick, but that has fallen through the cracks.
Status
colourBlue
titleOpen
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-
237
193
3DSlicerUnknownSlicer has an execution model (also see examples), instances of which may be automatically convertible into commands (sans wrapper). Discussions about this are ongoing between John Flavin and Andrey Fedorov. Not sure how to containerize Slicer extensions, which users may want
ImageJfiji/fiji or build from DockerfilesImageJ is less a single tool and more of a scripting platform. As such, users would want to be able to run their own scripts for this container to be useful. Or we would need to write a ton of commands covering lots of basic functions (which I do not know, and which would never cover everything).
Status
colour
Blue
Grey
title
Open
Needs expert review
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-
198
196

Anchor
future
future
Future

TitleBlocked byWould be better
if...
if…Ticket
Anonymizer
...container
…container service could delete / quarantine existing unanonymized (nonymized?) data;
...container
…container service could provide project and/or site-wide anon scripts
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-48
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-194
PUPContainerization of / public repo for NIL Tools.
...XNAT had an internal API to add objects from XML files
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-29
; ...container service could upload outputs to other previously-created outputs
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-80
Jira
serverNeuroinformatics Research Group JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverIdcd48cfbe-36e3-3ab6-af43-5d0331c561fb
keyCS-200

Anchor
a-note-on-nil-tools
a-note-on-nil-tools
A Note on NIL Tools

Many of the existing tools employed in the NRG lab—often as pipelines on CNDA or TIP—rely on tools written by the NeuroImaging Lab (NIL). These tools are not easily containerizable for two reasons:

  1. The source code is not publicly available. This impedes publishing derivative works in several ways.
    • Dockerfiles should not reference this code. The purpose of a Dockerfile is to facilitate reproducible builds of Docker images on different machines or by different people. If the NIL tools are included, then the build may only take place on those few machines that have access to the source code.
    • The code should not be contained within a Docker image not controlled by NIL. This image would become the de facto official release of the tools. If such an image were to exist, it should by all rights belong to the owner and creator of those tools: the NIL.
  2. The tools often rely on the local availablity of atlas image files. Those altas images are available on the internal servers we have here, but are not generally available. If the atlases were included in a Docker image, its size would be many tens of gigabytes (typical sizes are tens to hundreds of megabytes). This would be prohibitive to install or develop against.

For this reason, any tool that is written using the NIL tools is not, in general, possible to containerize at this time. Exceptions are certainly possible; for instance, the lesion atlas image used only a few NIL tools, which could be copied directly into the Docker image itself. However, while this image can be created, is not distributable for reason 1. above.