January 2012 – Recent Releases

Introducing Visomics

Kitware is pleased to announce Visomics, an exciting new open-source tool for the exploration of biological “omics” data with a focus on genomics, proteomics, transcriptomics, and metabolomics. Visomics is an integrated, end-to-end bioinformatics tool that incorporates data ingestion, analysis and visualization tasks for a variety of data types and sizes. As a result, Visomics provides researchers with powerful statistical methods, intuitive visualizations, and pre-existing chemical pathway diagrams necessary for the analysis and evaluation of relationships and behaviors among large numbers of analytes and biomarkers.

A collaborative effort between Kitware, Inc., the Hamner Institute for Health Sciences, the University of Washington, and the University of North Carolina at Chapel Hill, Visomics is a flexible, user-friendly tool that can be used by developers and researchers without requiring expert knowledge.

Clinical researchers are already using Visomics to perform deep analysis in research areas including reproductive and perinatal health, cardiovascular disorders, and breast cancer with the goal of gaining new insight into disease pathogensis and developing preventative, diagnostic, and therapeutic treatment strategies.

Through facilitation of data analysis and mining activities for hypothesis generation and testing, Visomics aims to enable more widespread use of omics data and ultimately lead to improved, personalized medicine. To learn more about Visomics, visit www.visomics.org.

ITK 4.0

ITK 4.0 was released on December 20th, 2011 after 18 months of refactoring efforts, generously sponsored by the National Library of Medicine (NLM) with funds provided by the American Recovery and Reinvestment Act (ARRA).

The main features of this new release include Apache 2.0 licensing, removal of the patented directory, code modularization, a new simplified layer “SimpleITK”, new frameworks for registration and level sets, and a newly-refactored FEM framework. There is also improved support for video processing including bridges to OpenCV and VXL;and updated support for DICOM-based on GDCM 2.0, and large microscopy images.

A general code cleanup of the toolkit took place with a focus on supporting modern C++ compilers and removing code intended for obsolete ones.

Modularization – ITK’s source tree was restructured into modules with limited dependencies among them. The main goals of the modularization are to facilitate the management of further growth of the toolkit; improve the software quality by facilitating local computation of quantitative measures of quality, such as code coverage; facilitate the addition of modules from community contributions; better insulation from third party libraries; improved management of optional components, packaging, and redistributions of subsections of ITK.

SimpleITK – A simplified layer, SimpleITK, was built on top of ITK to ease the use of ITK in rapid prototyping, education, and interpreted languages. SimpleITK is an easy-to-use, object-oriented tool that features a C++ library and binary distributions for Python and Java. Its procedural interface hides the ITK C++ templates from its API. SimpleITK is open-source software distributed under the Apache 2.0 license.

Additionally, due to the absence of C++ templates in its API, it is now possible to use SWIG to wrap SimpleITK for many different languages. Current support is available for Python, Tcl, Java, R, and Lua.

Registration Framework – ITK’s new registration framework was contributed by the PICSL Laboratory of the University of Pennsylvania. The new image framework, largely based on the features of the ANTS tool developed at PICSL, provides better support for dense deformation fields including a new transform that encapsulates a dense deformation field; composite transforms (grouping multiple transforms into a single one); symmetric registration (where the fixed and moving images make unbiased contributions to the registration), multi-threaded metrics, a new Demons metric, point set registration methods, a new mutual information metric, diffemorphic deformable registration, and parameter estimation for transform parameter scaling.

Level Sets Framework – A new level sets framework was contributed by the Megason Lab at Harvard Medical School. The main features of the new framework are implicit level sets, the flexible addition of level set terms via a new term container, support for large numbers of level sets running simultaneously, the introduction of geometrical constraints, region-based level sets, new support for dense and sparse level set representations, and representations for Whitaker, Shi, Malcom, as well as, Chan and Vese.

FEM Framework – The Finite Elements Methods (FEM) framework was refactored by a group at the University of Iowa. This refactoring made the framework more consistent with the rest of the toolkit. It also made it possible to deploy a fully-functional FEM infrastructure that can be used to solve actual mechanical and modeling problems. The code changes included the removal of incompatible smart pointers, improved encapsulation, removal of IO functionalities from filters, the addition of SpatialObject and IO support for FEM and related elements. These changes were accompanied by corresponding modifications in the FEM deformable registration framework.

DICOM – Support for DICOM files was improved in the toolkit. In particular, GDCM was upgraded to version 2.0 and support for RT-Structs was added.

Statistics Framework – The statistics framework that was refactored around 2007 has now been made the official framework. The main changes include conversion of calculators into filters, making it so samples are not DataObjects, and the addition of better traits and types, especially for 64bit machines and large samples.

C++ Modernization – Many changes were made across the toolkit to take advantage of modern C++ features. This involved the elimination of further support for several old compilers, including Borland 5.5, Visual Studio 6.0 and 7.0, Sun CC before version 5.9, SGI compilers, MetroWerks, GCC previous to 3.4, and the entire Cygwin platform. Support for 64 bits was improved across the toolkit, particularly for the Windows platform.

Filename extensions of templated implementation files (.txx) were replaced with (.hxx) in order to be more consistent with standards of IDE tools.

Software Process – The Software Development process for ITK was modernized through migration from CVS to Git, adoption of the code review tool Gerrit, development of cdash@home for distributed testing of patches, and adoption of a new process for dealing with data for testing.

Insight Journal – The Insight Journal was also adapted to take advantage of these new software tools. As a result, it is now possible to submit contributions to the Insight Journal by pointing to existing Git repositories in which the code contribution is continuously being developed. Several features were added for encouraging participation including support for quick comments and rating.

Doxygen Documentation – Doxygen documentation generation has been improved to include groups and modules, wiki example links, and diagrams.  An important addition is the support for crowdsourcing fixes from the community by enabling them to edit the doxygen web pages directly; such edits create Gerrit patches that are directly submitted to developers for review and subsequent merge into the codebase.

Wrapping – ITK wrapping was improved at two different but related levels. On one hand, WrapITK was embraced as the standard method for wrapping the toolkit to be used from languages such as Python and Java. On the other hand, the SimpleITK layer, wrapped via SWIG, provides an alternative option for using ITK from many languages.

WrapITK – The infrastructure for wrapping ITK was updated to use WrapITK 3.0.  Wrapping for Tcl was deprecated, and an effort was made to improve support for Python and Java.

Midas 3.2

Midas 3.2 is an extensive redesign of the platform that provides greater flexibility, robustness, and speed. This new version of Midas is built on a new PHP framework, Zend, and the core system has been completely refactored to provide better stability and greater modularity. The web interface has also be completely redesigned to provide quicker user interaction and overall a better user experience.

Some of the main features of the 3.2 release are easier installation (click and configure); support for PgSQL, MySQL and other common databases; a redesigned user interface; an improved search system; a new plugin mechanism for modularization; and an improved software process with GIT integration, coding style, and code coverage.

Midas 3.2 allows for easy upload, access, and viewing of imported data, such as videos. The sidebar shows user-added metadata for quick search and retrival.

We encourage users to download and try the latest release and join the Midas community.

Kitware’s public instances of Midas are available at http://insight-journal.org/midas and http://midas.kitware.com, hosting hundreds of freely available scientific and medical datasets. For more information regarding Midas, please visit http://www.midasplatform.org.

CMake 2.8.7 Released

CMake 2.8.7 was released on December 30, 2011 and is now available for download on www.cmake.org. This release includes several notable improvements and bug fixes.

Support has been improved for Eclipse and incremental updates were made to the AUTOMOC feature, which was added in the previous release. CMake 2.8.7 also contains additional cryptographic hash implementations for file(…) and string(…) commands, including SHA1, SHA224, SHA256, SHA384, SHA512. There is also a new module, DeployQt4, and additional options, LINK_PUBLIC and LINK_PRIVATE, for the target_link_libraries command.

Like the previous release, there are not pre-built binaries for SunOS. However, there are now two sets of installers for the Mac; the “Darwin” versions are “ppc;i386” universal binaries for Mac OSX 10.4 and later. The “Darwin64” versions are “x86_64;i386” universal binaries for 10.6 and later.

A complete list of changes and bug fixes is available in “CMake 2.8.7 Available for Download” by David Cole on the Kitware blog, or can be derived from the CMake git repository. Please try this version of CMake on your projects and report any issues to the list or the bug tracker.

Questions or comments are always welcome!