GtractFiberTracking

From Slicer Wiki
Jump to: navigation, search
Home < GtractFiberTracking

Fiber Tracking

Fiber Tracking

User Interface
Output
Caption

General Information

Module Type & Category

Type: CLI

Category: Diffusion.GTRACT


Authors, Collaborators & Contact

Author: This tool was developed by Vincent Magnotta, Greg Harris and Yongqiang Zhao.

Contributors:

Contact: name, email


Module Description

Program title Fiber Tracking
Program description This program implements four fiber tracking methods (Free, Streamline, GraphSearch, Guided). The output of the fiber tracking is vtkPolyData (i.e. Polylines) that can be loaded into Slicer3 for visualization. The poly data can be saved in either old VTK format files (.vtk) or in the new VTK XML format (.xml). The polylines contain point data that defines ther Tensor at each point along the fiber tract. This can then be used to rendered as glyphs in Slicer3 and can be used to define severeal scalar measures without referencing back to the anisotropy images. (1) Free tracking is a basic streamlines algorithm. This is a direct implementation of the method original proposed by Basser et al. The tracking follows the primarty eigenvector. The tracking begins with seed points in the starting region. Only those voxels above the specified anisotropy threshold in the starting region are used as seed points. Tracking terminates either as a result of maximum fiber length, low ansiotropy, or large curvature. This is a great way to explore your data. (2) The streamlines algorithm is a direct implementation of the method originally proposed by Basser et al. The tracking follows the primary eigenvector. The tracking begins with seed points in the starting region. Only those voxels above the specified anisotropy threshold in the starting region are used as seed points. Tracking terminates either by reaching the ending region or reaching some stopping criteria. Stopping criteria are specified using the following parameters: tracking threshold, curvature threshold, and max length. Only paths terminating in the ending region are kept in this method. The TEND algorithm proposed by Lazar et al. (Human Brain Mapping 18:306-321, 2003) has been instrumented. This can be enabled using the --useTend option while performing Streamlines tracking. This utilizes the entire diffusion tensor to deflect the incoming vector instead of simply following the primary eigenvector. The TEND parameters are set using the --tendF and --tendG options. (3) Graph Search tracking is the first step in the full GTRACT algorithm developed by Cheng et al. (NeuroImage 31(3): 1075-1085, 2006) for finding the tracks in a tensor image. This method was developed to generate fibers in a Tensor representation where crossing fibers occur. The graph search algorithm follows the primary eigenvector in non-ambigous regions and utilizes branching and a graph search algorithm in ambigous regions. Ambiguous tracking regions are defined based on two criteria: Branching Al Threshold (anisotropy values below this value and above the traching threshold) and Curvature Major Eigen (angles of the primary eigenvector direction and the current tracking direction). In regions that meet this criteria, two or three tracking paths are considered. The first is the standard primary eigenvector direction. The second is the seconadary eigenvector direction. This is based on the assumption that these regions may be prolate regions. If the Random Walk option is selected then a third direction is also considered. This direction is defined by a cone pointing from the current position to the centroid of the ending region. The interior angle of the cone is specified by the user with the Branch/Guide Angle parameter. A vector contained inside of the cone is selected at random and used as the third direction. This method can also utilize the TEND option where the primary tracking direction is that specified by the TEND method instead of the primary eigenvector. The parameter '--maximumBranchPoints' allows the tracking to have this number of branches being considered at a time. If this number of branch points is exceeded at any time, then the algorithm will revert back to a streamline alogrithm until the number of branches is reduced. This allows the user to constrain the computational complexity of the algorithm. (4) The second phase of the GTRACT algorithm is Guided Tracking. This method incorporates anatomical information about the track orientation using an initial guess of the fiber track. In the originally proposed GTRACT method, this would be created from the fibers resulting from the Graph Search tracking. However, in practice this can be created using any method and could be defined manually. To create the guide fiber the program gtractCreateGuideFiber can be used. This program will load a fiber tract that has been generated and create a centerline representation of the fiber tract (i.e. a single fiber). In this method, the fiber tracking follows the primary eigenvector direction unless it deviates from the guide fiber track by a angle greater than that specified by the '--guidedCurvatureThreshold' parameter. The user must specify the guide fiber when running this program.
Program version 4.0.0
Program documentation-url -

Usage

Use Cases, Examples

This module is especially appropriate for these use cases:

  • Use Case 1:
  • Use Case 2:

Examples of the module in use:

  • Example 1:
  • Example 2:

Tutorials

  • Tutorial 1
    • Data Set 1

Quick Tour of Features and Use

A list panels in the interface, their features, what they mean, and how to use them.

  • Input Image Files
    • Input Tensor Image Volume [--inputTensorVolume] : Required (for Free, Streamline, GraphSearch, and Guided fiber tracking methods): input tensor image file name
    • Input Anisotropy Image Volume [--inputAnisotropyVolume] : Required (for Free, Streamline, GraphSearch, and Guided fiber tracking methods): input anisotropy image file name
    • Input Starting Seeds LabelMap Volume [--inputStartingSeedsLabelMapVolume] : Required (for Free, Streamline, GraphSearch, and Guided fiber tracking methods): input starting seeds LabelMap image file name
    • Starting Seeds Label [--startingSeedsLabel] : Label value for Starting Seeds (required if Label number used to create seed point in Slicer was not 1) Default value: 1
    • Input Ending Seeds LabelMap Volume [--inputEndingSeedsLabelMapVolume] : Required (for Streamline, GraphSearch, and Guided fiber tracking methods): input ending seeds LabelMap image file name
    • Ending Seeds Label [--endingSeedsLabel] : Label value for Ending Seeds (required if Label number used to create seed point in Slicer was not 1) Default value: 1
    • Guide Tract [--inputTract] : Required (for Guided fiber tracking method): guide fiber in vtkPolydata file containing one tract line.


  • Output Files
    • Output Tract Filename [--outputTract] : Required (for Free, Streamline, GraphSearch, and Guided fiber tracking methods): name of output vtkPolydata file containing tract lines and the point data collected along them.
    • Write fiber tracts in XML format [--writeXMLPolyDataFile] : Flag to make use of the XML format for vtkPolyData fiber tracts. Default value: 0


  • Tensor Tracking Parameters
    • Fiber Tracking Filter Type [--trackingMethod] : Fiber tracking Filter Type: Guided|Free|Streamline|GraphSearch Default value: Guided
    • Guided Curvature Threshold [--guidedCurvatureThreshold] : Guided Curvature Threshold (Degrees) Default value: 30.0
    • Guide Distance [--maximumGuideDistance] : Maximum distance for using the guide fiber direction Default value: 12.0
    • Seed Threshold [--seedThreshold] : Anisotropy threshold for seed selection (recommended for Free fiber tracking) Default value: 0.40
    • Tracking Threshold [--trackingThreshold] : Anisotropy threshold for fiber tracking (anisotropy values of the next point along the path) Default value: 0.20
    • Curvature Threshold [--curvatureThreshold] : Curvature threshold in degrees (recommended for Free fiber tracking) Default value: 45.0
    • Branching Threshold [--branchingThreshold] : Anisotropy Branching threshold (recommended for GraphSearch fiber tracking method) Default value: 0.20
    • Maximum Branch Points [--maximumBranchPoints] : Maximum branch points (recommended for GraphSearch fiber tracking method) Default value: 5
    • Use Random Walk [--useRandomWalk] : Flag to use random walk. Default value: 0
    • Random Seed [--randomSeed] : Random number generator seed Default value: 13579
    • Branching Angle [--branchingAngle] : Branching angle in degrees (recommended for GraphSearch fiber tracking method) Default value: 45.0
    • Minimum Fiber Length [--minimumLength] : Minimum fiber length. Helpful for filtering invalid tracts. Default value: 0.0
    • Maximum Fiber Length [--maximumLength] : Maximum fiber length (voxels) Default value: 125.0
    • Step Size [--stepSize] : Fiber tracking step size Default value: 1.0
    • Use Loop Detection [--useLoopDetection] : Flag to make use of loop detection. Default value: 0
    • Use Tensor Deflection [--useTend] : Flag to make use of Tend F and Tend G parameters. Default value: 0
    • Tend F [--tendF] : Tend F parameter Default value: 0.5
    • Tend G [--tendG] : Tend G parameter Default value: 0.5


User Interface

Development

Notes from the Developer(s)

Algorithms used, library classes depended upon, use cases, etc.

Dependencies

Other modules or packages that are required for this module's use.

Tests

On the Dashboard, these tests verify that the module is working on various platforms:

Known bugs

Links to known bugs in the Slicer3 bug tracker

Usability issues

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Links to the module's source code:

Source code:

Doxygen documentation:

More Information

Acknowledgment

Funding for this version of the GTRACT program was provided by NIH/NINDS R01NS050568-01A2S1

References

Publications related to this module go here. Links to pdfs would be useful.