ITK Workshop and Hackathon with the LOCI lab at the University of Wisconsin-Madison

January 30, 2013

Last week we visited the Laboratory for Optical and Computational Instrumentation (LOCI laboratory) at the University of Wisconsin-Madison.  LOCI is a leader in open source image analysis tools for microscopy and the life sciences.  In the past, there has been limited cross-pollination between the ITK and ImageJ communities, possibly because a difference in primary programming languages, Java and C++.  However, there is a large overlap in the interests and objectives of both communities, and this event is hopefully the start of a collaboration that will strengthen both projects and promote open source and open science as the standard for scientific image analysis.

 LOCI historical microscopes.

Lead by Kevin Eliceiri, LOCI is a key member of a consortium called the Open Microscopy Environment (OME).  Among the accomplishments of the OME project was creation of the Bio-Formats library (now being modularized as SCIFIO), which is the best available library for reading and writing the plethora of microscopy image file formats.

The objective of the hackathon was to create a Gerrit Code Review patch to a add a bridge to this ImageIO library in ITK.  A great deal of effort had previously been made by Gaetan Lehmann and Mark Hiner on this bridge, but we successfully ironed out a number of remaining issues.  Many thank to Curtis Reuden, a leader in the ImageJ2 effort, who was instrumental in this effort.

Progress was also made by Johannes Schindelin of MSys Git, git rebase -i, and Fiji fame on the WebITK concept. Since ITK is highly templated, in image pixel type and image dimension for example, compiling all the algorithms that may be needed with all the possible template incarnations that may be encountered can be time consuming and requires disk storage. In WebITK, when an ImageJ applications want to apply an ITK algorithm, it makes a request to a server for the algorithm with the required pixel type, etc., and the server compiles, caches, and returns the binary to the client. Johannes started this on-demand system with a Jenkins plugin to receive requests.

 Johannes is ready for the cold.

We also delivered a well-attended workshop on ITK to the broader UW-Madison community.  The hands-on workshop started with an introduction to ITK and followed with exercises on SimpleITK IPython notebooks, building and running ITK examples, level set segmentation theory and example, registration theory and example, and a review of how to get more information and contribute to the ITK community.  All of the material was delivered on a virtual machine, which can be downloaded from ITK’s Midas Community.

 New ITK community members get hands on training at their workstations.

This effort was made possible in part by funding from the National Library of Medicine (NLM).

Leave a Reply