From NAMIC Wiki
Jump to: navigation, search
Home < Service


PI: Will Schroeder, Ph.D., Kitware, Inc.


The Service core is responsible for the design and operation of the collaborative computing infrastructure that supports the research and outreach activities of the NA-MIC community. This infrastructure enables NA-MIC research to have a significant and lasting impact on the broader field of medical image analysis. The elements of this design are embodied in a community-based infrastructure that encourages research and development and promotes open science.

Community-based infrastructure, as its name implies, addresses the demands of developers and users while maintaining the ideals of the community. It enforces standards for coding style, documentation, and testing. Open science is achieved when the workproduct created by individual members or groups within the community is sufficiently documented and shared such that it can be replicated and used as a foundation for derivative work. The cost of participating in this open environment, however, must be minimized. When the burden of the infrastructure outweighs its benefits, the growth of the community and the spread of open science are hindered. The NA-MIC infrastructure offers clear benefits to developers and users while promoting the ideals of NA-MIC and open science, posing minimal burden on the community. The integrity of this infrastructure is maintained by our commitment to:

Focus Areas

  1. Maintain open licensing
  2. Support the delivery of quality software
  3. Support the development of useful algorithms
  4. Gather and respond to feedback from the community
  5. Facilitate documentation, software, and data-sharing

Maintain Open Licensing

Successful, community-based software requires the active involvement of developers and users with priorities that span the essential components of software development, .e.g., coding, algorithms, testing, and documentation. No single organization can meet all of those priorities with equal vigor: academics emphasize algorithms, programmers emphasize coding, teachers emphasize documentation/training, and industry emphasizes testing. The software must be distributed under a license that is suitable for both academics and industry. This is essential to attracting the diversity the platform needs to succeed.

The NA-MIC Kit is distributed under a BSD-style license, which permits royalty-free use of the NA-MIC Kit software and data for both academic and commercial applications. Licensing terms are clearly posted in the headers of the NA-MIC Kit code, in the text on NA-MIC websites, and in the “About” message of NA-MIC Kit applications. Code that infringes on patents or contains viral licenses is vigilantly avoided. All members of the NA-MIC community agree to be bound by the terms of the license for the good of the community and open science.

Support the Delivery of Quality Software

Large-scale, collaborative software development demands rigorous software processes to support the many activities that combine for effective software development. These include requirements generation, implementation, testing, documentation, distribution, and reports generation. Once established, these processes must be enforced. To maintain the integrity of the NA-MIC platform, we have identified champions, a common practice in large-scale software development, which have the authority to identify and correct deviations from standard practices. Our experience with VTK and ITK shows that novice developers occasionally resist standard practices because of the perceived coding overhead. Consequently, our infrastructure is designed to minimize the duration and magnitude of that overhead to encourage participation and ensure that the benefits of our software processes can be fully realized.

Support the Delivery of Useful Algorithms

NA-MIC facilitates the development of useful algorithms by fostering open communication and providing specialized infrastructure for algorithms validation, including distributed computing for parameter space explorations, algorithm explorations, algorithm comparisons, and longitudinal studies.

Gather and Respond to Feedback

Fostering communication early in the development process identifies synergies, avoids duplication of effort, and maintains a common design pattern. The key steps to guiding project development are: (1) share ideas, (2) collect votes from the community to establish which ideas are favored, and (3) respond, implement, and then repeat the process.

Facilitate the Sharing of Documentation, Software, and Data

Information sharing (software, documentation, data) is the foundation of NA-MIC and essential to accelerating the pace of research in the field of medical image analysis. This foundation is preserved by monitoring our communications infrastructure, supporting software modularity, holding open design discussions, hosting data repositories for use within and beyond NA-MIC, maintaining the PubDB repository of NA-MIC publications, and recognizing contributors. In all of these endeavors, acknowledging contributors is important to encouraging community involvement and a high priority for the Service core, which ensures that communication and publication channels carry appropriate acknowledgments for all contributors.