Difference between revisions of "Projects/Slicer3/2007 Project Week QDEC Slicer3 Integration"

From NAMIC Wiki
Jump to: navigation, search
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
<!-- http://www.na-mic.org/Wiki/index.php/NA-MIC/Projects/Theme/Template - Please cut and paste the template from this page and use it here.  This will be the replacement for the 4-block. -->
 
{|
 
{|
 
|[[Image:ProjectWeek-2007.png|thumb|320px|Return to [[2007_Programming/Project_Week_MIT|Project Week Main Page]] ]]
 
|[[Image:ProjectWeek-2007.png|thumb|320px|Return to [[2007_Programming/Project_Week_MIT|Project Week Main Page]] ]]
|[[Image:genuFAp.jpg|thumb|320px|Scatter plot of the original FA data through the genu of the corpus callosum of a normal brain.]]
+
|[[Image:Slicer3ReadMGHVolumeEncodedScalars.jpg|thumb|320px|Volume encoded scalars: FreeSurfer versus Slicer ]]
|[[Image:genuFA.jpg|thumb|320px|Regression of FA data; solid line represents the mean and dotted lines the standard deviation.]]
+
|-
 +
|[[Image:Slicer3QDECSurfaceAndGUI.jpg|thumb|300px|Slicer3 with average left pial surface with curv + stats overlay, showing QDEC module GUI]]
 +
|[[Image:Slicer3QDECPlot.jpg|thumb|240px|Plot window generated in Slicer3]]
 
|}
 
|}
  
 
__NOTOC__
 
__NOTOC__
 
===Key Investigators===
 
===Key Investigators===
* UNC: Isabelle Corouge, Casey Goodlett, Guido Gerig
+
* BWH Nicole Aucoin
* Utah: Tom Fletcher, Ross Whitaker
+
* MGH: Kevin Teich, Nick Schmansky, Doug Greve, Gheorghe Postelnicu
 
+
* Isomics: Steve Pieper
  
 
<div style="margin: 20px;">
 
<div style="margin: 20px;">
Line 15: Line 18:
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<h1>Objective</h1>
 
<h1>Objective</h1>
We are developing methods for analyzing diffusion tensor data along fiber tracts. The goal is to be able to make statistical group comparisons with fiber tracts as a common reference frame for comparison.
+
We are incorporating some of the functionality of the MGH developed Freesurfer front end query tool (QDEC) into Slicer 3, and exploring related issues of how to better integrate Freesurfer and Slicer3.
 
 
 
 
 
</div>
 
</div>
  
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
  
<h1>Approaches and Challenges </h1>
+
<h1>Approach, Plan</h1>
 +
 
 +
Our approach to the integration is to get the low level functionality in place before the project week (file format reading, picking), and then use the group time to solve GUI issues. The main challenge is in extracting functionality from FreeSurfer in a sustainable and reusable manner.
  
Our approach for analyzing diffusion tensors is summarized in the IPMI 2007 reference below.  The main challenge to this approach is <foo>.
+
Our plan for the project week is to first try out calling a stand alone executable binary from the Slicer GUI.
 
</div>
 
</div>
  
Line 31: Line 34:
 
<h1>Progress</h1>
 
<h1>Progress</h1>
  
 +
'''Preparation'''
 +
* volume encoded scalar format reading is done
 +
* compositing scalars in Slicer3 is done
 +
* picking points on models allows access to the vertex ids, allowing indexing into data arrays
 +
* mini-Qdec supplied from MGH to BWH
 +
* Slicer3 can load user supplied qdec.table.dat
  
====June 2007 Project Week====
+
'''During the Week'''
This is where you put in progress made in Project Week 2007.
+
* Refined the GUI elements to mimic QDEC (selectable factors)
 +
* Interfaced to the mini-QDEC library to set up GLM designs, run them, load results back into Slicer3 (with overlay compositing)
 +
* Ported the GDF file reader from Slicer2
 +
* Ported the TCL plotting code from Slicer2
  
====January 2007 Project Half Week====
+
'''To Do'''
Software for the fiber tracking and statistical analysis along the tracts has been implemented. The statistical methods for diffusion tensors are implemented as ITK code as part of the [[NA-MIC/Projects/Diffusion_Image_Analysis/DTI_Software_and_Algorithm_Infrastructure|DTI Software Infrastructure]] project. The methods have been validated on a repeated scan of a healthy individual. This work has been published as a conference paper (MICCAI 2005) and a journal version (MEDIA 2006). Our recent IPMI 2007 paper includes a nonparametric regression method for analyzing data along a fiber tract.
+
* Picking to drive plotting
  
 
</div>
 
</div>
Line 45: Line 57:
  
  
===Publications===
+
===References===
* Fletcher, P.T., Tao, R., Jeong, W.-K., Whitaker, R.T., "A Volumetric Approach to Quantifying Region-to-Region White Matter Connectivity in Diffusion Tensor MRI," to appear Information Processing in Medical Imaging (IPMI) 2007.
+
* [http://surfer.nmr.mgh.harvard.edu/fswiki/Qdec Qdec Wiki page] (includes link to tutorial data set)
* Corouge, I., Fletcher, P.T., Joshi, S., Gilmore, J.H., and Gerig, G., "Fiber Tract-Oriented Statistics for Quantitative Diffusion Tensor MRI Analysis," Medical Image Analysis 10 (2006), 786--798.
 
* Corouge, I., Fletcher, P.T., Joshi, S., Gilmore J.H., and Gerig, G., Fiber Tract-Oriented Statistics for Quantitative Diffusion Tensor MRI Analysis, Lecture Notes in Computer Science LNCS, James S. Duncan and Guido Gerig, editors, Springer Verlag, Vol. 3749, Oct. 2005, pp. 131 -- 138
 
* C. Goodlett, I. Corouge, M. Jomier, and G. Gerig, A Quantitative DTI Fiber Tract Analysis Suite, The Insight Journal, vol. ISC/NAMIC/ MICCAI Workshop on Open-Source Software, 2005, Online publication: http://hdl.handle.net/1926/39 .
 
 
 
 
 
  
 
=Additional Information=
 
=Additional Information=
== Abstract ==
 
 
Incorporating some of the functionality of the MGH developed Freesurfer front end query tool (QDEC) into Slicer 3.  Explore related issues of how to better integrate Freesurfer and Slicer3.
 
  
 
== Discussion ==
 
== Discussion ==
Line 63: Line 67:
 
** load a user-supplied table of subject data (the qdec.table.dat file)
 
** load a user-supplied table of subject data (the qdec.table.dat file)
 
** display the available discrete and continous factors, and allow their selection
 
** display the available discrete and continous factors, and allow their selection
** call mri_glmfit (through the C++ API, to be supplied)
+
** call mri_glmfit binary (through the C++ API, to be supplied)
** display the overlay data
+
** display the resulting data, which will be the fsaverage surface, and overlay data
 
** allow selection of a vertex, and display a scatter plot
 
** allow selection of a vertex, and display a scatter plot
 
* What's a list of issues that need a good working solution?
 
* What's a list of issues that need a good working solution?
Line 78: Line 82:
 
## MGH host a publicly readable svn repository, perhaps called libMGH, where all this stuff would be captured as the "official" reference implementation.  MGH internal projects also rely on the library so that other users could be confident that the library is up to date and fully compatible.
 
## MGH host a publicly readable svn repository, perhaps called libMGH, where all this stuff would be captured as the "official" reference implementation.  MGH internal projects also rely on the library so that other users could be confident that the library is up to date and fully compatible.
 
* The core QDEC engine, mri_glmfit, will be supplied as a binary, and C++ interface objects will provide the access to it, and input data loading. Slicer (and our QDEC) will compile against those C++ objects
 
* The core QDEC engine, mri_glmfit, will be supplied as a binary, and C++ interface objects will provide the access to it, and input data loading. Slicer (and our QDEC) will compile against those C++ objects
 
== Slide ==
 
[[Image:2007_Project_Week_MIT_QDEC_Slicer3_Integration.ppt|4 block slide]]
 
 
== Project Page ==
 
 
<!-- [[Slicer3:QDEC_Integration|Project page]] -->
 
 
== Participants ==
 
 
*Nicole Aucoin BWH
 
*Kevin Teich MGH
 
*Nick Schmansky MGH
 
*Doug Greve MGH
 
*Gheorghe Postelnicu MGH
 
*Steve Pieper Isomics
 
  
 
----
 
----
  
 
[[2007_Programming/Project_Week_MIT|Back to Project week]]
 
[[2007_Programming/Project_Week_MIT|Back to Project week]]

Latest revision as of 18:38, 29 June 2007

Home < Projects < Slicer3 < 2007 Project Week QDEC Slicer3 Integration
Volume encoded scalars: FreeSurfer versus Slicer
Slicer3 with average left pial surface with curv + stats overlay, showing QDEC module GUI
Plot window generated in Slicer3


Key Investigators

  • BWH Nicole Aucoin
  • MGH: Kevin Teich, Nick Schmansky, Doug Greve, Gheorghe Postelnicu
  • Isomics: Steve Pieper

Objective

We are incorporating some of the functionality of the MGH developed Freesurfer front end query tool (QDEC) into Slicer 3, and exploring related issues of how to better integrate Freesurfer and Slicer3.

Approach, Plan

Our approach to the integration is to get the low level functionality in place before the project week (file format reading, picking), and then use the group time to solve GUI issues. The main challenge is in extracting functionality from FreeSurfer in a sustainable and reusable manner.

Our plan for the project week is to first try out calling a stand alone executable binary from the Slicer GUI.

Progress

Preparation

  • volume encoded scalar format reading is done
  • compositing scalars in Slicer3 is done
  • picking points on models allows access to the vertex ids, allowing indexing into data arrays
  • mini-Qdec supplied from MGH to BWH
  • Slicer3 can load user supplied qdec.table.dat

During the Week

  • Refined the GUI elements to mimic QDEC (selectable factors)
  • Interfaced to the mini-QDEC library to set up GLM designs, run them, load results back into Slicer3 (with overlay compositing)
  • Ported the GDF file reader from Slicer2
  • Ported the TCL plotting code from Slicer2

To Do

  • Picking to drive plotting



References

Additional Information

Discussion

  • Slicer will incorporate the basic QDEC functionality:
    • load a user-supplied table of subject data (the qdec.table.dat file)
    • display the available discrete and continous factors, and allow their selection
    • call mri_glmfit binary (through the C++ API, to be supplied)
    • display the resulting data, which will be the fsaverage surface, and overlay data
    • allow selection of a vertex, and display a scatter plot
  • What's a list of issues that need a good working solution?
    • being able to read volume encoced scalar format - done, changes made to vtkMRMLModelStorageNode
    • being able to composite scalars in Slicer3 - done, vtkMRMLModelNode::CompositeScalars (need to save the model in vtk to save the composite in mrml) FreeSurfer versus Slicer
    • picking points on models - use the fiducials interface to get at vertex ids and index into scalar overlays - done, the vtkSlicerViewerWidget class Pick method sets the picked cell ID, vertex ID - check if the Pick succeeded in finding a model node (PickedNodeName != ""), then use it to get the model node, which contains polydata that can be indexed using the vertex ID (PickedPointID)
    • FSGDF plotting
  • Identify which parts of this project are:
  1. internal developments, tightly coupled to the MGH environment
  2. features that Slicer3 might have in order to provide some qdec-type functionality to a potentially wider audience (say, BIRN users on windows)
    1. code in slicer for reading mgh file formats (mgz, surfaces, annotations, etc) into ITK and VTK which is duplicated with code used in qdec, scuba, etc.
  3. what common libraries could be shared by both of those efforts.
    1. MGH host a publicly readable svn repository, perhaps called libMGH, where all this stuff would be captured as the "official" reference implementation. MGH internal projects also rely on the library so that other users could be confident that the library is up to date and fully compatible.
  • The core QDEC engine, mri_glmfit, will be supplied as a binary, and C++ interface objects will provide the access to it, and input data loading. Slicer (and our QDEC) will compile against those C++ objects

Back to Project week