|
|
(48 intermediate revisions by 7 users not shown) |
Line 1: |
Line 1: |
− | = Goal =
| + | <big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer3:DTMRI here]</font></big> |
− | | |
− | 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.
| |
− | | |
− | = Global Features =
| |
− | | |
− | The general features can be grouped in:
| |
− | | |
− | * Core features for DTMRI processing
| |
− | * 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] and [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLFiberBundleDisplayNode.h?view=log vtkMRMLFiberBundleDisplayNode].
| |
− | | |
− | === Storage and I/O ===
| |
− | * 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].
| |
− | ** Storage node: [http://www.na-mic.org/ViewVC/index.cgi/trunk/Libs/MRML/vtkMRMLNRRDStorageNode.h?view=log vtkMRMLNRRDStorageNode].
| |
− | * 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]
| |
− | * 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 ===
| |
− | * 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].
| |
− | * 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.
| |
− | | |
− | === Diffusion Modelling ===
| |
− | * 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:
| |
− | ** Least Squares
| |
− | ** Weighted Least Squares
| |
− | ** Non-linear methods
| |
− | ** Maximum Likelihood approach
| |
− | 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 Weighted Images preprocessing: another candidate for CLP. Integration of Rician noise filtering done at Utah.
| |
− | * Tools for
| |
− | ** 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 ==
| |
− | | |
− | * Connectivity solution: enviroment for ROI definition and fiber bundling based on clustering techniques or logic operations.
| |
− | | |
− | Multiple ROI seeding and logical interconnection between ROIs.
| |
− | | |
− | * Fiber editing solution: enviroment for manually editing individual fibers/bundles, reassignation of fibers to bundles.
| |
− | * Fiber analysis solution: enviroment to run statistical analysis on fiber bundles.
| |
− | * DT-MRI segmentation: 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).
| |
− | | |
− | = Plan =
| |
− | | |
− | We will achieve the aforementioned goal in two stages:
| |
− | | |
− | == Stage 1 ==
| |
− | | |
− | * Design and Implementation of the basic infrastructure to handle DWI datasets and DT-MRI datasets
| |
− | ** Development of the hierchachy of MRML nodes for the DWI and Tensor dataset representation: <font color="green"> In progress </font>.
| |
− | ** 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"> Terminated </font>
| |
− | ** Definition of the basic logic for the display of DWI datasets and Tensor datasets: <font color="green"> In progress </font>.
| |
− | | |
− | * Design and Implementation of the basic infrastructure to handle fiber and fiber bundles.
| |
− | ** Development of Fiber MRML nodes for Fiber and Fiber bundles representation: <font color="green"> In progress </font>.
| |
− | ** Development of Fiber display controls and logic: <font color="green"> In progress </font>.
| |
− | ** Development of Fiber seeding: porting/implementation of tracking method. It is argueable that we want to incorporate this as a CLP module if we want to keep real-time performance in terms of interactive tractography. <font color="yellow"> Initialized </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.
| |
− | | |
− | === Stage 2 ===
| |
− | | |
− | * Implementation of core features based on the infrastructure.
| |
− | * Development of solution enviroments.
| |
− | | |
− | == Applications/Use Cases for DTI in Slicer3 ==
| |
− | * Quantitative measurement
| |
− | ** Tract-based
| |
− | ** Region of interest-based
| |
− | * fMRI seeding
| |
− | * Surgical planning
| |
− | * anatomical investigation/atlas creation
| |