Introduction

For other information on FDT and updated journal references, see the FDT web page. If you use FDT in your research, please quote the journal references listed there.

FDT (FMRIB Diffusion Toolbox) is a software tool for analysis of diffusion weighted images. FDT is part of FSL (FMRIB's Software Library) . FDT has an easy-to-use graphical user interface (GUI) and its component programmes can also be run from the command line. FDT includes tools for data preprocessing, local diffusion modelling and tractography. Each stage in FDT is run separately. The main FDT programmes are:

eddycorrect - for correction of eddy current distortion
Bedpost - for local modelling of diffusion parameters.
ProbTrack - for tractography and connectivity-based segmentation
DtiFit - for local of fitting of diffusion tensors
The FDT GUI also includes a registration option that registers images using FLIRT

A typical processing pipeline (and approximate time required for each stage, based on an Intel 2.4GHz processor, and a 60 direction whole brain dataset of dimensions 256x208x72) would consist of:
1. Any study or scanner-specific pre-processing (e.g., averaging of multiple acquisitions, removal of images affected by large artifacts). This would be done manually by the user.
2. Eddy current correction using FDT (??minutes).
3. Fitting of diffusion tensors on corrected data using dtifit within FDT to check data quality (10 minutes)
4. Fitting of the probabilistic diffusion model on corrected data using Bedpost within FDT (24 hours, or less if parallelised)
5. Probabilistic tractography run on the outputs of bedpost (endless.. - depends very much on what the user wishes to do. Generating a connectivity distribution from a single voxel of interest takes about 10 seconds) The probabilistic tractography tools within FDT are very flexible and allow the user to generate connectivity distributions from single or multiple voxels; to limit these distribution based on anatomical criteria and to perform segmentation based on the probability of connection to user-defined target regions.

Before running:

Fdt requires 4D analyze data. This will consist of a series of diffusion weighted volumes and some volumes with no diffusion weighting applied. You will need text files describing the b-values applied during acquisition of each volume ('bvals'), and the direction in which diffusion weighting was applied ('bvecs')


Eddy Current Correction


Bedpost

Bedpost stands for Bayesian Estimation of Diffusion Parameters obtained using sampling techniques


Registration

If tractography results are to be stored in any space other than diffusion space then registration must be run.

Registration within Fdt uses >flirt. Registration can only be applied after Bedpost has been run. Typically, registration will be run between three spaces:
Diffusion space (using the nodif_brain.{hdr,img} file stored in the Bedpost directory)
Structural space (using the struct.{hdr,img} file stored in the Bedpost directory, e.g., the space of a high resolution T1-weighted image of the same subject)
Standard space (by default, the MNI152 brain stored within the fsldirectory).

Note that struct must have had bet applied. The nodif_brain image should be the brain extracted version of the nodif image that is automatically stored in the Bedpost directory. The user will have to manually apply bet to this image after running bedpost and before running registration. (it is important that the user check the qualtiy of bet results on these images and adjust the settings in bet where appropriate)

Transformation matrices, and their inverses, will be dervied from diffusion to structural space and from structural to standard space. Relevant matrices will be concatenated to produce transformation matrices between diffusion and standard space. The resulting matrices are stored within the 'xfms' subdirectory of the bedpost directory and named as follows:

diff2str.mat - from diffusion to structural space
str2diff.mat - from structural to diffusion space
diff2standard.mat - from diffusion to standard space
standard2diff.mat - from standard to diffusion space
str2standard.mat - from structural to standard space
standard2str.mat - from standard to structural space

By default, transformation matrices between diffusion and structural space are derived using 6 degrees of fredom, the mutual information cost function and normal search; transformations matrices between structural and standard space are derived using 12 degrees of freedom, the correlation ratio cost function and normal search. These parameters may be adjusted if required using the drop down menus in the reigistration panel.

******** PROBTRACK - probabilistic tracking *********

After Bedpost has been applied it is possible to run tractography analyses using ProbTrack. Probtrack can be run in multiple different modes. Every mode requires the user to specify a bedpost directory. For all modes, the bedpost directory must contain the following files:
merged_phsamples.{img,hdr}
merged_thsamples.{img,hdr}
nodif_brain_mask.{img,hdr}

Results from probtract can be stored in any available space -e.g., diffusion space, structural space or standard space. Note, however, that tractography itself ALWAYS takes place in diffusion space - it is simply the results of probtrack that are transformed into the required space before saving. If probtrack results are to be stored in a space other than diffusion space then the following files must be in the xfms subdirectory of the bedpost directory:

for running analyses in structural space:
struct.{img,hdr}
xfms/str2diff.mat
xfms/diff2str.mat

for running analyses in standard space:
standard.{img,hdr}
xfms/standard2diff.mat
xfms/diff2standard.mat

OPTIONS TAB
For all modes in probtrack, the user is able to change the setting of certain parameters by clicking the options tab.

Number of samples (default 5000): This determines the number of individual pathways (or samples) that are drawn through the probability distrubutions on principle fibre direction (see appendix for more details on the modelling and tractography methods). By default this is set to 5000 as we are confident that convergence is reached with this number of particles. However, reducing this number will speed up processing and can be useful for preliminary or exploratory analyses.

Curvature Threshold (default 0.2): We limit how sharply pathways can turn in order to exclude implausible pathways. This number is the cosine of the minimum allowable angle between two steps. By default this is set to 0.2 (corresponding to a minimum angle of approximately 80 degrees). Adjusting this number can enable pathways with sharper angles to be detected.

Verbose: If this option is selected then FDT prints additional logging information to screen while it is running.

Loopcheck: By default, we terminate pathways that loop back on themselves -i.e paths that travel to a point where they have already been.

Advanced options:
Clicking the triangle reveals some further options:

Use anisotropy constraints: By default, pathways are traced regardless of anisotropy values. However, it is possible to constrain tracking according to aniostropy values. ?? dunno what this does exactly

Use modified Euler streamlining: hmmmm

Maximum number of steps (default 1000): By default, particles are terminated when they have travelled 1000 steps. Using a step length of 0.5mm this corresponds to a distance of 50cm. These values can be adjusted if required.

Step length (default 0.5mm): This determines the length of each step. This setting may be adjusted from default e.g., depending on the voxel size being used, or if tracking is being performed on different sized brains (e.g,. infants of non-human animals).

PATH DISTRIBUTION ESTIMATION
The first four modes of ProbTrack involve generating connectivity distributions from user-specified seed voxel(s). The output will be a single image in the space of the specified seed like this . All brain voxels will have a value (though many of these will be zero) representing the connectivity value between that voxel and the seed voxel (i.e., the number of particles that pass through that voxel). Note that when connectivity distributions are generated from multiple seed voxel within a region of interest then the time required for the analysis to run will be approximately the number of seed voxels multiplied by the time taken to generate a distrubiton from a single voxel.

SETTING UP THE GUI FOR PATH DISTRIBUTION ESTIMATION - SETTINGS COMMON TO ALL MODES:

Seeds space: specification of seeds is different for each mode - see below.

If seed space is not diffusion, then check the button and use the browse buttons to locate a reference image (e.g., subject1.bedpost/struct.hdr if seed space is structral space or subject1.bedpost/standard.hdr if seed space is standard space) and the transformation matrix from seed space to diffusion space (e.g., subject1.bedpost/xfms/str2diff.mat if seed space is structural space or subject1.bedpost/xfms/standard2diff.mat if seed space is standard space).

If an exclusion mask is to be used then check the box and use the browse button to locate the mask file. This must be a binarised analyze file in seed space. Pathways will be terminated if they enter the exclusion mask. For example, an exclusion mask of the midline will terminate pathways that cross into the other hemisphere. (Note that paths are always terminated when they reach the brain surface as defined by nodif_brain_mask)

Output:
Use the browse button to specify an output name. This will be a filename or a directory name depending on the mode.

AVAILABLE MODES AND MODE-SPECIFIC SETTINGS:

SINGLE SEED VOXEL: Generates a connectivity distribution from a single, user-specified voxel
GUI SETTTINGS
Seeds space:
Enter the x,y,z co-ordinates of a single seed voxel. Use the buttons to the right to specify whether the co-ordinates are given in voxels or millimetres.
OUTPUT The output will be a single image in the space of the specified seed. All brain voxels will have a value (though many of these will be zero) representing the connectivity value between that voxel and the seed voxel (i.e., the number of particles that pass through that voxel).

SEED MASK MODE: Generates a connectivity distribution from a user-specified region of interest.
Settting up the GUI
Seed image: Use the browse button to locate the seed image - this should be a binary mask.
OUTPUT
The output directory will contain:
logfile - a text record of the command that was run
The output file - will be a single image in the space of the specified seed mask. All brain voxels will have a value (though many of these may be zero) representing the number of particles that pass through that voxel from the seed mask. Connectivity distributions from multiple seed voxels are summed to produce this output. Therefore the connectivity values will depend on the number of voxels in the seed mask.

SEED MASK AND TARGET MASK - generates a connectivity distribution from voxels in the seed mask and retains only those paths that pass through the target mask.
Setting up the GUI
Seed image and Target image: Use the browse buttons to locate binary masks of the seed and target. These must be in the same space.
OUTPUT:
The output directory will contain:
logfile - a text record of the command that was run
The output file - will be a single image in the space of the specified seed mask. All brain voxels will have a value (though many of these may be zero) representing the number of particles that pass through that voxel from the seed mask. Connectivity distributions from multiple seed voxels are summed to produce this output. Therefore the connectivity values will depend on the number of voxels in the seed mask.

TWO MASKS - SYMMETRIC - generates a connectivity distribution from all voxels in mask image 1 and retains only those pathways that pass through mask image 2. Also generates a connectivity distribution from all voxels in mask image 2 and retains pathways that pass through mask image 1. Ouput is the sum of these connectivity distributions.
Setting up the GUI
Mask image 1 and Mask image 2: Use the browse buttons to locate your binary mask of area one and area two. These must be in the same space.
OUTPUT:
The output directory will contain:
logfile - a text record of the command that was run
The output file - will be a single image in the space of the specified masks. All brain voxels will have a value (though many of these may be zero) representing the number of particles that pass through that voxel from either of the seed masks. Connectivity distributions from multiple seed voxels are summed to produce this output. Therefore the connectivity values will depend on the number of voxels in the seed masks.

CONNECTIVITY BASED SEED CLASSIFICATION
This mode quantifies connectivity values between a seed mask and any number of user-specified target masks.
Setting up the GUI
Seed image: use the browse button to locate your binary mask of seed voxels.
Target list: Use the add button to locate each target mask. Targets must be binary masks in the same space as the seed mask. When all targets are loaded you can press the save list button to save the list of targets as a text file. If you already have a text file list of required targets (including their path) then you can load it with the load list button.
OUTPUT:
The output directory will contatin:
logfile - a text record of the command that was run
A single volume for each target mask, named seeds_to_.(img,hdr) where is replaced by the file name of the relevant target mask. In these output images, the value of each voxel within the seed mask is the number of particles seeded from that voxel reaching the target mask. The value of all voxels outside the seed mask will be zero.

********* DTIFit ***************
FDT can be used to fit a diffusion tensor model at each voxel.
Setting up the GUI
Input: You can specify an input directory containing all the required files with standardized filenames, or alternatively you can specific input files manually. If an input directory is specified then all files must be named as shown in parentheses below. If input files are specified manually they can have any filename. Required files are:
Diffusion weighted data (data.{img,hdr}): A 4-dimensional series of analyze images. This will include diffusion-weighted volumes and volume(s) with no diffusion weighting.
BET binary brain mask (nodif_brain_mask.{hdr,img}): A single binarised volume in diffusion space containing ones inside the brain and zeroes outside the brain.
Output basename: User specifies a basename that will be used to name the outputs of DTIFit. If the directory input option is used then the basename will be dtifit (??IS THIS RIGHT)
Gradient directions (bvecs): A text file containing a list of gradient directions applied during diffusion weighted volumes. The order of entries in this file must match the order of volumes in the input data series.(??in x,y,z, or phase, read, slice? Do you only include rows for diffusion weighted vols? one entry per row?)
bvalues (bvals): A text file containing a list of bvalues applied during each volume acquisition. The order of entries in this file must match the order of volumes in the input data and entries in the gradient directions text file.