BioImage Suite: An integrated medical image analysis suite: An update

BioImage Suite is an NIH-supported medical image analysis software suite developed at Yale. It leverages both the Visualization Toolkit (VTK) and the Insight Toolkit (ITK) and it includes many additional algorithms for image analysis especially in the areas of segmentation, registration, diffusion weighted image processing and fMRI analysis. BioImage Suite has a user-friendly user interface developed in the Tcl scripting language. A final beta version is freely available for download 1


Introduction
Biomedical imaging and image analysis technology have made substantial progress over the last 20 years. However, a major bottleneck that blocks the full use of these techniques is still the relative lack of easy-to-use, readily-available software. The key reason for this problem is that while sophisticated image analysis methods are constantly being developed, these methods are not being translated into user-friendly well documented software packages. Part of the reason, in our experience, is that software development obeys the 80/20 rule which suggests that 80% of the work is done in 20% of the time. While 80% of the package makes the methods usable in the hands of its developers and perhaps closely supported collaborators, it is insufficient for making the software truly available to a wider audience.
Over the last ten years, we have developed a body of software collectively known as BioImage Suite as a result of the needs of different projects in structural [3] and functional neuroimaging, cardiac image analysis [13], image guided epilepsy neurosurgery [18], abdominal fat quantification [23], targeted imaging of angiogenesis and diffusion tensor imaging [3]. BioImage Suite is in wide use in the Yale Image Analysis and Processing Group, the Yale Magnetic Resonance Research Center, the laboratories of local close collaborators, and is freely available for download. While the software development has focused on the analysis of human images, it has also been applied to mouse CT and MRI and to a lesser extent optical microscopy data.
There are a number of software packages available for medical image analysis that provide some overlapping capabilities; some are commercial but most are research-based. The neuroimaging packages such as Slicer [19], Brainsuite [17] and SPM [20] are the best developed. AIR [1] is limited to image registration. The general purpose commercial software package Analyze [2] has strengths in visualization, segmentation, registration and measurement.

A Brief Description
BioImage Suite is developed using a combination of C++ and Tcl in the same fashion as that pioneered by VTK [15]. In practice, most of the underlying computationally expensive algorithms are implemented in C++ (as classes deriving from related VTK or ITK [5] classes) and the user interface is for the most part developed in the Tcl/Tk scripting environment (using the [Incr Tcl/Tk ] and Iwidgets extensions. Further, a custom written C+ + wrapper around the Tk graphical user interface library enables the creation of complex graphical components from C++. BioImage Suite is a collection of programs which utilize the same underlying code infrastructure (a rough count using the UNIX 'wc' command gives an estimate of about 300,000 lines of code -naturally this is an overestimate as it includes blank lines, comments etc.) and provide the same look and feel but are tuned to specific applications. This modular design encourages the creation of re-usable components (e.g. viewers). The current version of BioImage Suite consists of (a) a number of a graphical applications (GUI) and (b) a set of command-line utilities thus providing support for and batch-mode processing. All software has been compiled and tested primarily on Linux and MS-Windows, and to a lesser extend on Mac OS X and a variety of other UNIX platforms.

Algorithms currently in BioImage Suite
In addition to the extensive set of methods available within the above libraries, we have implemented and customized the following algorithms: Pre-processing: A custom reimplementation of the bias field correction method of Styner et al. [22] has been performed which incorporates automated histogram fitting for determining the appropriate numbers of classes, and additional spatial constraints. Voxel Classification: Methods for voxel classification are available using simple histogram, single channel MRF and exponential-fit methods [12]. Deformable Surface Segmentation: BioImage Suite has a strong and unique interactive deformable surface editor tool [13] which allows for easy semi-interactive segmentation of different anatomical structures and embeds common snakelike deformable models. Registration: BioImage suite includes a clean reimplementation of the work of Studholme et al. [21] for rigid/affine registration using a highly efficient conjugate gradient optimization scheme. These methods have been successfully used to align serial MRI data as well as multimodal data (e.g. CT/PET/SPECT to MRI). It also includes a full complement of non-rigid point-based registration methods [3], intensity-only and integrated feature intensity methods [10]. Diffusion Weighted MR Imaging: BioImage suite has methods for computation and visualization of basic voxel-wise measures from diffusion tensor images (e.g. fractional anisotropy) as well as fiber tracking methods using traditional (streamlining) and novel (anisotropic front propagation) methods [3]. Cardiac Image Analysis: The shape-based cardiac deformation method of Papademetris et al. [13] is included in BioImage Suite (but requires in addition the presence of the Abaqus finite element package [6]). fMRI Activation Detection: BioImage Suite has a clean and fast reimplementation of the standard General Linear Model (GLM) [4] method for fMRI activation detection, in addition to tools for performing region of interest analysis (ROI), multisubject composite maps, etc. The registration tools (described above) can be used for motion correction, distortion correction and intra-subject registration.

Key Components
An illustration of several key components of BioImage Suite are shown in Figure 1. These include the two core viewers (the mosaic multiple slice viewer and the orthogonal viewer); the landmark tool which includes common functionality for drawing and processing curves on any given slice (or on volume renderings and surfaces) as well as simple ROI analysis; the surface processing tool which includes functions for surface decimation and smoothing, marching cubes iso-contour extraction etc. and the colormap editor for manipulating how images are displayed. In addition there are common controls grouping related algorithms such as the histogram control, the image processing control and the segmentation/bias field correction control also shown in Figure 1. These components are building blocks for creating application specific programs.

Graphical Applications
The components are linked together to yield several individual applications including the Brainsegment and Brainregister tools for brain segmentation and registration. The latter also includes the multisubject compositing tool for creating composite functional maps, and the distortion correction algorithms for fMRI. The Surfaceeditor tool is for manual/interactive segmentation of both brain, cardiac and abdominal image data. In surfaceeditor, each surface consists of a stack of curves (one per slice) and each curve is parameterized using a non-uniform b-spline. The user is able to edit the b-spline in a curve editor window and have the surface updated interactively. These techniques enable the generation of surfaces which are smooth in all three orthogonal directions, unlike the more common slice-by-slice editing packages which typically display the result in only one orientation. The ElectrodeEditor tool is used for intra-cranial electrode localization in epilepsy neurosurgery planning. The fMRITool includes both individual and group fMRI activation analysis methods. The DTITool is a diffusion weighted MR image analysis package and Vessel is a tool for vessel extraction from angiography images. A recent addition is the DataTree tool which provides a database-like interface to large datasets, and is especially useful in a surgical planning context. All of these programs have the same look and feel as they use much of the same underlying components.

Command Line Tools
All of the registration tools in BioImage Suite, plus some support utilities, can be accessed through command line programs, in addition to being available in the Brainregister graphical tool. We provide these because: (a) they enable access to the registration algorithms from custom software packages already in use in other laboratories and (b) given that nonlinear registration is a computationally intensive task, the command line tools are more easily used for batch mode processing. A custom batch mode registration generation script was also developed and takes as input a well defined setup file consisting of reference and target images/surfaces. The batch file generates as output a standard Unix makefile consisting of all the commands that need to be executed for registration with appropriately defined dependencies. Using the make utility enables us to leverage its flexibility for partitioning jobs into multiple processors (using the -j flag) and recovery after system crashes (the dependency mechanism of the makefile enables the process to restart exactly where it was stopped as a result of a system crash, etc.).

Surgical Environment Integration
BioImage Suite can integrate with the BrainLAB VectorVision Cranial image-guided neurosurgery system via VectorVison Link (VVLink), a custom designed client/server architecture [14,9], which extends functionality from the Visualization Toolkit. VVLink enables bi-directional data transfer of image data sets and visualizations and tool positions in real time. VV Link was designed explicitly with BioImage Suite as it's target client, however the interface used is generic and other applications can take advantage of it. , and additional software -see the webpage for more details. We utilize extensively virtual machines running under VMware Server [16] for development and testing on different operating systems. In addition, the BioImage Suite subversion repository is hosted in a virtual machine to make it more easily migratable to a different server, should the need arise.
The next release candidate version will be made available in early July 2006. We anticipate a first official release under the GNU General Public License a few weeks later, at which point source code will also be made publicly available. Support for users is available at the BioImage Suite forum (accessible from the main webpage). An early version of the BioImage Suite manual is also available; completion of the manual (aside from final testing) is the major task remaining prior to the first ull official relase.

Open Source Licensing Details
Most of the code in BioImage Suite will be made available under the GPL. A single core library will remain close source for now as it contains (i) propertiary code needed for Vector Vision Link integration (ii) code derived from Numerical Recipes which may not be released as open source and (iii) some code derived from the work of researchers who have not yet released their work under an open source license. This library consists of less than 5% of all code in BioImage Suite and practically all the interesting/useful pieces of code in the software will be made freely available. Eventually we hope to eliminate the closed source library requirement, however it is currently the best compromise solution that enables us to freely distribute the software.

Future Plans
We are currently working on the implementation of a database front-end to BioImage Suite -the Data Tree Manager [8] is the first version of the user interface for this. Ongoing work also aims to include additional algorithms in the BioImage Suite core as was discussed in [11].