How to compute tract-specific metrics


Dear mrtrix community,

I have generated whole-brain tractograms and segmented tracts of interest using inclusion and exclusion ROIs. Now, I would like to compute tract-specific scalar metrics (e.g., mean FA or mean MD of a given tract). I was wondering how to put mrtrix’s tools to best use to achieve this?

I tried three different methods. FA.mif is the FA map of the subject, tract.tck the tract of interest (in my case, the uncinate fasciculus), and binary_tract a binary mask of the tract of interest.

tcksample tracts.tck FA.nii.gz FA.csv -stat_tck mean

followed by the mean of all of the mean FA values of each streamline outputed by tcksample; or

tckmap -template FA.mif tract.tck FA_mask.mif
mrstats FA.mif -mask FA_mask.mif -output mean


mrstats FA.mif -mask binary_tract.mif -output mean

As these three methods give me fairly different results (e.g. the mean FA of the UF ranges from 0.30 to 0.35), which one should be preferred? Or is the correct method not outlined above?



Hi Antoine,

Personally I tend to err toward method 1, as it means that the FA values of those voxels within the “core” of the pathway will contribute to the final measurement more so than those voxels at the outer extremity of the bundle that are only traversed by a small fraction of the streamlines in the pathway.

Methods 2 and 3 are in fact identical, since you can do the following:

$ tckmap -template FA.mif tract.tck - | mrthreshold - binary_tract.mif -abs 0.5

Note however that this means if there is a solitary streamline that follows an erroneous trajectory but is still included in your selection, the voxels traversed by that streamline will contribute to the end result just as much as those voxels right in the centre of the pathway itself; so it’s quite sensitive to false positives. A threshold of more than one streamline could be used, but that’s then a parameter that you would need to determine how to set.



Hi Rob,

Great, thanks a lot for your insights!