Difference between revisions of "2010 Winter Project Week Tractography"

From NAMIC Wiki
Jump to: navigation, search
(status update)
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
<gallery>
 
<gallery>
 
Image:PW-SLC2010.png|[[2010_Winter_Project_Week#Projects|Projects List]]
 
Image:PW-SLC2010.png|[[2010_Winter_Project_Week#Projects|Projects List]]
 +
Image:Filtered_tractography.png|Left hemisphere
 
</gallery>
 
</gallery>
  
Line 14: Line 15:
 
<div style="width: 27%; float: left; padding-right: 3%">
 
<div style="width: 27%; float: left; padding-right: 3%">
 
<h3>Plan</h3>
 
<h3>Plan</h3>
Implement various local models and filtering techniques.  Support both region-of-interest and fiducial seeding.  Support both interactive and batch processing.</div>
+
Implement various local models and filtering techniques.  Support both region-of-interest and fiducial seeding.  Support both interactive and batch processing.  Picking fibers and moving them between polydata structures.</div>
  
 
<div style="width: 27%; float: left; padding-right: 3%">
 
<div style="width: 27%; float: left; padding-right: 3%">
 
<h3>Progress</h3>
 
<h3>Progress</h3>
We have MATLAB implementations of various local models (single-tensor, two-tensor, Watson functions, weighted mixtures of these, etc.) and various model-based filters (Kalman, unscented Kalman, particle, etc.).  We have begun converting these to NumPy/Python as well as the additional infrastructure for performing tractography within Slicer.
+
We have Python/NumPy implementations of various local models (single-tensor, two-tensor, Watson functions, weighted mixtures of these, etc.) and various model-based filters (Kalman, unscented Kalman, particle, etc.) and deterministic tractography infrastructure.
 +
 
 +
However, it is unusably slow (the MATLAB version runs faster).  Profiling the code seems to indicate that there is too much NumPy overhead in manipulating lots of small matrices/vectors.  Now reimplementing in C/C++.
 
</div>
 
</div>
  

Latest revision as of 15:46, 8 January 2010

Home < 2010 Winter Project Week Tractography

Key Investigators

  • BWH: James Malcolm, Peter Savadjiev, Yogesh Rathi, C-F Westin

Objective

Integrate recent methods for filtered tractography into Slicer3 using Python.

Plan

Implement various local models and filtering techniques. Support both region-of-interest and fiducial seeding. Support both interactive and batch processing. Picking fibers and moving them between polydata structures.

Progress

We have Python/NumPy implementations of various local models (single-tensor, two-tensor, Watson functions, weighted mixtures of these, etc.) and various model-based filters (Kalman, unscented Kalman, particle, etc.) and deterministic tractography infrastructure.

However, it is unusably slow (the MATLAB version runs faster). Profiling the code seems to indicate that there is too much NumPy overhead in manipulating lots of small matrices/vectors. Now reimplementing in C/C++.

  1. Malcolm, Michailovich, Bouix, Westin, Shenton, Rathi. "A filtered approach to neural tractography using the Watson directional function", MedIA 14(1), p.58-69, 2010.
  2. Malcolm, Shenton, Rathi. "Neural tractography using an unscented Kalman filter", IPMI, p.126-138, 2009.
  3. Savadjiev, Zucker, Siddiqi. "On the Differential Geometry of 3D Flow Patterns: Generalized Helicoids and Diffusion MRI Analysis", ICCV 2007