TensorTractography¶
- MLModule¶
genre
authors
package
dll
definition
see also
keywords
Purpose¶
The module TensorTractography allows for fiber tracking and has been renamed from TensorTractographyGlobal (the old name was misleading as the module uses only a global virtual volume for accessing voxels very efficiently, but no global fiber tracking has been performed).
You may choose between two different algorithms:
TEND (corresponding paper: White Matter Tractography Using Tensor Deflection)
MeVis fiber tracking algorithm (corresponding paper: White matter lesion phantom for diffusion tensor data and its application to the assessment of fiber tracking).
Usage¶
Connect DTI vector or DTI tensor field (which is the output of the DiffusionTensorAnalysis module) and a list of XMarkers as seed region to start the tracking. Optional, connect a FA map to increase the speed of tracking at the second image input.
Details¶
The input images are scanned page wise, using the standard ML procedure. To convert own data to the format the module can process and visualize, have a look at the conversion below:
normFactor = 1.0 / max(eigval(i))
e(0,0) = eigval(0) * eigenvec(0,0) * normFactor
e(0,1) = eigval(0) * eigenvec(0,1) * normFactor
e(0,2) = eigval(0) * eigenvec(0,2) * normFactor
e(1,0) = eigval(1) * eigenvec(1,0) * normFactor
e(1,1) = eigval(1) * eigenvec(1,1) * normFactor
e(1,2) = eigval(1) * eigenvec(1,2) * normFactor
e(2,0) = eigval(2) * eigenvec(2,0) * normFactor
e(2,1) = eigval(2) * eigenvec(2,1) * normFactor
e(2,2) = eigval(2) * eigenvec(2,2) * normFactor
Now you have the eigenvectors scaled by their eigenvalue, but normalized in a way that the longest eigenvector yields length == 1. This normalization is optional. However, if you also would like to visualize the tensor or vector field using, e.g., SoTensorFieldVis, you may consider that the coloring scheme relies on the eigenvectors’ coordinates, longer vectors may result in an all-white tensor glyph (RGB capped at 1). The built-in color coding uses a simple RGB = |X||Y||Z|.
Filling the u-dimension:
u[0] = unsigned int((e(0,0) + 1.0) * 32767)
u[1] = unsigned int((e(0,1) + 1.0) * 32767)
u[2] = unsigned int((e(0,2) + 1.0) * 32767)
u[3] = unsigned int((e(1,0) + 1.0) * 32767)
u[4] = unsigned int((e(1,1) + 1.0) * 32767)
u[5] = unsigned int((e(1,2) + 1.0) * 32767)
u[6] = unsigned int((e(2,0) + 1.0) * 32767)
u[7] = unsigned int((e(2,1) + 1.0) * 32767)
u[8] = unsigned int((e(2,2) + 1.0) * 32767)
Windows¶
Default Panel¶
Input Fields¶
input0¶
- name: input0, type: Image¶
DTI vector or tensor field.
input1¶
- name: input1, type: Image¶
Optional FA map.
markerList¶
- name: markerList, type: MLBase¶
XMarker list used for seeding the fiber tracking.
Output Fields¶
outFiberSet¶
- name: outFiberSet, type: MLBase¶
Parameter Fields¶
Field Index¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Visible Fields¶
Timing in seconds¶
- name: timing, type: Double, default: -1¶
Clear¶
- name: clear, type: Trigger¶
If pressed, the output fiber set is cleared.
Auto apply¶
- name: autoApply, type: Bool, default: TRUE¶
If checked, any parameter changes causes the module to compute anew.
Apply¶
- name: apply, type: Trigger¶
If pressed, the module computes anew.
Auto update¶
- name: autoUpdate, type: Bool, default: TRUE¶
If checked, the module computes anew on any input change.
Tractography Algorithm¶
- name: tractographyMode, type: Enum, default: Mevis¶
Defines the used tractography algorithm.
Values:
Title |
Name |
|---|---|
Tend |
TEND |
Mevis |
Mevis |
Min. Value¶
- name: stopAnisotropy, type: Float, default: 0.5, minimum: 0, maximum: 1¶
Sets a minimum anisotropy value for terminating the tracking of a fiber.
Check anisotropy¶
- name: shouldStopAnisotropy, type: Bool, default: FALSE¶
If checked, the module uses the
Min. Valuevalue for terminating the tracking.
Window Length¶
- name: windowLength, type: Float, default: 2¶
Sets a window length of statistical analysis of a fiber while tracking.
Max. Curvature¶
- name: stopCurvature, type: Float, default: 0.5, minimum: 0, maximum: 100¶
Sets the maximum curvature of a fiber as a terminating condition.
Check curvature¶
- name: shouldStopCurvature, type: Bool, default: FALSE¶
If checked, the curvature of a fiber is used as a terminating condition.
Max. Length¶
- name: stopLength, type: Float, default: 300, minimum: 0, maximum: 1000¶
Sets the maximal length of a fiber in mm as a termination condition.
Check length¶
- name: shouldStopLength, type: Bool, default: TRUE¶
If checked, the module uses the fiber length as a terminating condition.
Use moving averages¶
- name: useAveragesForStop, type: Bool, default: TRUE¶
If checked, the module uses local averages in a moving window for computing terminating conditions.
Use averages for direction and curvature¶
- name: useAverages, type: Bool, default: FALSE¶
If checked, the module uses averages for direction and curvature computation.
Average Direction Weighting¶
- name: aveDirWeighting, type: Float, default: 0, minimum: 0, maximum: 1¶
This factor weights the average direction for calculating the next position.
Average Curvature Weighting¶
- name: aveCurvWeighting, type: Float, default: 1, minimum: 0, maximum: 1¶
This factor weights the average curvature for calculating the next position.
Step Length¶
- name: stepLength, type: Float, default: 0.1¶
Sets the step length in mm.
Use curvature step length¶
- name: useCurvStepLength, type: Bool, default: FALSE¶
If checked, the curvature at the world position determines the step length of the tracking algorithm.
Use curvature for tracking¶
- name: useCurvature, type: Bool, default: TRUE¶
If checked, the curvature at the world position is used in the tracking dynamics.
Scale with Curvature¶
- name: useCurvatureWeighting, type: Bool, default: FALSE¶
If checked, the tensor shape at the world position is used for scaling the main vector weight.
Use shape for tensor interpolation¶
- name: useShapeForInterpolation, type: Bool, default: FALSE¶
If checked, the tensor shape at a voxel position is used for scaling the weights for interpolation.
Main Vector Weighting¶
- name: mainVectorWeighting, type: Float, default: 0, minimum: 0, maximum: 1¶
This factor allows for blending between the tensor deflection method (TEND) and the streamline tracking technique (STT): 0=TEND, 1=STT.
Direction Jitter¶
- name: noise, type: Float, default: 0.0049999999¶
Sets the amount of direction jittering.
Status¶
- name: status, type: String, default: Result is invalid¶
Shows the status of this module.