Difference between revisions of "NA-MIC-Kit"

From NAMIC Wiki
Jump to: navigation, search
Line 45: Line 45:
 
* improved software quality; and
 
* improved software quality; and
 
* widespread dissemination of NAMIC products including software, documentation, data, training materials, and ideas.
 
* widespread dissemination of NAMIC products including software, documentation, data, training materials, and ideas.
Along these lines, we have had extensive discussions relative to acceptable open source standards in the NAMIC kit. We are also working with NIH, NLM and other interested parties to establish open source standards.
+
Along these lines, we have had extensive [http://www.na-mic.org/Wiki/index.php/NAMIC_Wiki:Community_Licensing discussions] relative to acceptable open source standards in the NAMIC kit. We are also working with NIH, NLM and other interested parties to establish open source standards.
  
  

Revision as of 14:13, 17 November 2007

Home < NA-MIC-Kit
Featured Software Tool
Connectivity Map
3D Slicer is a general-purpose application to load, view, analyze, process and interact with biomedical data. Slicer can be extended at run-time through plug-in modules, enabling algorithms developers and researchers to modify and specialize Slicer to a particular application. Slicer is distributed under open source license free of commercial restriction.

Overview

The NA-MIC Kit is a software platform which consists of open source software intended for application in biomedical computing. This software has been and continues to be developed by the NA-MIC team as part of an NIH National Center for Biomedical Computing program. The software is distributed under a BSD-style, open source license free of commercial and reciprocal distribution restrictions. See this presentation on the NA-MIC Kit for more information. A software engineering methodology, supported by a number of tools, is used for development and maintenance.

Target Audience

The NA-MIC Kit has been created to support a spectrum of users and developers. This includes:

  • biomedical researchers
  • algorithms developers
  • application developers
  • software toolkit developers and users; and
  • software process tools including support for building, testing, community building and software management.

The NA-MIC Kit has also been employed by users wishing to perform image analysis and visualization tasks. For example, the Slicer application is being used at | Harvard's IIC for astrophysics research. Other tools, such as CMake, are in wide use around the world in projects as disparate as KDE, one of the world's open source software projects distributed as the Linux desktop windowing environment.


Software Overview

Depending on user needs, users of the NAMIC Kit will use the following software tools. More information about each tool is available below.

  • 3D Slicer is a general purpose application. Biomedical researchers will typically use this software tool to load, view, analyze, process and save data.
  • Slicer modules, which are dynamically loaded by Slicer at run-time, can be used to extend Slicer's core functionality including defining graphical user interfaces. Modules are typically used by algorithms and application developers.
  • Application and algorithms developers may also use NA-MIC Kit toolkits and libraries. For example, the Insight Segmentation and Registration Toolkit ITK can be used to develop slicer modules for medical image analysis. The Visualization Toolkit can be used to process and visualize data. KWWidgets is a 2D graphical user interface toolset that can be used to build applications. Teem is a library of general purpose command-line tools that are useful for processing data. Finally, those individuals wishing to create and manage complex software, the NAMIC-Kit software process is available as embodied in CMake, CTest, CPack, DART and the various documentation, bug tracking and communication tools.


Open Source Software

NAMIC fully embraces and advocates the use of open source software tools and data. There are many reasons for this including

  • ease of collaboration in the spirit of scientific research (open science);
  • improved software quality; and
  • widespread dissemination of NAMIC products including software, documentation, data, training materials, and ideas.

Along these lines, we have had extensive discussions relative to acceptable open source standards in the NAMIC kit. We are also working with NIH, NLM and other interested parties to establish open source standards.


Download Central

Please go here to download software, documentation and data.

Software Packages

Go to NA-MIC-Kit-Old to see the previous NA-MIC Kit web pages.
3DSlicerLogo-V-Color-201x204.png

3D Slicer

3D Slicer is a software package for visualization and medical image computing. A tutorial for prospective users of the program can be found on the web. See our tutorials page for an introduction to the use of 3D Slicer. More...


VTK-logo-medium-res.jpg

The Visualization Toolkit VTK

The Visualization Toolkit is an object-oriented toolkit for processing, viewing and interacting with a variety of data forms including images, volumes, polygonal data, and simulation datasets such as meshes, structured grids, and hierarchical multi-resolution forms. It also supports large-scale data processing and rendering. More...


ItkLogo.jpg

The Insight Toolkit ITK

The Insight Segmentation and Registration Toolkit (ITK) is an open-source software toolkit for performing registration and segmentation. Segmentation is the process of identifying and classifying data found in digitally sampled representations. Typically the sampled representation is an image acquired from such medical instrumentation as CT or MRI scanners. Registration is the task of aligning or developing correspondences between data. For example, in the medical environment, a CT scan may be registered with a MRI scan in order to combine the information contained in both. More...

New: ITK Version 3.4 has been announced.

KWWIdgetsLogo.png

KWKidgets GUI Toolkit

KWWidgets is an Open Source library of GUI classes based on Tcl/Tk with a C++ API. This library was originally developed by Kitware for ParaView, and now has been extended in functionality and architecture thanks to NAMIC support. More...

NRRDLogo.png

Teem Libraries and Command Line Tools

Teem is a coordinated group of libraries for representing, processing, and visualizing scientific raster data. Teem includes command-line tools that permit the library functions to be quickly applied to files and streams, without having to write any code. More...


175ps

XNAT Web-based Image Informatics Server

The Extensible Neuroimaging Archive Toolkit (XNAT) is an open source software platform designed to facilitate management and exploration of neuroimaging and related data. XNAT includes a secure database backend and a rich web-based user interface.

NA-MIC is working to provide a portable, easy-to-install and easy-to-administer version of XNAT that can be deployed as part the Kit. These efforts will build on ongoing work in the BIRN community to integrate Slicer with XNAT.

BatchMakeLogo.gif

Batchmake

BatchMake is a cross platform tool for batch processing of large amount of data. BatchMake can process datasets locally or on distributed systems using Condor (a grid computing tool that enables distributed computing across the network). Some of the key features of BatchMake include: 1) a BSD License, 2) CMake-like scripting language, 3) distributed scripting via Condor, 4) a centralized remote website for online statistical analysis. 4) a user Interface using FLTK, and 5) BatchMake is cross platform. More...


CMake-logo-med-res.png

CMake The Cross-platform Make Tool

CMake is used to control the software build process using simple platform, compiler and operating system independent configuration files. CMake generates native makefiles and workspaces that can be used in the development environment of your choice. That is, CMake does not attempt to replace standard development tools such as compilers and debuggers, rather it produces build files and other development resources that can benefit from automated generation. Further, once CMake configuration files are created, they can be used to produce developer resources across the many platforms that CMake supports. CMake is quite sophisticated: it is possible to support complex environments requiring system configuration, pre-processor generation, code generation, and template instantiation. More...

New: CMake has been adopted by KDE, one of the world's largest open source software systems.

DART-Logo.png

DART Testing Server

DART is a testing server, meaning that it gathers the results of testing from clients (such as CTest) and aggregates them on the testing "dashboard". This dashboard is central to the NAMIC software process; it provides a centralized web site where NAMIC Kit developers and users can ascertain the day-to-day health of the software, and repair the software immediately if faults are discovered. It facilitates distributed development, and provides the stability that complex software such as the NAMIC Kit requires to support a large community of users. More...

View NA-MIC-Kit dashboards here:


Cdash.gif

CTest and CPack Software Process Tools

As an adjunct to CMake the tools CTest and CPack are used to test and package all components of the NAMIC kit. CTest is a testing client that locally performs testing on a software repository, and then communicates the results of the testing to DART (and other testing, dashboard servers). CPack is a cross-platform tool for packaging, distributing and installing the NAMIC kit on various systems including Linux, Windows, and Mac OSX. More...