2015 Winter Project Week:OpenAtlas

From NAMIC Wiki
Jump to: navigation, search
Home < 2015 Winter Project Week:OpenAtlas

Key Investigators

  • Bill Lorensen (Noware)

Project Description


  • Provide tools and techniques to support community-driven anatomy atlas editing and curating.

Approach, Plan

Adapt extreme testing techniques used for software development to manage changes to anatomy atlases.

  • Define procedures and policies to support community atlas development
  • Maintain a github repository to hold
    • Image atlases
    • Software tools to create models and check atlases for consistency
    • Cube and STL models for anatomy structures
    • Statistics for anatomy structures
    • Displays of changes in structures
    • Displays of structure adjacencies
  • Create a CDash dashboard to track changes in the atlases


Before Project Week

During Project Week

  • Establish an external data mechanism to keep the large binary files out of the repository. This will use the CMake ExternalData techniques developed for VTK and ITK.
  • Create a Superbuild option for VTK and ITK that will simplify configuring the required VTK and ITK toolkits.
  • Improve Slicer connectivity
  • Get feedback from stake holders (Ron, Mike Halle, Marianna Jakab)

Project Week Results


Added tools to generate Slicer fiducial lists


Reorganized git repo. Split the tools from the atlas. There is now a separate github repo for the SPLBrainAtlas.

Slicer Connectivity

Generate mrml scenes that contain a fiducial list for each anatomical object that has defects.

Stakeholder Feedback

Discussed workflow with Ron and Mike Halle. Future goal is to run the anatomy edit/build/test from within Slicer.


In December 2005, DARPA sponsored a Virtual Face workshop. The purpose of the workshop was to discuss approaches to create a DARPA program that would address facial trauma in soldiers returning from Iraq and Afghanistan. Rick Satava, DARPA Program Officer, brought together clinicians, bio-medical researchers and computer scientists to brainstorm on the requirements of such a project.

At that time, GE Research was involved in another DARPA Program called "Virtual Soldier". GE's role was to support anatomy modelling and visualization for the project. Brigham and Women's SPL was a GE subcontractor. GE and BWH used the Visible Human segmented Thorax data as a base for modeling the chest of military combatants. A number of software tools were created to process this data.

After the Virtual Face Meeting, Bill Lorensen and Tim Kelliher, both from GE Research, brainstormed about creating a face atlas for the project. The meeting took place at the Rock Bottom Brewery in Arlington, VA. No facial atlas existed, but they came up with the notion of using the world community to create and maintain such an atlas. They would use an "Extreme Testing" approach that GE Research pioneered for VTK and ITK. The approach would adapt the nightly build/test dashboard techniques that GE had developed.

Unfortunately, the Virtual Face Program was never funded by DARPA.

In January 2007, Terry Yoo (the father of ITK) at the National Library of Medicine, held a workshop on future directions for NLM software initiatives. Lorensen presented a talk called "Community Driven Data Annotation/Curation" This talk synthesized many of the Kelliher/Lorensen notions.

Unfortunately, the program was never funded by NLM.

In 2007, Lorensen retired from GE Research and became an unpaid intern in BillsBasement@noware. Fighting the winter blues, he revived, modified and extended many of the original Virtual Soldier atlas processing tools. He applied these tools to the Brigham and Womens SPL Brain Atlas. Noware graciously provided funding and the Open Atlas project was born.

At last, the Open Atlas Program is funded by Noware!


  • Open Atlas Git Repository
  • Software Tools
    Generates STL models for all labels in the atlas. Uses vtkDiscreteMarchingCubes to generate an initial surface and vtkWindowedSincPolyDataFilter with NonManifoldSmoothingOn(). The NonManifoldSmoothing prevents adjacent structures from overlapping. Browse here to see the STL models. Github renders most of the models.
    Generates a Cuberille model of each labelled structure. The program converts the point data labels to cell data. The resulting vtk models show each "label" without smoothing.
    Generates a table that shows all of the labels that touch a given label.
    Uses itkLabelStatisticsImageFilter to generate a variety of statistics for each label. Browse here to see examples of the statistics.
    For each label, creates screenshots of the model and the labels it touches. One view for the STL models and another for the Cuberille models. Here is the display for the right frontal pole Browse here to see the current screenshots.
    Given and old atlas and a new atlas, creates displays of each Cuberille model that has changed. Two views: one showing additions (in green) and deletions (in red), the other showing the modified model. Here are the differences in the pons after editing. Browse here to see all of the difference files.
    Given two atlases, reports the labels that have changed.
    For each label, warns if a label has more than one connected region.

Project Week Progress

  • External Data (0%)
    The project uses and creates many large binary files. They bloat the checkout. CMake supports an external data mechanism that separates the large binary files from the main git repository.
  • Superbuild (100%)
    Open Atlas uses both VTK and ITK toolkits. A Superbuild for ITK and VTK will make it easier to configure. Also, taking advantage of the modularity in ITK and VTK, faster build times for the toolkits will be possible.
    • Pros
    1. Good for a non VTK/ITK expert
    2. More stable since it builds the correct versions of VTK and ITK
    3. Sets the proper build options to be compatible with the Open Atlas tools.
    4. Takes advantage of the VTK and ITK modularity, only building what the Open Atlas needs from the toolkits.
    • Cons
    1. Might duplicate disk space and limit experimenting for sophisticated VTK/ITK developers
    2. Care must be taken to update the configuration when new VTK/ITK components are needed.
  • Improve Slicer connectivity (50%)
    Provide a mrml scene file to load atlas and generated cube models.
    1. Create a CMake configured mrml scene to load volume, labels and color tables (100%).
    2. Create a mrml scene that loads all cube and stl models with the proper colors (100%)
  • Stakeholder Feedback (0%)
    This project has started with very little feedback from the customer.
  • Documentation (0%)

Create wiki documentation.

Stakeholder Notes

Discussions with Jim and Steve

  • Define the workflow
  1. Dashboard reports errors in labels
  2. User selected label to edit
  3. User edits in Slicer
  4. User creates topic with label being edited
  5. User generates pull request
  6. Travis build initiated
  7. User looks at dashboard results
  • Dashboard
    • Change Report
      • Report diffs with text and show diffs
    • Compile
      • Report per label with hyperlinks to statistics, stk and cuberille models
    • Run tests, one per label, report on a label basis
      • Multiple components
      • Left/right test
  • Use github wiki to hold images and reports
  • Generalize to population studies
  • Integration with Slicer
    • One click pull request to Github / trigger travis
    • CLI for tools
  • Create a Slicer CLI
  • Use Travis factories on Github
    • git push can trigger travis builds
  • Packaging
    • mrb, stl's, cuberille's
  • Discussion on best way to store labels and edits to labels

Future Work

  • Insight Journal Article describing the Open Atlas Project.
  • Add more atlases
    Adding additional atlases will help refine and generalize the process and software tools.
    1. SPL Knee Atlas (underway)
    2. ICBM Brain Atlas (underway)
    3. NLM Visible Human Thorax
  • Investigate using DICOM Segmentation files
  • Create a slicelet that presents an editor only GUI

Current Atlases

These atlases have been processed by the Open Atlas tools. The summary pages show each labeled structure along with its neighbors. Also STL files are available for 3D printing.