How to extract FA value from extracted fibers?

Hi Mrtrix team,
I extracted the corpus callosum fiber tracts. I also made the FA map from the whole brain. Can you tell me is there any way to have FA values correspond to each tract? I mean my CC tracts in .tck file is ready, I want to generate the .tck file which also has the FA values with it.
Can you help me in this regard? Maybe I should do multiplication, but I am not sure how.

Regards,
Maryam

Hi Maryam,

First of all, Mrtrix experts, excuse my input here and correct me if I am wrong.

Second, here is the way I am calculating the metrics , FA for example:

To calculate (Metrics) FA:

I need to resample the tracks using this command:

tckresample - - - with this command I need to decide the amount of points (FA points). The Matrix use 20 points. Also, I need to set the start point and end point for example:

tckresample INTERESTED_Tract.tck -line 20 sta (1,2,3) end (4,5,6) output.tck

Next, I need to run this command,

tcksample (which is the actual command for calculating FA from fa.mif)

Thus, the command line will be:

Tcksample DIR/output.tck DIR/fa.mif DIR/FA_VALUE.txt

Regards,
Salah

2 Likes

Hi Maryam,

Firstly, while I don’t know to what extent there is any particular consensus on such, I personally use “tracts” in reference to biological white matter pathways; streamlines are sometimes called “tracks” (hence the .tck file format), but I tend to use “streamlines” explicitly these days precisely to avoid this ambiguity.

Can you tell me is there any way to have FA values correspond to each tract?

Command tcksample provides this functionality.

I want to generate the .tck file which also has the FA values with it.

The .tck file format does not have the capability to embed such values; they are instead stored in their own file, with implicit correspondence in the order of streamlines between the two files. If storing an FA value per vertex, then you would need to use the .tsf format; if computing a single scalar value per streamline (e.g. the mean FA along the streamline trajectory), then this can be done using a simple text file.

Rob

Thanks for your response. I used tcksample and made .txt and .tsf files. I have two questions here now.

  1. I can see lots of FA values in the txt file, which probably are the mean FA along each streamline. How should I know which number corresponds to which streamlines? I mean how can I have access to the corresponding geometrical location of these FA values related to each streamline?

  2. You mentioned the .tsf file is storing FA values per vertex. How can I read the .tsf file? I want to do PCA on the FA values related to each streamline of the corpus callosum. That’s why I need to know the location of each FA value generated from tcksample.

Thanks for your help,
Maryam

I can see lots of FA values in the txt file, which probably are the mean FA along each streamline. How should I know which number corresponds to which streamlines? I mean how can I have access to the corresponding geometrical location of these FA values related to each streamline?

There should be specifically one value per row, which if you’re referring to mean FA means you must have specified “mean” as the track-wise statistic in tcksample. The correspondence is based on order: the 3197th value in the file corresponds to the mean FA of the 3197th streamline in the tck file. If you want to know both the vertex locations and FA values of the streamline data, you need to simply load both of these sources of information into whatever environment you wish to perform such calculations.

You mentioned the .tsf file is storing FA values per vertex. How can I read the .tsf file?

The format is described briefly here. If you are not using the MRtrix3 C++ API to read these data, there is also this MatLab function contributed by @EmilieMcKinnon; for any other environment, you would need to write your own function for reading from this file format.

Cheers
Rob