ChRIS Code Lab Event Report

Rudolph Pienaar stands at the front of a conference room at the ChRIS Code Lab, explaining how ChRIS works.

On March 27 and 28, the Collaboratory hosted a code lab event for the ChRIS imaging platform at Red Hat’s Open Innovation Lab in Boston.

ChRIS (ChRIS Research Integration Service) is a cloud-based platform developed as part of a collaborative effort between Boston Children’s Hospital, Red Hat, Boston University, and the Massachusetts Open Cloud (MOC). The platform began as a project to facilitate the organization, 3D visualization, and collaboration around medical imaging among researchers. ChRISpowered by Red Hat’s OpenShift and OpenStack in the MOC—has evolved into an open source platform with the potential to democratize the development of image processing apps within an ecosystem following common standards, rather than disparate silos.

Eight upstream developers attended the ChRIS Code Lab to learn how to package their image-processing apps as plugins that can be deployed to ChRIS. ChRIS plugins are standardized via containers because containers enable easy creation of portable image processing apps that include everything needed to run in a lightweight and re-creatable environment. This involved a ChRIS plugin creation workshop as well as lab sessions where participants had the support of the ChRIS team in building, testing, and creating a demo of their new ChRIS plugins. The event closed with a demo session, with awards given to the most notable plugin demos.

Attendees included developers and researchers from Boston Children’s Hospital, Brigham & Women’s Hospital, Massachusetts General Hospital, Harvard University, Northeastern University, and CorticoMetrics, representing image-processing applications such as FreeSurfer, SlicerDMRI, and Dojo.

Preparing for Plugin Development

Before the event, we asked attendees to prepare by gathering the following:

  • A laptop (8 GB RAM recommended; should be capable of running Docker and your image processing app)
  • Docker (Visit this tutorial on how to set it up)
  • Either a piece of pre-existing image processing app to convert into a ChRIS plugin, or an idea of the type of image processing plugin you’d like to build for the ChRIS platform
  • Sample imaging data that best demonstrates the type of image processing you intend to do

ChRIS Overview

Dan McPherson gives a presentation on ChRIS in the front of a conference room with developers watching around a table.

Orran Kreiger, Director of the Massachusetts Open Cloud initiative, kicked off the event with a short introduction.

Next, Dan McPherson gave an overview presentation of ChRIS as a project. He outlined the key organizations involvedBoston Children’s Hospital, the Massachusetts Open Cloud, and Red Hatand their shared goals of improving the scale and efficiency of the platform, reducing image processing times from hours to minutes, and democratizing medical image processing. Dan then gave an overview of the technology behind ChRIS, including:

  • Red Hat Enterprise Linux
  • OpenStack
  • Ceph / Swift / Cinder
  • Docker / Open Container Initiative
  • OpenShift / Kubernetes
  • Ansible

Dan also gave an overview of the architecture of ChRIS, examples of image processing tasks in ChRIS, and how GPU-enabled plugins work.

Workshop Session

Rudolph Pienaar points at the front of the room, explaining a concept to developers seated around a conference table

After Dan’s overview, Rudolph Pienaar walked participants through a deep dive into how ChRIS works (slides) and then lead the developers through a hands-on walkthrough of creating plugins for ChRIS (slides). The developers worked through creating a new ChRIS plugin using the ChRIS “cookie cutter” template (template available).

The main focus of the ChRIS plugin workshop was to guide participants in creating a skeleton plugin for the ChRIS platform that they could then modify to include their image-processing code.

Lab Sessions and Mind Shifts

Rudolph Pienaar and a code lab participant sit together in front of a laptop

The majority of the time developers spent at the ChRIS Code Lab involved applying their new knowledge of the ChRIS platform and app containerization towards containerizing their own image-processing apps and then running them on ChRIS. Rudolph, Dan, and other members of the team involved with ChRIS were on hand to assist one-on-one.

There was a lot of excitement about the ChRIS platform.

“I had never really considered tackling the problems of scaling my application until I saw what was available with the ChRIS platform,” one attendee shared an epiphany he had at the event. It was his first experience with a computing environment of ChRIS’ scaleit opened up opportunities for his app without requiring a lot of extra effort.

Screenshot of a radiology image viewer, with sample MRI images from different angles displayed
Thinking about computing at this scale does involve a bit of a mind shift. For example, this developer in particular was concerned with optimizing the speed of the shared filesystem involved with his image processing application. It currently takes 20 hours for a run of the application on a single worker system. Optimizing that filesystem read might save a minute or two. Running the application across 100 worker systems via a platform like ChRIS, however, would bring the 20 hour processing time down to a few minutes.

Beyond the mind shift of the image processing at scale that ChRIS provides, developers at the code lab also shared excitement about the workflow and user interface possibilities ChRIS provides. For example, ChRIS can launch files in a number of different viewers.

Demos and Awards

After creating their ChRIS plugins, participants gave demo sessions of their software. Awards were given for demos in three categories:

  • Most complex existing image processor to port – Paul Wighton for his FreeSurfer plugin
  • Best integration with ChRIS – Ai Chung for her FSL plugin
  • Most novel idea – Anik Bhattacharjee for his TensorFlow plugin

ChRIS Code Lab Materials

Missed the Code Lab but want to learn more? We’ve made the materials from the Code Lab available below:

Slides

Code

And always, you are welcome to contact us with any questions or feedback you have about this event!