The Insight Toolkit
Kitware is one of the lead developers of the Insight Toolkit (ITK) for medical image segmentation and registration. ITK provides state-of-the art methods and is used in cutting-edge research and commercial products. It is a high-quality and accessible software system through its open-source license and test-driven development methods. As a vehicle for innovation and sharing, it provides a foundation for open science, but written in C++, it has a limited user base. We have developed a method for delivering ITK’s methods over the web, enabling its methods to be interactively applied by users with no programming experience, enabling ITK to realize its full potential in promoting open science.
Interactive figures for reproducible research
A primary tenet of the scientific method is that conjectures require verification and proofs require reproducibility. Therefore, science that involves analytic software requires publication of the source code and the input data so that results can be verified and reproduced with only a reasonable amount of effort.
Interactive Figures are gaining interest as a basis for open science. Traditionally, results in publications are presented in static figures that contain author-specified interpretive visualizations of results. Interactive figures allow a reader to manipulate how computational results are generated and visualized, thereby providing an opportunity for the immediate verification of the science, in addition to necessary sharing of data and code. Ideally, interactive figures can also enable a user to process and visualize new data. Kitware has broken ground on the concept of Interactive Figures through collaborations with the Optical Society of America to develop the Interactive Scientific Publishing (ISP) system. This concept has caught traction with progressive journals like F1000.
ITK-based Interactive Figures on the Web
With the Internet becoming the new standard for scientific publication, we have brought the concept of Interactive Figures to web browsers, particularly for ITK-based algorithms and applications.
An example Interactive Figure using ITK: anisotropic diffusion research
An excellent illustration of an ITK-based Interactive Figure has been developed in conjunction with an article published in the Insight Journal. In that article, the authors proposed improvements to ITK’s anisotropic diffusion image filter. Anisotropic diffusion is used in medical imaging and multiple other fields to reduce the appearance of noise in images while preserving fine details. The authors’ introduce a new implementation of anisotropic diffusion, based on a numerical method from discrete geometry, Lattice Basis Reduction (LBR). The proposed method is computationally efficient while avoiding the generation of undesirable artifacts in images. We created a web page with interactive versions of the figures from this article.
This Interactive Figure is dynamically generated within a reader’s web browser, utilizing the same ITK code and data presented in the article. Interactive Figure presets can be selected by the reader to exactly recreate the figures in the article. The reader can also modify the parameters of the algorithms, visualize the effects of those changes, and thereby gain new insights into the operation of the method. Furthermore, we have extended the concept of Interactive Figures to allow readers to upload their own data and run the authors’ algorithms on it
Technical Details Behind Interactive Figures: Cross-Compilation with Emscripten, CMake, and Docker
Interactive figures not only enhance reproducibility and scientific understanding, but they also engage the reader, leading to a viable new extension to traditional publishing methods.
Furthermore, we are constantly evolving new applications of this modular, interactive technology. For example, the modules that comprise an Interactive Figure can also operate as a downloadable extensions as applications are being developed and even as applications are running. In particular, in ITK this modularity is being promoted as “Remote modules” which can be accessed and configured using CMake as ITK is built. Additionally, we are creating methods for wrapping these modules so that they are accessible via Python, further extending the reach and impact of ITK in the scientific community. On another front, we are also working on embedding these modules into “big data” analysis with systems like Romanesco, enabling ITK to contribute to solving problems that span terabytes of data.
The future is bright and exciting for ITK and open science. If you are interested in taking advantages of these developments in you research or product development, Kitware is here to help.