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

../../../Modules/ML/MLDiffusionMRI/MLFiberTrackingStable/mhelp/Images/Screenshots/TensorTractography._default.png

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

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. Value value 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.

Hidden Fields

progress

name: progress, type: Float, default: 0