Fiber Tracking

Fiber tracking from DTI or QBall diffusion estimation

Description

This process implements a fascicle reconstruction algorithms. It takes as input diffusion data (t2_diffusion and dw_diffusion parameters) or bucket file and a several sets of starting point (starting_points parameter) and build at most one fascicle per point with the following algorithm:
for each starting point p
    diffusion_data_in_p = interpolation if necessary of diffusion data in point p
    model = diffusion estimation from diffusion_data_in_p
    new direction =
      Likelihood algorithm: along max_eigenvector direction  from point p
      Best choice algorithm: along more probable direction and with inertia
      Probabilistic algorithm: random walk weighted by probabilities distribution and with inertia
    fascicle = track fibers forward and backward from point p
end
Hence, the tracking result is one or zero fascicle per starting point. The tracking algorithm from a point p in direction d is the following.

For likelihood algorithm:

result = empty point list
lastDirection = d
while p is in mask:
    if angle between d and lastDirection greater than max_angle
          break
    end
    append p to result
    lastDirection = d
    p = p + step_length * d
    diffusion_data_in_p = interpolation of diffusion data in point p
    model = diffusion model estimation from diffusion_data_in_p
    d = maximum eigenvector of normalized tensor
end
return result

For other algorithms:

result = empty point list
lastDirection = d
while p is in mask:
    append p to result
    lastDirection = d
    p = p + step_length * d
    diffusion_data_in_p = interpolation of diffusion data in point p
    model = diffusion model estimation from diffusion_data_in_p
    new direction = weighted random orientation from diffusion model probability distribution if probabilistic algorithm
    new direction = more probable orientation if best choice algorithm
    d =  alphaMap(p) x new direction + (1 - alphaMap(p)) x d
end
return result
The resulting fascicles are represented as 3D curves. Each curve correspond to a trajectory of the tracking algorithm wich is supposed to follow a fiber fascicle.

Tracking result is composed of bundles

The starting points of the tracking algorithm are given as set of ROI. Therefore each starting point belong to one ROI. This organisation is kept by the tracking algorithm. For each ROI a fascicle bundle is created. This bundle contains all the fascicles tracked from a point of this ROI. Therefore, the result of the tracking is a set of fascicle bundles. Each bundle has a name which is the name of the corresponding ROI.

The bundles structure is kept in a file format composed of one header file (with .bundles extension) containing the bunldes structure and a data file (with .bundlesdata extension) containing the trajectories of the fascicles. Therefore each bundle of fascicle can be visualized or analysed separately from the other.

Parameters

model_type: Choice ( input )
algorithm: Choice ( input )

Likelihood algorithm: track fibers forward and backward in max_eigenvector direction from point p.

Best choice algorithm: track fibers forward and backward in more probable direction and with inertia.

Probabilistic algorithm: track fibers forward and backward in random walk weighted by probabilities distribution and with inertia.

interpolation: Choice ( input )

Raw data interpolation: DTI or QBall diffusion model is computed at each step after linear interpolation of raw data.

Direction interpolation: at each step the probability along a direction is interpolated with neighbours.

None: no interpolation.

t2_diffusion: T2 Diffusion MR ( input )
T2 image extracted from diffusion raw data.
dw_diffusion: DW Diffusion MR ( input )
model: DTI Model ( optional, input )
DTI or QBall Model
starting_points: Tracking regions ( input )
ROI graph or label image used to define starting points. In each selected voxel, points_per_voxel points are used as starting point for tracking. Each starting point gives at most one curve corresponding to a putative fibers fascicle.
starting_points_transformation: Transformation matrix ( optional, input )
Transformation applied to all starting points. For example if you drew ROIs on a T1 image, you can use these ROIs to do tracking by providing the transformation between the T1 image and the diffusion image referentials (see Rigid registration with mutual information)
tracking_mask: Diffusion Mask ( input )
points_per_voxel: Integer ( input )
Number of points to put in each voxel of the ROIs contained in starting_points
max_angle: Float ( input )
Max angle between two consecutive directions.
step_length: Float ( input )
At each tracking step, the algorithm select the main tensor direction and moves step_length millimeters in that direction
bundles: Fascicles bundles ( output )
The result of the tracking is stored in this bundles file
density_map: Diffusion Density Map ( optional, output )
Density Map where propagation can be seen
storing_step: Integer ( optional, input )
Points of the trajectories are stored in the bundles every storing_step
dimT_density_map: Integer ( optional, input )
T Dimension of the Density Map (4D Volume)
sizeT_density_map: Integer ( optional, input )
Store sizeT_density_map steps in each dim T of the Density Map

Technical information

Toolbox : Diffusion and Tracking

User level : 1

Identifier : DiffusionInterpolatedTracking

File name : brainvisa/toolboxes/connectomist/processes/Tracking Pipeline Components/DiffusionInterpolatedTracking.py

Supported file formats :

t2_diffusion :
GIS image, VIDA image, NIFTI-1 image, MINC image, gz compressed MINC image, DICOM image, TIFF image, XBM image, PBM image, PGM image, BMP image, XPM image, PPM image, gz compressed NIFTI-1 image, TIFF(.tif) image, ECAT i image, PNG image, JPEG image, MNG image, GIF image, SPM image, ECAT v image
dw_diffusion :
GIS image, VIDA image, NIFTI-1 image, MINC image, gz compressed MINC image, DICOM image, TIFF image, XBM image, PBM image, PGM image, BMP image, XPM image, PPM image, gz compressed NIFTI-1 image, TIFF(.tif) image, ECAT i image, PNG image, JPEG image, MNG image, GIF image, SPM image, ECAT v image
model :
Bucket
starting_points :
GIS image, Z compressed GIS image, gz compressed GIS image, VIDA image, NIFTI-1 image, gz compressed ECAT i image, MINC image, gz compressed MINC image, TIFF image, XBM image, PBM image, PGM image, BMP image, XPM image, PPM image, gz compressed NIFTI-1 image, TIFF(.tif) image, Graph and data, gz compressed VIDA image, Z compressed VIDA image, Z compressed ECAT i image, gz compressed ECAT v image, ECAT i image, Z compressed ECAT v image, PNG image, JPEG image, MNG image, GIF image, Z compressed SPM image, SPM image, gz compressed SPM image, ECAT v image
starting_points_transformation :
Transformation matrix
tracking_mask :
GIS image, VIDA image, NIFTI-1 image, MINC image, gz compressed MINC image, DICOM image, TIFF image, XBM image, PBM image, PGM image, BMP image, XPM image, PPM image, gz compressed NIFTI-1 image, TIFF(.tif) image, ECAT i image, PNG image, JPEG image, MNG image, GIF image, SPM image, ECAT v image
bundles :
Aims bundles
density_map :
GIS image, VIDA image, NIFTI-1 image, MINC image, TIFF image, XBM image, PBM image, PGM image, BMP image, XPM image, PPM image, gz compressed NIFTI-1 image, ECAT i image, PNG image, JPEG image, MNG image, GIF image, SPM image, ECAT v image