Step T3 Whole Brain Fiber Tracking

Open the main window and click a button named [Step T3: Fiber Tracking] to select a FIB file generated from Step T1-T2. DSI Studio will bring up the tracking window.

Click on [Step T3d: Tracts][Fiber Tracking] to get whole brain fiber tracks.

DSI Studio will seed the whole brain region and perform fiber tracking. If successful, you will see whole-brain tractography:



  1. No tract showing up: reduce [Step T3c: Options][Tracking Parameters][Min Length]
  2. Too many fragments: increase [Step T3c: Options][Tracking Parameters][Min Length]
  3. Tracts do not reach cortex: reduce [Step T3c: Options][Tracking Parameters][Tracking Threshold]
  4. Tracts appear odd or noisy: increase [Step T3c: Options][Tracking Parameters][Tracking Threshold]. Also could be due to acquisition problem, distortion, or reconstruction error. Please refer to the troubleshooting sections at Step T2.

Examples of poor-quality whole-brain tractography:


[Tracking Threshold] is too low (left) or too high (right). 

Fine-Tuning Parameters

To get the best quality of whole brain tractography, you may need to change [Step T3c: Options][Tracking Parameters], including [Tracking Threshold] (The default is 0 which is a randomized value around 0.6 otsu thresholds), [Min Length], [Terminate if] to get better results.

The details of each parameter:

Parameters Default Descriptions
Tracking Index 0 (randomized) Choose which metric to use as the termination threshold. In DTI, FA is used as the index for the filter to determine the fiber threshold. In DSI, QBI, GQI, the fiber threshold is based on the quantitative anisotropy (QA), which is defined for each resolved fiber orientation. The definition of QA is documented in the GQI paper [3].
Tracking Threshold 0 (randomized) This parameter determines the threshold for terminating fiber tracking. If a threshold of 0 is assigned, DSI Studio will use a randomly selected threshold from 0.5 and 0.7 of Otsu’s threshold. Otsu’s method calculates the optimal separation threshold that maximizes the variance between the background and foreground.
If you input a non-zero value and switch between different tracking indexes, the value will be automatically determined using 0.6 of Otsu’s threshold.
The general principle for choosing the threshold is to select the lowest value that has acceptable spurious fibers.
Angular Threshold 0 (randomized) This threshold (in degrees) serves as a termination criterion. If two consecutive moving directions have a crossing angle above this threshold, the tracking will be terminated.
The default 0 will be a random selection of a value from 15 degrees to 90 degrees.
Step size 0 (randomized) Step size defines the moving distance in each tracking iteration. This unit is in millimeter-scale. The default value 0 will be a random selection of the step size from 0.5 to 1.5 voxel distance.
Min Length 30 Length constraint that filters out the tracks that are either too short
Max Length 300 Length constraint that filters out the tracks that are either too long
Terminate if 500 The total number of Tracts generated or Seeds placed
  Tracts If Tracts is selected, DSI Studio will keep seeding and tracking until the number of tracts reaches the above number because a seed may not always result in a track due to [Min Lnegth][Max Length] or ROI filtering. If Seeds is selected, DSI Studio will stop once the total seeding count reaches the number.
Topology-Informed Pruning (TIP) 16 Number of iteration for removing false connections using the TIP method (Yeh Neurotherapeutics 2018)[5] Used in automatic fiber tracking. Used in autotrack
Autotrack tolerance (mm) 16 The distance tolerance for track recognition. A larger number results in more results but increases the chance of false findings autotrack

Advance Options

Parameters Default Descriptions
Tracking Algorithm Streamline(Euler) The fiber tracking algorithm used for deterministic fiber tracking.
Runge-Kutta method is a higher-order tracking method similar to the default Euler approach.
Smoothing 0 (off) Smoothing serves like a “momentum”. For example, if smoothing is 0, the propagation direction is independent of the previous incoming direction. If the smoothing is 0.5, each moving direction remains 50% of the “momentum”, which is the previous propagation vector. This function makes the tracks appear smoother. In implementation detail, there is a weighting sum on every two consecutive moving directions. For smoothing value 0.2, each subsequent direction has 0.2 weightings contributed from the previous moving direction and 0.8 contributed from the income direction. To disable smoothing set its value to 0.
Assign 1.0 to do a random selection of the value from 0% to 95%.
Direction Interpolation Trilinear The interpolation method used in estimating the fiber orientation.
Seed Orientation* Primary Specify the starting orientation of the seeds. The Primary approach always starts the tracking from the most prominent fiber in a voxel. The advantage is the stableness and consistency of the results. A way to compensate for this drawback is using whole-brain seeding to explore all possible connections.
The Random approach starts the tracking a randomly selected fiber orientation, so the results have random factors. The advantage is that it can explore all possibilities, but the drawback is that the results may not be reproduced exactly. The tracking results are also sensitive to noisy fibers because the false fiber orientation can be selected as the starting direction.
The All approach starts a track for each fiber orientation resolved in a voxel. It aims to explore all possible connections and there are no stochastic factors that may hurt the reproducibility. The drawback is that it is sensitive to noisy fibers because all resolved fiber orientations will be used as the starting directions.
Seed Position Subvoxel Specify the seeding strategy. Subvoxel conducts subvoxel seeding and each seed voxel may have infinite seeding locations within the voxel. Voxel Center places the seeding location at the center of a seed voxel.
Randomized Seeding Off If off, DSI Studio will use a constant random generator to place the seeds. This means that the seeding sequence will be “deterministic”, and each tracking round will generate identical results even though the seeding location is randomly chosen from the seeding regions. This setting ensures that the tracking result is exactly reproducible using the same tracking parameters.
If on, DSI Studio will use a time variable to initiate the random generate, and the tracking result will be different for every repeated round.
This randomization setting also affects the random selection of “anisotropy threshold”, “step size”, and “angular threshold”. In other words, if “randomize seeding” is off, all random generators will be deterministically-random.
Check Ending Off If On, DSI Studio will check whether the tracking terminates with a location that has anisotropy higher than the threshold. If higher, the fiber is probably terminated in the white matter and will be removed.
Thread Count half of the system thread DSI Studio supports multithread fiber tracking, which can boost the performance on a computer with multiple core CPUs. Assign the thread count in accord with the possible computation power to obtain the highest efficiency.

Connectivity Matrix and Network Measures (Optional)

To generate connectivity matrix, open connectivity matrix dialog at the top menu: [Tracts][Connectivity matrix]. DSI Studio will conduct a spatial normalization to ensure that the built-in parcellation is registered with the subject data.

Here are some tips for getting a good connectivity matrix:

  1. Increase [Step T3c: Options][Tracking Parameters][Terminate if] to a least 1,000,000.
  2. Carefully choose the parcellation atlas and decide whether to include subcortical regions.
  3. Avoid using a white matter atlas as the parcellation (e.g., HCP842/HCP1065 tractography atlas, JHU white matter atlas)

There are parameters for calculating the connectivity matrix:

Parameters Description
Parcellation Atlas DSI Studio provides built-in atlases as the brain parcellation.
You can also customize your own parcellation. If the map is in the MNI space, you may place the map NIFTI file in the /atlas/ICBM152 subfolder under DSI Studio package (In Mac, you may need to open the package to see the folder). The ROIs will be included in the atlas database for you to calculate the connectivity matrix.
If your ROIs are in the native space, you can load the NIFTI file in the region list using [Regions][Open Region] and then check all ROIs using [Regions][Check all]. Once the ROIs are loaded in the region, you can bring up the connectivity windows by [Tracts][Connectivity matrix].
You can also combine parcellations from built-in atlases at [Step T3a: Assign Regions]
pass region vs end in region Determine whether the connecting track is counted by passing or ending in the parcellation region. ending is more restrictive because passing allows for passing through.
value The connectivity matrix can be calculated by accounting for the number of tracts that pass two ROIs (select “count” as matrix value). This number can be normalized by the median length (select “ncount” as matrix value) or multiplied by the sum of the inverse of the length (select “ncount2”).
The FA, QA, or ADC sampled by the tracks can also be used as the matrix entry (e.g. select “fa”, “qa”, or “adc” as the matrix value). There is a drop-down list in the connectivity window. One is “end in region”, which counts only the final connecting region. Another one is “pass region”, which counts all the regions passed.
threshold The threshold is used to filter out matrix entries with a small number of connecting tracks. It is a ratio to the maximum connecting tracks in the connectivity matrix.

The calculated matrix can be exported as a mat file or a figure. In the mat file, the connectivity matrix is stored as an n-by-n connectivity matrix, whereas the region labels are stored in the name matrix. To recover the list of the region labels, use the following command in Matlab

labels = textscan(char(name),'%s');

Here’s the python code for getting the labels:

from import loadmat
m = loadmat("connectivity.mat")
names = "".join(m["name"].view("S4")[``0]).split("\n")

Network measures

Network measures will be calculated and listed in the second tab for further analysis (group comparison, regression…etc.)


Graph theoretical analysis views brain connections as a *graph *and applied graph-based measures to analyze it. A graph is defined as a set of nodes or vertices and the edges or lines between them. Its topology can be quantitatively described by a wide variety of measures, including network characteristic path length, clustering coefficient, global efficiency, and local efficiency.

The network measures in DSI Studio follow the implementation of the brain connectivity toolbox ( The explanation of the network measures can be found here. You may also refer to Bullmore, E. and O. Sporns (2009). “Complex brain networks: graph theoretical analysis of structural and functional systems.” Nat Rev Neurosci 10(3): 186-198. for details.

For binary measures, the connectivity matrix will be thresholded by a track count in proportional to the max count in the connectivity matrix to make it binary. For example, if the largest count in the connectivity matrix is 100,000 and the threshold is 0.01, then an entry with at least 1,000 track count will be set to 1, and any value fewer will be zeroed.

For weighted measures, the connectivity matrix will be normalized so that the maximum value of the matrix is one.

After getting the network measures in the text file, you may use python scripts to extract information. e.g.,

Graph Visualization


DSI Studio provides a 3D graph presentation to visualize the graph structure. There are two ways to present this graph

Approach1: using MAT file generated from DSI Studio

  1. Save the connectivity matrix from the connectivity dialog using the “save matrix” button. The output will be a MATLAB mat file.

  2. Back to the fiber tracking window, on the top menu, use [View][Visualize Graph] to load the connectivity matrix mat file.

Approach2: using customized MAT file or Text file with user-defined regions

  1. In [step T3 Fiber tracking], load regions using [Region][Open Region]. If your matrix is 100 by 100, then there should be 100 regions.

  2. Prepare connectivity matrix in a text file (space-separated or tab-separated values) or a mat file (use -v4 to save the mat file, and the matrix should be named “connectivity”)

  3. Load the matrix using [View][Visualize Graph]

TIP: You can assign positive and negative values to the matrix, DSI Studio will show them in red and blue colors.

TIP: There are rendering options for graph under [Step T3c: Option][Region Rendering]

Plot connectogram

To create the connectogram, in the connectivity dialog, click on the button named “save connectogram” and save a text file. Open the website: In “2A. UPLOAD YOUR FILE”, choose the text file and check “col with row size” and “row with col size” (see below). Click on visualize table to get the connectogram figure.