ITK_Algorithms_(SOW).docx
DOCX document 30 KB Posted
- Attached to
- ITK Algorithms, Extensibility, Integration, & Outreach for SimpleITK 2015: Federal contract opportunity
- Solicitation number
- RFP_NIHLM2015597KB
About this file
Statement of Work
View the file
Other files for this federal contract opportunity
| File | Type | Posted |
|---|---|---|
| RFP_Amendment__1.docx | DOCX document |
On GovTribe
Work with this file on GovTribe
- Download the original file
- Contacts named in this file
- Similar government files
- Ask GovTribe AI about this file
Text version
STATEMENT OF WORK (SOW)
Project Title: ITK Algorithms, Extensibility, Integration, & Outreach for SimpleITK 2015:
Increasing the Impact of the Insight Toolkit (ITK) Project Purpose The National Library of Medicine (NLM) is seeking to improve the position of its software libraries with respect to modern scientific computing software development environments. sNLM has established projects to provide multiple language binding for its open-source image processing application programmers interface (API) for image analysis, known as the Insight Toolkit (ITK). Notably, NLM supports SimpleITK, a simplified layer on tope of ITK, intended to facilitate its use in rapid prototyping and education and easing the learning curve for ITK by providing access to the library of algorithms and methods through scripting languages that are considered more facile and easier to use by the beginning programmer. We have noted that in recent years, the Python programming language has risen in prominence and is now being used in instruction for entry-level programmers at college-level, high-school-level, and even middle-school-level computer science education.
We propose a new outreach effort to help broaden the user community and raise the awareness and effectiveness of SimpleITK, and by association of ITK, through modest awards that will promote the addition of needed algorithms to ITK and SimpleITK, improvements in exposing data structures and buffers for sharing across programs, additional support for the building and installation of SimpleITK direct installation and use of SimpleITK with the Python interpreter or similar programming environment. The objective of this program is to update and modernize the use of ITK through SimpleITK by making our tools more accessible to a modern scientific programming community. The emphasis of this effort will be expanding the software framework, broadening application development efforts, and data sharing to promote open science.
Individual ITK development projects under this procurement should not exceed $100,000 in cost nor surpass 1 year in duration.
A. Background In 1999, the NLM Office of High Performance Computing and Communications awarded multiple contracts for the formation of a software development consortium to create and develop an application programmer interface (API) and first implementation of a segmentation and registration toolkit, subsequently named the Insight Toolkit (ITK). The original awards included six contractors: GE Global Research, Insightful, Inc., Kitware, Inc., the University of North Carolina at Chapel Hill, the University of Pennsylvania, and the University of Tennessee. The six contractors were partnered with five subcontractors: Harvard University Medical School, the University of Pennsylvania, the University of Pittsburgh, Columbia University, and the University of Utah. The period of performance for the original ITK awards began in 1999 and ended in 2003.
The resulting system was originally intended for computer-assisted exploration of the National Library of Medicine (NLM) Visible Human (VHP) Male and Female data sets. The final deliverable for this group was an open-source software library concentrating on segmentation and registration algorithms, directly released to the public that now helps support research worldwide in image analysis and in other domains.
In 2002 and later in 2004, NLM funded outreach efforts known as the program for “ITK Algorithms, Adapters, and Data Distribution” (ITK-A2D2). These programs promoted ITK, tested the ITK API, evaluated the coverage of the algorithm collection, and explored the versatility of the software architecture. In the past, twenty separate awards were made including funding for:
Kitware, Inc. Ken Martin, P.I.
Application of Segmentation and Registration Techniques to Volume Visualization Georgetown Univ., Kevin Cleary, P.I.
Integrating ITK Segmentation Components into an Existing Software Application for RF Ablation Treatment Planning Mayo Clinic, Rich Robb, P.I.
Interface for Direct and Seamless Use of ITK with Analyze and AVW Cognita, Corp., Dan Fritsch, P.I.
Integrating the SNAP (Snake Automatic Partitioning) Segmentation Tool with the NLM Insight Toolkit Imperial College of London, Derek Hill, P.I.
2D-3D Registration Software for X-ray-to-CT Alignment to the Visible Human Insight Toolkit Univ. of Iowa, Vincent Magnotta, P.I.
Images, Landmarks, and ROIs Univ. of Utah, Yarden Livnat, P.I.
Software Design and Development for Integration of the Insight Toolkit and the SCIRun Problem Solving Environment Insightful, Inc., Lydia Ng, P.I.
Shape-based Level Set Segmentation Univ. of Pittsburgh, George Stetten, P.I.
Real Time 3D Echocardiographic Data with Semi-Automated Boundary Tracking Algorithms Harvard BWH Surgical Planning Laboratory, C.F. Westin, P.I.
Vascular Segmentation Using Level Sets for Image Guided Therapy Kitware, Inc., W. Schroeder, P.I.
3D Widgets for Segmentation and Registration Univ. of Pennsylvania, Jim Gee, P.I.
ITK Surface-based Analysis and Normalization Environment Univ. of Pennsylvania, Jim Gee, P.I.
Graph-Based Methods of Energy Minimization in ITK Univ. of North Carolina at Chapel Hill, Stephen Aylward, P.I.
Neural Networks and Clustering Univ. of North Carolina at Chapel Hill, Stephen Aylward, P.I.
DICOM and Digital Libraries for Data Archiving Univ. of North Carolina at Chapel Hill, Stephen Aylward, P.I.
BatchMake and Validation Dashboards Univ. of North Carolina at Chapel Hill, Stephen Aylward, P.I.
Insight Software Consortium Georgetown Univ., Kevin Wong, P.I.
ITK Implementation of Deformable Registration Methods for Time-Varying (4D) Imaging Data Georgetown Univ., Kevin Cleary, P.I.
Tumor Volume Measurement and Volume Measurement Comparison Plug-in for ITK Kitware, Inc., Bill Hoffman P.I.
The Insight Journal: an Open Access Repository for Technical Papers related to the Insight Toolkit (ITK) In 2010, with funding from the American Recovery and Reinvestment Act, NLM sponsored a revision and redesign effort, IKT-version4 (ITK-v4), along with an outreach program to test and evaluate the revised API (ITK-A2D2-2010). Part of the ITK-v4 effort was a project to ease the burden of the steep learning curve of ITK, resulting in SimpleITK, an interface that allows multiple language bindings. We recognize that on of the most aggressive communities in scientific computing today include groups that development and use the NumPy and SciPy libraries with the Python programming language. Python is developed under an OSI-approved open source license, making it an attractive outlet for ITK integration and extension efforts.
Open-source initiatives such as ITK help to lower the barriers to entry in complex research fields by providing the foundations of the software infrastructure necessary to conduct advanced investigations. Expanding the use of ITK through SimpleITK to open-source-friendly communities such as Python programmers is considered a contribution to the nation’s infrastructure through software. Careful thought has been placed on the cultivation and maintenance of this software, assuring developers that the software will remain supported with new releases, bug fixes, and continuing growth.
B. A general description of the required objectives and desired results The Insight Toolkit (ITK) is currently available with the release, ITK version 4.8, announced in July 2015 (http://www.itk.org). Additionally, SimpleITK is currently available with the release SimpleITK 0.9.0, (http://www.itk.org/Wiki/SimpleITK) announced in May 2015. NLM is funding ITK Algorithms, Extensibility, Integration, & Outreach for SimpleITK 2015 (ITK-AEIOS-2015), an outreach effort for SimpleITK, and we are seeking to make a number of 1-year awards to both broaden the user base and promote applications, algorithms, and methods not currently captured in ITK/SimpleITK.
NLM is seeking proposals for:
1. programming that extends ITK through incorporating additional algorithm families not already represented in ITK or projects that incorporate ITK into software and hardware systems in support of clinical or medical research applications (with an emphasis on multidisciplinary, practical applications not yet covered by ITK such as microscopic image analysis, ultrasonography, video processing, and other topics). All work on these core algorithm developments should be executed in C++ in ITK, and the necessary JSON files and other metadata produced to generate the necessary language bindings for extended use through SimpleITK.
AND/OR
2. programming to overhaul and upgrade some valuable or necessary existing applications, examples, or algorithm family within ITK with the express purpose of improving compile and performance testing, enabling streaming for large data, out-of-core computing, promoting thread safety and encouraging multithreaded programming, and leveraging ITK hardware acceleration techniques. All work improving such core algorithm developments should be executed in C++ in ITK, and the necessary JSON files and other metadata produced to generate the necessary language bindings for extended use through SimpleITK.
AND/OR
3. extension of SimpleITK and ITK to other development environments, notably exposing data structures for easy access with NumPy/SciPy programming. Specifically, we are seeking integration improvements with the core scientific Python package NumPy by having the SimpleITK’s Image class directly export the “buffer interface”, while preserving the Image’s controlled access patterns to enable copy-on-write behavior. Alternately or additionally, to facilitate importing data from Numpy and other generic “buffers”, we would like more support for more complicated memory layouts which include strides should be explored for ITK’s ImportImageContainer class.
AND/OR
4. easing the use of SimpleITK with current scientific computing environments, namely Python-based NumPy/SciPy models, through automated CMake-supported building, installation and packaging of SimpleITK through Python’s standard distutils’ “setup” interface from the python setup script. This will enable Python users to use Python standards tools for package management such as pip with SimpleITK without directly using CMake. Additionally this should support automatic downloads and compilation of source code for installation directly from source code archives.
AND/OR
5. demonstration of SimpleITK and ITK by assembling image analysis suites from available algorithmic building blocks, for example constructing a framework for atlas-based segmentation through existing SimpleITK/ITK tools in segmentation of individual datasets and SimpleITK registration of unknown datasets to known atlas models.
AND/OR
6. planning and executing educational efforts to promote SimpleITK at conferences, professional societies, and within university curricula while building tutorials, examples, and teaching materials that can be incorporated into the SimpleITK web site and other portals for continuing outreach.
Some example concepts for this work include:
· Algorithms or families of methods not currently represented in ITK and without interface support through SimpleITK.
· Multiscale genome to physiological expression segmentation and visualization with SimpleITK/ITK support.
· Large data, out-of-core data processing applications including image analysis for microscopy
· An image analysis framework for comparing algorithm performance which might include measure computer-aided diagnosis tools or biomarker evaluation through ROC analysis
· ITK supportable software for creating PACS research archives with automatic scrubbing and de-identification of patient information across PACS vendors.
· A demonstration of ITK algorithms and the use of SimpleITK with Python in the development of a multi-atlas for atlas-based segmentation of medical image data.
· CMake programming and configuration to enable SimpleITK packaging and delivery through Python’s distutils facility.
· Integration with the core scientific Python package NumPy by having the SimpleITK’s Image class directly export the “buffer interface”, while preserving the Image’s controlled access patterns to enable copy-on-write behavior.
· Support for more complicated memory layouts which include strides should be explored for ITK’s ImportImageContainer class to facilitate importing data from NumPy.
· Support for pickling of SimpleITK objects including Images and Transforms. This will add support for standard Python serialization enabling other scientific Python tools such as IPython’s Parallel module.
This is a list of example projects that might be covered under this acquisition. The list is not exhaustive nor does it cover all areas of interest.
Multiple awards are expected, and a single group or offeror may receive more than one award for separate and discrete software development proposals. Individual projects are limited to one year in duration and a maximum of $100,000.
All deliverables will be released under the existing ITK license as public, open-source software, and so all deliverables must be free from encumbering licenses, patents, or restrictions.
C. A detailed description of the technical requirements.
Integration is considered the key to success for both this contract action as well as the success of the ITK toolkit in general. All offerors should be prepared to work closely with other NLM contractors and with the existing Insight software community. All software deliverables will be checked-in to the current source code control system and vetted through the style checker and regression testing dashboards currently in place.
All deliverables will reside in the public domain (either through controlled Internet distribution from the NLM or through a third party electronic publisher), including all source code. As with the VHP data, controlled access to the source code and image processing tools will be through the issuance of no-cost licenses. The licenses are required solely to allow NLM to track the use, distribution, and proliferation of VHP program products. The eventual software developers will be held to high software standards, and extensive documentation for the software tools (including tutorials, manuals, and examples) are required.
To meet the fairly rigorous demands of this collaborative software development project, in the case of algorithm-contributing contractors and software interface developing contractors, NLM is applying the following technical requirements:
· Strong knowledge of C++ object-oriented programming.
· Demonstrated experience with existing software either being ported to ITK or being adapted through a system interface.
· Commitment to all software and documentation developed under these contracts being made available as open-source material. All software will be released according to the licensing agreements that apply to ITK.
· Commitment to developing software or data collections under this contract under the style rules and architectural design of the Insight Toolkit.
The NLM encourages relationships between industry and academia in this development process. A FTE commitment for programming staff from each of the parties in the consortium is essential.
Since public distribution of all data and software is a fundamental principle of this project, in the case of data-contributing contractors, NLM requires that the contractor demonstrate, through the text of the proposal, a knowledge and understanding of the issues in distributing medical data including: the use of patient release forms for long-term authorization of data distribution; the scrubbing of metadata to protect patient privacy; and the reformatting of datasets to comply with standard forms of data files for use in medical software applications.
D. Subordinate tasks or types of work.
1. Develop or modify software for use with ITK exhibiting practical clinical applications of the software or its derivative software engineering tools. Particular emphasis will be placed on clinical relevance or biomedical research, multiscale/multidisciplinary applications, and practical exploration of the uses of ITK. All contributed algorithmic improvements or additions should be made in C++ along with the necessary JSON files and other metadata to enable wrapping through the SimpleITK interface.
2. If providing software not currently in ITK into the Insight Toolkit software base, the successful award winner must also demonstrate the efficacy of the deliverable by contributing a validation test to ITK. This test should measure how well the software performs its designated tasks and demonstrates the software working with multiple computing platforms. Contractors will contribute all test data and testing and validation software to ITK.
3. Move the developed code or contributed data to a public repository and assure its placement in the public domain.
4. Contribute documentation, tutorial materials, and courseware.
5. Develop examples of proposed algorithms in ITK or provide renderings of all contributed data.
6. Perform all software and documentation development under the style guidelines and architectural rules of the Insight Toolkit.
E. Quality Control.
In keeping with the practices for the development of the current Insight Toolkit, all software deliverables will be required to pass through the ITK dashboard, the open-source system for regression testing and quality control. No deliverables will be considered acceptable without checking in the software to the source code repository, and cleared through the dashboard regression testing process. Any software based on Python or other scripting language must include testing scripts to exercise the software along with test input data to allow automated checking to see if the code is performing and continues to perform as the toolkit and its related software evolves. All software, including examples, must be accompanied by software tests, both run-time and regression test, suitable for implementation in the dashboard system. All deliverables must pass their own tests as well as not break other tests in the toolkit.
Data deliverables will be checked to make sure that appropriate measures have been taken to protect patient privacy or that necessary releases have been secured in order to distribute the data.
Coding style will be checked as a part of the testing process. NLM reserves the right to create a software editorial committee. The committee members will review any deliverable, the software style, documentation, completeness, comprehensiveness and coverage of the software tests, and the correctness of the implementation. Approval of the editorial committee will be required before receiving can be entered for any software, tutorial, example, web page, or data deliverable.
F. Reporting Requirements.
Progress reports will be requested quarterly, and electronic copies of slides, handouts, or documentation will serve as quarterly reports. Weekly teleconferences, videoconferences, or virtual conferences will be held to provide continuing communication among the project team. Attendance at these weekly meetings is highly recommended. Software deliverables will be checked-in to a source code repository and testing of deliverables will be covered in an automatic build and regression-testing environment.
H. Period of Performance.
The period of performance for this requirement is one (1) year from date of award.
I. Deliverables.
All deliverables will reside in the public domain (either through controlled Internet distribution from the NLM or through a third party electronic publisher), including all source code. NLM intends to place the ITK license on all software and release it in the public domain. The eventual software developers will be held to high software standards, and extensive documentation for the software tools (including tutorials, manuals, and examples) are required. All deliverables will be checked-in to a source code repository.
All deliverables will be released under the existing ITK license as public, open-source software, and so all deliverables must be free from encumbering licenses or restrictions.
The NLM(RC)--Rights in Data--Special Works (11/30/88) rights and data clause is incorporated in this requirement, claiming ownership of all data and software generated under this requirement, including all source code.
File details come from the government source that posted it. Updated .