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. ChRIS—powered 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
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 involved—Boston Children’s Hospital, the Massachusetts Open Cloud, and Red Hat—and 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
- Ceph / Swift / Cinder
- Docker / Open Container Initiative
- OpenShift / Kubernetes
Dan also gave an overview of the architecture of ChRIS, examples of image processing tasks in ChRIS, and how GPU-enabled plugins work.
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
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’ scale—it opened up opportunities for his app without requiring a lot of extra effort.
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:
- ChRIS Code Lab Slide Deck given by Dan McPherson
- CHRIS – A Service for Collecting, Organizing, Processing, and Sharing Medical Image Data in the OpenCloud given by Rudolph Pienaar
- CHRIS – Everything you always wanted to know about plugins… but didn’t dare ask… given by Rudolph Pienaar
- ChRIS Cookie Cutter App – template for creating new ChRIS app plugins
And always, you are welcome to contact us with any questions or feedback you have about this event!