2006 Scientific Report NA
- 1 Overview
- 2 NA-MIC Software Process
- 3 Software Infrastructure
- 4 Upcoming NA-MIC Kit Milestones
- 5 Training and Dissemination
The vision of the NA-MIC Kit is to provide an Open Source set of software tools and methodologies that will serve as the foundation for medical image computing projects for both academic and commercial use. Key elements of this vision are:
- Unrestrictive License Users of the Kit are free to distribute their derived works under any license suitable to their needs.
- Cross Platform This software set can be adapted to the best available price-performance computer systems for any particular use.
- Sophisticated User Interfaces Application domain scientists can interact efficiently with complex algorithms while leveraging their experience with common desktop computer software.
- Extensible Algorithmic Framework New techniques can be quickly integrated into a working system without tedious and error prone re-implementation of core functionality.
- Consistent and Manageable Engineering Methodology Developers and users can rely on accurate and well documented behavior from all the parts of the Kit.
- Creation of a Sustainable Community Users are actively involved in the design process of the Kit. Documentation, training materials, and hands-on sessions are available and well publicized to the community.
NA-MIC is assembling software that reflects these qualities and dedicating the Center's resources to transform satisfactory components to 'Best of Breed' solutions to meet the challenges of the medical image computing community. While focusing first on the needs of our DBP users, the integration of the NA-MIC Kit tools and the enhancements currently under way will have broader applicability to other image analysis domains within biomedical computing.
NA-MIC Software Process
The significant development effort of participating sites is reflected in the activities described in the NA-MIC Programming and Projects weeks, reported elsewhere in this document. A major deliverable associated with this ongoing development is 3D Slicer version 3, also known as Slicer3. This tool assembles the NA-MIC Kit elements into a modern end-user application environment. It is important to note that the pieces of Slicer3 are designed for multi-use, and many of these pieces are expected to have significant use outside Slicer3.
CMake/CTest/CPack and Dart2
While the CMake and CTest portions of this software suite existed before NA-MIC and are currently being enhanced, CPack represents a new effort specifically developed to address the needs of the computing community using Slicer3 as a driving initial application. CPack provides a cross-platform mechanism for installing software applications using the native facilities of the target system (e.g., the InstallShield mechanisms on Windows or RPM packages for RedHat Linux). Dart2 is a second generation database-backed web server used to collate the results of software testing and provide sophisticated presentation models that permit developers to isolate software quality issues quickly across literally dozens of combinations of computer systems, compilers, and support libraries.
- Kitware (Andy Cedilnik), GE (Dan Blezek, Jim Miller)
This free, cross platform user interface toolkit is undergoing significant enhancement as part of the NA-MIC effort. After extensive review of alternative UI tools, KWWidgets was adopted as the standard for the NA-MIC Kit. Efforts over the past year have been directed not only to delivering these enhancements, but also on educating the NA-MIC developer community in the most effective ways to use and extend KWWidgets.
- Kitware (Sebastien Barre)
A major implication of the "Extensible Algorithmic Framework" design goal is the need to support a well defined and reusable pathway for implementation of new code. The Slicer3 Execution Model supports this goal by providing a methodology by which algorithms implemented as standard ITK classes can be used as either command line executables or as components of an interactive point-and-click environment without extensive rewriting by the algorithm developer. By adopting a standard XML syntax for expessing the options for an algorithm, the Framework can provide a set of tools to help the developer automatically make programs with compatible syntax; the Framework also helps programs like Slicer3 interface to these command line executables in a consistent manner.
- GE (Dan Blezek, Bill Lorensen, Jim Miller)
The NA-MIC Kit builds on tools used widely in the community. Over the past year, our efforts have been focused principally on the integration and critical enhancement of these tools.
After extensive discussion and review, NA-MIC selected three categories of software licensing for the NA-MIC Kit:
- BSD-compatible software licenses are required for core pieces of the NA-MIC Kit.
- NA-MIC Kit software can rely on licensed libraries to allow static linking of executables, but is otherwise licensed under the LGPL.
- Support tools (compilers, debuggers, etc.) can be licensed under any Open Source license.
Software developers are encouraged to consider the implications of creating derived works from software in any of these three categories and to abide by the terms and conditions of each license.
This policy assures developers who create derived works based on the NA-MIC Kit that they will have the flexibility to select the appropriate software license for that work. For example, this policy would permit academic users to distribute binary-only versions of software in advance of publication or commercial users to incorporate parts of the NA-MIC Kit into their products.
Ownership of contributions to the NA-MIC Kit remains with the party that contributes them (that is, the authors or institutions that developed the the contributions still hold the copyright). However, for these to be included in the NA-MIC Kit, the contribution must be made available under licening terms compatible with the intended use, as described above.
- Isomics (Steve Pieper), Kitware (Luis Ibanez), Harvard (Ron Kikinis, Gordon Kindlmann)
As a core set of image processing, segmentation, and registration C++ code, ITK has achieved remarkable world-wide acceptance and widespread use in advanced applications. Within the NA-MIK Kit, ITK is the standard method for Core 1 contributors to computationally express their algorithmic innovations. To address the needs of our DBPs, ITK has been enhanced by NA-MIC to include native support for image direction information, diffusion-weighted images (DWI), diffusion tensor images (DTI), and variable length vector valued images. In addition, new statistical code has been added to support the needs of fMRI analysis in ways that have not been available in any other numerical library meeting our licensing requirements. All the enhancements made by NA-MIC are contributed back to the ITK community to benefit other projects.
- GE (Bill Lorensen, Jim Miller), Kitware (Luis Ibanez, Karthik Krishnan)
VTK is the de facto standard for visualization in medical imaging as well as a wide range of application domains. As a mature system, VTK has not required extensive reworking to meet the needs of the NA-MIC Kit, but NA-MIC has benefited from the significant improvments made available by the VTK community. Recent examples include the addition of sophisticated interactive 3D Widgets, hardware accelerated volume rendering, and improved pipeline infrastructure. As a sophisticated user of this technology, NA-MIC provides feedback to the VTK developers on enhancements and usability; in particular, the release of version 5 of VTK exposed interoperability and backwards compatibility issues, which NA-MIC is helping to address, to the benefit of the entire development community.
- Kitware (Mathieu Malaterre, Sebastien Barre), Harvard (Nicole Aucoin, Katie Hayes, Haiying Liu), Isomics (Steve Pieper)
In the NA-MIC Kit end-user application software environment, improvements to VTK and ITK are directly made available to the application scientist community. Examples of these improvements from the past year include:
- ITK-based image I/O capability allowing read/write of a wide variety of raw and compressed image file types,
- ITK linear and non-linear image registration tools,
- Support for DWI and DTI images in the emerging standard NRRD file format, and
- A host of engineering improvements including bug tracking, nightly builds, improved test scripts, and other general software engineering.
In the past year these and other 3D Slicer improvements have been disseminated through release of Slicer versions 2.5 and 2.6, respectively. These updates have been featured in several educational events conducted by the Training and Dissemination Cores.
- Isomics (Steve Pieper, Alex Yarmarkovich), Harvard (Nicole Aucoin, Katie Hayes, Gordon Kindlmann, Raul San Jose Estepar, Wendy Plesniak, Haiying Liu), MIT (Lauren O'Donnell, Kilian Pohl), GE (Bill Lorensen, Jim Miller), Kitware (Luis Ibanez, Andy Cedilnik)
Slicer 3 Base Development
The NA-MIC development group, with representation from user communities, algorithm developers, and toolkit developers, has provided the ideal medium for a substantial re-work of the Slicer application. Dubbed Slicer3, this effort involves the migration of Slicer functionality into the newer generation of tools including CPack, KWWidgets, the Execution Model, and other NA-MIC and non-NA-MIC technologies. The Slicer3 Base comprises a layered collection of software consisting of:
- a Data Model supporting multiple undo/redo and a hierarchical linear and non-linear tranformation structure together with XML serialization/deserialization capabilities;
- a set of Logic Classes that operate on the data model using VTK and ITK classes
- a set of GUI Classes consting of compotites of standard and custom KWWidgets and the code to apply user actions to the Logic and MRML structures.
The Slicer3 Base code uses a modern Command/Observer design pattern to ensure that there are no code dependencies between, for example, the data model and the logic classes that manipulate them. Slicer3 also takes advantage of the collective experience of the NA-MIC development group in the design and implementation of the coordinate system management code (this is an area that is often poorly or incompletely implemented in medical image computing codes.
- Isomics (Steve Pieper, Alex Yarmarkovich), Harvard (Nicole Aucoin, Katie Hayes, Wendy Plesniak, Mike Halle), GE (Bill Lorensen, Jim Miller, Dan Blezek, Xiaodong Tao), Kitware (Will Schroeder, Sebastien Barre, Mathieu Malaterre, Luis Ibanez, Andy Cedilnik)
Pipeline and Grid Interfaces
The strategy adopted by NA-MIC is to treat the Pipeline and Grid interfaces in as modular a fashion as possible but using the same Execution Model Framework described above as the basis for interactions between the Grid and Pipeline resources and the Slicer3 environment. This approach exposes the functionality to the end user as a seamless extension of the functionality running locally. Ongoing development will be required to make these diverse elements adhere to the standard environment.
Grid Computing Interface
The NA-MIC community makes regular use of the Data Grid functionality provided through collaboration with the Biomedical Informatics Research Network (BIRN) collaboration. Data sets from the DBP groups are uploaded to the BIRN for sharing and analysis by NA-MIC Core 1 and Core 2 researchers using one of the several data access interfaces provided by BIRN (web interface, command line tools, and/or a Java-based programmatic interface). A new set of tools under development called 'gi' (for Grid Interface) provides a wrapper around the community-standard Condor grid tools for use by NA-MIC.
- UCSD (Brendan Faherty, Jeff Grethe), GE (Bill Lorensen)
As envisioned in the original NA-MIC proposal, work has been ongoing to both access Slicer-based functionality from within the LONI Pipeline and to access LONI Pipeline functionality from Slicer. This level of interoperability is being achieved by adopting a common argument syntax for all command line execution modes for new Slicer modules and for the pipeline client itself.
- UCLA (Mike Pan, Jagadeeswaran Rajendiran)
Upcoming NA-MIC Kit Milestones
We anticipate that much of the base functionality of Slicer3 and the aspects of the related projects needed by Slicer3 will be substantially completed during calendar year 2006. At the January 2007 NA-MIC All Hands Meeting, we plan to begin end-user training sessions where DBP researchers and other users will be exposed to the new code. By this point, significant portions of the ITK-based NA-MIC Core 1 algorithm development is expected to be usable directly from withing Slicer3. Over the course of 2006, there will be periodic development releases of alpha and beta versions of Slicer3 to the development community as well as periodic developer meetings to work out specific design challenges. In particular, the summer NA-MIC Programmer/Project week in June of 2006 will include several projects aimed at completing substantial portions of Slicer3. The entire development process, including the source code repository, will remain publicly accessible so that end users and collaborators can monitor the progress.
Training and Dissemination
NA-MIC is commited to developing a robust, sustainable community of developers and users for the NA-MIC Kit and significant effort and resources have been dedicated to developing training material and holding workshops and tutorials. A carefully selected set of target audiences and venues were used to get ensure that this material was available to the groups most likely to benefit from the current NA-MIC Kit technology. In addition, all materials including software, data, training presentations, and even participant feedback are made publicly available on the NA-MIC wiki for the benefit of the community. These resources serve as a gateway through which potenial new users are introduced to the richness of the NA-MIC Kit resources, and NA-MIC leadership and other participants are encouraged to provide pointers to these pages when presenting or interacting with potential users or collaborators. As such, these resources are the critical part of our dissemination and training strategy.