NA-MIC-Kit
- The NA-MIC Kit consists of software that is being made available under the NA-MIC project. This software follows the NIH guidelines for open software development. In this section, we provide information about the components of the NA-MIC kit as well as supporting software tools that are being used by the software developers on the project.
- It is our intention to include in the NA-MIC kit only software that is supported and comes with a BSD style license.
- This will allow anybody (including companies) to use our software. We only ask for an acknowledgment of our contributions. For more information, look at the licenses that come with the packages.
- We make no promises or claims about what the software can be used for. We make no restrictions either.
- NA-MIC software resources include a number of toolkits, libraries, and applications. Here we provide a brief summary and links to additional information for each NA-MIC software component, as well as a set of processes that will be used for application development using the NA-MIC kit.
Introduction
If you would like to contribute software to NA-MIC, please keep in mind the following guidelines that all our software must follow:
- From the RFA:
- …NIH does have goals for software dissemination…
- …software should be freely available …
- …permit the commercialization of enhanced or customized versions …
- …include the ability of researchers outside the center and its collaborating projects to modify the source code and to share modifications …
- http://grants1.nih.gov/grants/guide/rfa-files/RFA-RM-04-003.html
- See this presentation with background information and NA-MIC policy presented at the NA-MIC co-sponsored MICCAI 2005 Open Source Software Workshop for more information about how these goals are applied.
- Our conclusion was to standardize on BSD style licenses for the NA-MIC kit.
The NAMIC Kit
See this presentation on the NA-MIC Kit.
The current version of the NAMIC kit consists of the following end-user applications and software toolkits.
Software Applications for Core 3 (DBP) Users
3D Slicer
This a set of tutorials to introduce biomedical scientists to the use of 3D Slicer.
Software Toolkits for NA-MIC Developers
The following software toolkits are being used to develop software within the NA-MIC community.
The Insight Toolkit (ITK)
- This tutorial page points to introductory materials for the ITK software.
- The Insight Journal is an Open Access on-line publication covering the domain of medical image processing.
The Visualization Toolkit (VTK)
VTK is an open source system for 3D visualization, computer graphics, and human/computer interaction. Its core capabilities include image display, volume rendering, and surface display. It also provides a data processing framework for large data including mutlti-threading and scalable, distributed processing.
KWWidgets
KWWidgets are an open source GUI toolkit with an unrestricted license compatible with the NAMIC's guiding philosophy. Slicer3 and many adjunct modules are implemented using the KWWidgets.
Teem (libraries + command-line tools)
Software Tools
NA-MIC has adopted a software methodology which is centered around an iterative development process. This approach requires frequent compilation, automated testing and multi-platform support. Software has been developed by a variety of groups to enable this approach.
Dashboards and BugTrackers
All components of the NA-MIC toolkit have an associated dashboard and bugtracker so that the current state of the toolkit is publicly accessible at all times.
Software Engineering Tools improved by NAMIC
Software Tools Used
- Doxygen
- CableSwig
- Memory Checking (Valgrind and Purify)
- StyleCheck
- SourceNavigator
- Exuberant Tags (CTags)
- Bug Tracking
- CVS (Concurent Versioning System)
- subversion
- Dart
- Version Control
- Python
- TCL/TK
- Java
- C/C++
- OpenGL
Processes
The need for the following processes was identified in early meetings of NA-MIC PIs. Each of these processes are expected to evolve with the project.
- ITK for Matlab Users
- Slicer for Developers
- Mailing lists for NA-MIC Developers
- Tracking NAMIC Contributions to Software Packages
- Test Strategy
- Software_Engineering_Thoughts_and_Links
Documents
The following documents were identified as being useful for development of software and related materials for the NA-MIC community: