Difference between revisions of "Slicer3:DTMRI"

From NAMIC Wiki
Jump to: navigation, search
Line 1: Line 1:
= Goal =
+
= Goals =
  
Development of the infrastructure for DT-MRI processing and visualization and fiber processing and visualization. A secondary goal is the integration of new and existing methods and algorithms for DT-MRI processing using the provided infrastructure. This integration will have as goal the porting of the current DT-MRI capabilities existing in Slicer 2.x and the addition of new features.
+
* Development of the core infrastructure for DT-MRI processing and visualization.
 +
* Development of the core infrastructure for fiber tracks processing and visualization.  
 +
* Integration of new and existing methods and algorithms for DT-MRI processing using the provided infrastructure.  
 +
* Porting of the current DT-MRI capabilities existing in Slicer 2.x  
  
= Global Features =
+
= Core infrastructure for DT-MRI processing and visualization, fiber processing and visualization =
 +
== DTI Data Model ==
 +
MRML nodes for different data representations involved in DTI analysis:
 +
* Diffusion Weighted Images: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionWeightedVolumeNode.h?view=log vtkMRMLDiffusionWeightedVolumeNode].
 +
* Diffusion Tensor Images:  [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionTensorVolumeNode.h?view=log vtkMRMLDiffusionTensorVolumeNode].
 +
* Fiber Bundles: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleNode.h?view=log vtkMRMLFiberBundleNode].
  
The general features can be grouped in:
+
== Visualization/Display  ==
 +
MRML nodes for definition for DTI data visualization:
 +
* Diffusion Weighted Images: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionWeightedVolumeDisplayNode.h?view=log vtkMRMLDiffusionWeightedVolumeDisplayNode].
 +
* Diffusion Tensor Images:  [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionTensorVolumeDisplayNode.h?view=log vtkMRMLDiffusionTensorVolumeDisplayNode], and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionTensorDisplayPropertiesNode.h?view=log vtkMRMLDiffusionTensorDisplayPropertiesNode].
 +
* Fiber Bundles: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleDisplayNode.h?view=log vtkMRMLFiberBundleDisplayNode], [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleLineDisplayNode.h?view=log vtkMRMLFiberBundleLineDisplayNode], [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleTubeDisplayNode.h?view=log vtkMRMLFiberBundleTubeDisplayNode], and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleGlyphDisplayNode.h?view=log vtkMRMLFiberBundleGlyphDisplayNode].
  
* Core features for DTMRI processing
+
==Storage and I/O ==
* Solution enviroments for DTMRI analysis
 
 
 
The first group will provide the necessary tools to build the Solutions that will be the user front-end.
 
 
 
== Core features ==
 
=== Data Model ===
 
MRML Node definition for different data representations involved in DTI analysis
 
* Diffusion Weighted Images: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionWeightedVolumeNode.h?view=log vtkMRMLDiffusionWeightedVolumeNode] and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionWeightedVolumeDisplayNode.h?view=log vtkMRMLDiffusionWeightedVolumeDisplayNode].
 
* Diffusion Tensor Images:  [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionTensorVolumeNode.h?view=log vtkMRMLDiffusionTensorVolumeNode], [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionTensorVolumeDisplayNode.h?view=log vtkMRMLDiffusionTensorVolumeDisplayNode] and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLDiffusionTensorDisplayPropertiesNode.h?view=log vtkMRMLDiffusionTensorDisplayPropertiesNode].
 
* Fiber Bundles: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleNode.h?view=log vtkMRMLFiberBundleNode], [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleDisplayNode.h?view=log vtkMRMLFiberBundleDisplayNode], [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleLineDisplayNode.h?view=log vtkMRMLFiberBundleLineDisplayNode], [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleTubeDisplayNode.h?view=log vtkMRMLFiberBundleTubeDisplayNode], and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleGlyphDisplayNode.h?view=log vtkMRMLFiberBundleGlyphDisplayNode].
 
 
 
=== Storage and I/O ===
 
 
* DWI and DTI I/O: NRRD is the format supported by Slicer 3 for storing DWI and DTI images.  
 
* DWI and DTI I/O: NRRD is the format supported by Slicer 3 for storing DWI and DTI images.  
 
** NNRD reader/writer: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem/vtkNRRDReader.h?view=log vtkNRRDReader] and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem/vtkNRRDWriter.h?view=log vtkNRRDWriter].  
 
** NNRD reader/writer: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem/vtkNRRDReader.h?view=log vtkNRRDReader] and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem/vtkNRRDWriter.h?view=log vtkNRRDWriter].  
Line 25: Line 25:
 
* Fiber I/O: vtkPolyData has been the format adopted for the description of fibers.
 
* Fiber I/O: vtkPolyData has been the format adopted for the description of fibers.
 
** Storage node: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleStorageNode.h?view=log vtkMRMLFiberBundleStorageNode]
 
** Storage node: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleStorageNode.h?view=log vtkMRMLFiberBundleStorageNode]
* Implementation of I/O Logic: refactoring [http://www.na-mic.org/ViewVC/index.cgi/trunk/Base/Logic/vtkSlicerVolumesLogic.h?view=log vtkSlicerLayerLogic] to accomodate Archetype and NRRD readers.
 
  
=== Displaying Logic ===
+
== Displaying Logic ==
* Slicer Layer Logic: Reslicing of DWI and DTI volumes [http://www.na-mic.org/ViewVC/index.cgi/trunk/Base/Logic/vtkSlicerSliceLayerLogic.h?view=log vtkSlicerSliceLayerLogic].
+
* Visualization pipelines for DTI, DWI volumes, and fiber bundles are incorporated into the corresponding display nodes.
* Geometry Layer Logic: Creation of a new Layer type (besides Slices and Labelmaps) to accomodate the representation of geometrical data in the 2D slices. These capabilities can be exploited to render glyphs in the 2D slice windows.
+
* DWI volumes are displayed as separate components.
 +
* DTI volumes are displayed computed scalar properties (such as FA, Linear Measure, etc.)
 +
* Fiber bundles are displayed as lines, tubes, and glyphs with their own properties and colors.
  
=== Diffusion Modelling ===
+
== Diffusion Processing Toolbox ==
* Tensor Estimation from DWI: this part is a clear candidate for the an implementation using CLP: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Applications/CLI/DiffusionTensorEstimation.xml?view=log DiffusionTensorEstimation]. A desired feature would be the possibility of estimating tensors using different methods, namely:
+
[http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem vtkTeem-library] provides tools for:
** Least Squares
+
* Tensor estimation
** Weighted Least Squares
+
* Computation of scalar measurements from tensor fields
** Non-linear methods
+
*Fast rendering of tensor fields using glyphs: line, box, ellipsoid.
** Maximum Likelihood approach
+
*Fiber Tracking using integration techniques
 +
* Multiple ROI seeding and logic interconnections between ROIs
 +
 
 +
= DT-MRI processing and visualization Modules =
 +
 
 +
== Tensor Estimation from DWI ==
 +
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Applications/CLI/DiffusionTensorEstimation.xml?view=log DiffusionTensorEstimation].  
 
Teem currently provides a clean interface to do this estimation in a voxel by voxel fashion. Collaboration with Gordon Kindlmann for a vtk filter implementation that encapsulates the estimation process ([http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem/vtkTeemEstimateDiffusionTensor.h?view=log vtkTeemEstimateDiffusionTensor]).
 
Teem currently provides a clean interface to do this estimation in a voxel by voxel fashion. Collaboration with Gordon Kindlmann for a vtk filter implementation that encapsulates the estimation process ([http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem/vtkTeemEstimateDiffusionTensor.h?view=log vtkTeemEstimateDiffusionTensor]).
  
=== Diffusion Processing Toolbox ===
+
== Diffusion Tensor Scalar Measurements  ==
* Diffusion Weighted Images preprocessing: another candidate for CLP. Integration of Rician noise filtering done at Utah.
+
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Applications/CLI/DiffusionTensorMathematics.xml?view=log DiffusionTensorMathematics].  
* Tools for
+
* Implemented in vtkTeem library [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/vtkTeem/vtkDiffusionTensorMathematics.h?view=log vtkDiffusionTensorMathematics].
** Computation of scalar measurements from tensor fields
 
** Fast rendering of tensor fields using glyphs: line, box, ellipsoid, superquadric.
 
** Fiber Tracking using integration techniques
 
** Statistics along fiber tracts
 
** Multiple ROI seeding and logic interconnections between ROIs
 
** Fiber clustering techniques
 
* Algorithms for DT-MRI registration: Xiadoing et al from GE have presented a nice method for DWI registration that has great potential and deals in a clean way with many of the technical difficulties of registering only tensor fields.
 
* Algorithms for DT-MRI segmentation.
 
  
== Solution enviroments ==
+
== Rician LMMSE Filter ==
 +
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Applications/CLI/DiffusionApplications/dwiNoiseFilter/dwiNoiseFilter.xml?view=log dwiNoiseFilter].
  
* Connectivity solution: enviroment for ROI definition and fiber bundling based on clustering techniques or logic operations.
+
*Filters a set of diffusion weighted images in the mean squared error sense using a Rician noise model. The noise parameter is automatically estimated.
 +
*Contributed by Santiago Aja Fernandez and Marc Niethammer
  
Multiple ROI seeding and logical interconnection between ROIs.
+
==  Tractography Display/Load/Save Module==
 +
* Load and Saves fiber tracks as vtkPolyData files (.vtp)
 +
* Displays fiber tracks as lines, tubes, glyphs. Allows to control line/tube/glyph display properties and colors
 +
* Built-in Slicer3 module.  
  
* Fiber editing solution: enviroment for manually editing individual fibers/bundles, reassignation of fibers to bundles.
+
==  Tractography ROI Seeding Module  ==
* Fiber analysis solution: enviroment to run statistical analysis on fiber bundles.
+
* Creates fibers passing through a specified ROI
* DT-MRI segmentation: enviroment for segmentation of DT-MRI fields
+
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Tractography/Seeding/Seeding.xml?view=log ROI Seeding].  
* DT-MRI registration: enviroment for registration of DT-MRI fields (possibly via DWI registration -- work done at GE and presented in MICCAI '06).
+
 
 +
==  Tractography Fiducial Seeding Module  ==
 +
* Creates fibers passing through the specified fiducial points interactively
 +
* Built-in Slicer3 module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Tractography/FiducilaSeeding/vtkSlicerTractographyFiducialSeedingGUI.cxx?view=log vtkSlicerTractographyFiducialSeedingGUI.cxx].  
  
= Plan =
 
  
We will achieve the aforementioned goal in two phases:
+
==  Tractography ROI Select Module  ==
 +
* Select tracts passing or not passing through ROIs
 +
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Modules/Tractography/Editor/ROISelect.xml?view=log ROI Select].
  
== Phase 1 Slicer3.0, January 2008 ==
+
== Stochastic Tractography Filter  ==
 +
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Applications/CLI/DiffusionApplications/StochasticTractographyFilter/StochasticTractographyFilter.xml?view=log StochasticTractographyFilter].
 +
* Generates a map of connectivity probabilities from a DWI volume.).
 +
* Contributed by Tri Ngo (tringo@gmail.com)
  
* Design and Implementation of the basic infrastructure to handle DWI datasets and DT-MRI datasets
+
== ROI Tract Filter  ==
** Development of the hierchachy of MRML nodes for the DWI and Tensor dataset representation: <font color="green"> In progress </font>.
+
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Applications/CLI/DiffusionApplications/StochasticTractographyFilter/ROITractFilter.xml?view=log ROITractFilter].  
** Development of Storage nodes to I/O these new datasets. Given the current limitation of the Archtype readers, we will temporally fall back on the vtkNRRDReader/Writer existing in Slicer2.x for I/O operations: <font color="green"> Complete</font>.
+
* Creates a new tract container containing only tracts which pass through the selected ROI's.
** Definition of the basic logic for the display of DWI datasets and Tensor datasets: <font color="green"> In progress </font>.
+
* Contributed by Tri Ngo (tringo@gmail.com)
  
* Design and Implementation of the basic infrastructure to handle fiber and fiber bundles.
+
== Generate Connectivity Map  ==
** Development of Fiber MRML nodes for Fiber and Fiber bundles representations Line, Tubes, Glyphs: <font color="green"> In progress </font>.
+
* CLI Module: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Applications/CLI/DiffusionApplications/StochasticTractographyFilter/GenerateConnectivityMap.xml?view=log GenerateConnectivityMap].  
** Development of Fiber display UI controls and logic: <font color="green"> In progress </font>.
+
* Generates a volume where the value of each voxel is the number of fibers which pass through that voxel divided by the total number of sampled fibers.   This value can been interpreted as the probability that a particular voxel is connected to the seed ROI by a fiber tract.
** Development of Fiber ROI seeding. Incorporate this as a CLP module. <font color="green"> In progrees</font>.
+
* Contributed by Tri Ngo (tringo@gmail.com)
** Interactive seeding of from fiducials.<font color="green"> In progress </font>.
 
** Tensor glyph display on slice planes.<font color="green"> May be postponed till Phase 2.</font>.
 
** Development of logic componets for fiber optimal rendering. There is a need for finding a good trade off between performance (real time interaction with fibers) and number of actors assigned to the fibers. This is an area that Kitware might contribute on.
 
** Stochastic tractography CLI module (Tri, Ngo).
 
** Rician LMMSE filter (Core 1).
 
  
== Phase 2, January 2009 ==
 
  
* Implementation of core features based on the infrastructure and development of solution enviroments.
+
:
** Teem based tractography (Core 1 & 2).
 
** Fiber Bundle Clustering (Core 1).
 
** Render glyphs in the 2D slice windows.
 
** Statistics along fiber tracts (Core 1).
 
  
= Applications/Use Cases for DTI in Slicer3 =
+
= Future development plans =
 +
* Fiber editing: enviroment for manually editing individual fibers/bundles, reassigning of fibers to bundles.
 +
* Teem based tractography (Core 1 & 2).
 +
* Fiber Bundle Clustering (Core 1).
 +
* Render glyphs in the 2D slice windows.
 +
* Statistics along fiber tracts (Core 1).
 
* Quantitative measurement
 
* Quantitative measurement
 
** Tract-based
 
** Tract-based
Line 97: Line 103:
 
* fMRI seeding
 
* fMRI seeding
 
* Surgical planning
 
* Surgical planning
* anatomical investigation/atlas creation
+
* DT-MRI segmentation/atlas creation: enviroment for segmentation of DT-MRI fields
 
+
* DT-MRI registration: enviroment for registration of DT-MRI fields (possibly via DWI registration -- work done at GE and presented in MICCAI '06).
 +
* Tensor estimation using different methods, namely:
 +
** Least Squares
 +
** Weighted Least Squares
 +
** Non-linear methods
 +
** Maximum Likelihood approach
  
 
= Development Screenshots =
 
= Development Screenshots =

Revision as of 21:50, 2 January 2008

Home < Slicer3:DTMRI

Goals

  • Development of the core infrastructure for DT-MRI processing and visualization.
  • Development of the core infrastructure for fiber tracks processing and visualization.
  • Integration of new and existing methods and algorithms for DT-MRI processing using the provided infrastructure.
  • Porting of the current DT-MRI capabilities existing in Slicer 2.x

Core infrastructure for DT-MRI processing and visualization, fiber processing and visualization

DTI Data Model

MRML nodes for different data representations involved in DTI analysis:

Visualization/Display

MRML nodes for definition for DTI data visualization:

Storage and I/O

Displaying Logic

  • Visualization pipelines for DTI, DWI volumes, and fiber bundles are incorporated into the corresponding display nodes.
  • DWI volumes are displayed as separate components.
  • DTI volumes are displayed computed scalar properties (such as FA, Linear Measure, etc.)
  • Fiber bundles are displayed as lines, tubes, and glyphs with their own properties and colors.

Diffusion Processing Toolbox

vtkTeem-library provides tools for:
  • Tensor estimation
  • Computation of scalar measurements from tensor fields
  • Fast rendering of tensor fields using glyphs: line, box, ellipsoid.
  • Fiber Tracking using integration techniques
  • Multiple ROI seeding and logic interconnections between ROIs

DT-MRI processing and visualization Modules

Tensor Estimation from DWI

Teem currently provides a clean interface to do this estimation in a voxel by voxel fashion. Collaboration with Gordon Kindlmann for a vtk filter implementation that encapsulates the estimation process (vtkTeemEstimateDiffusionTensor).

Diffusion Tensor Scalar Measurements

Rician LMMSE Filter

  • Filters a set of diffusion weighted images in the mean squared error sense using a Rician noise model. The noise parameter is automatically estimated.
  • Contributed by Santiago Aja Fernandez and Marc Niethammer

Tractography Display/Load/Save Module

  • Load and Saves fiber tracks as vtkPolyData files (.vtp)
  • Displays fiber tracks as lines, tubes, glyphs. Allows to control line/tube/glyph display properties and colors
  • Built-in Slicer3 module.

Tractography ROI Seeding Module

  • Creates fibers passing through a specified ROI
  • CLI Module: ROI Seeding.

Tractography Fiducial Seeding Module


Tractography ROI Select Module

  • Select tracts passing or not passing through ROIs
  • CLI Module: ROI Select.

Stochastic Tractography Filter

  • CLI Module: StochasticTractographyFilter.
  • Generates a map of connectivity probabilities from a DWI volume.).
  • Contributed by Tri Ngo (tringo@gmail.com)

ROI Tract Filter

  • CLI Module: ROITractFilter.
  • Creates a new tract container containing only tracts which pass through the selected ROI's.
  • Contributed by Tri Ngo (tringo@gmail.com)

Generate Connectivity Map

  • CLI Module: GenerateConnectivityMap.
  • Generates a volume where the value of each voxel is the number of fibers which pass through that voxel divided by the total number of sampled fibers. This value can been interpreted as the probability that a particular voxel is connected to the seed ROI by a fiber tract.
  • Contributed by Tri Ngo (tringo@gmail.com)


Future development plans

  • Fiber editing: enviroment for manually editing individual fibers/bundles, reassigning of fibers to bundles.
  • Teem based tractography (Core 1 & 2).
  • Fiber Bundle Clustering (Core 1).
  • Render glyphs in the 2D slice windows.
  • Statistics along fiber tracts (Core 1).
  • Quantitative measurement
    • Tract-based
    • Region of interest-based
  • fMRI seeding
  • Surgical planning
  • DT-MRI segmentation/atlas creation: enviroment for segmentation of DT-MRI fields
  • DT-MRI registration: enviroment for registration of DT-MRI fields (possibly via DWI registration -- work done at GE and presented in MICCAI '06).
  • Tensor estimation using different methods, namely:
    • Least Squares
    • Weighted Least Squares
    • Non-linear methods
    • Maximum Likelihood approach

Development Screenshots

DtiDevel1.jpg

DtiDevel2.jpg

Notes on general diffusion framework (ODF/2 tensor) support

http://wiki.na-mic.org/Wiki/index.php/Slicer3:DTMRI:GeneralDiffusionFramework