FA, AD, RD connectomes

Hi MRtrix experts,

I have a .tck file of my tractogtaphy and a streamlines connectomes using tck2connectome command. I however, now want FA, AD, RD connectomes for the FA, AD, RD metrics.
Is there a way I can achieve this?
Thank you in advance
Best,
Apoorva

1 Like

Hi,

You can take a look here here, it’s all explained.

Basically, to obtain the connectomes weighted by the mean FA (or another map) what you need to do is:

tcksample tracts.tck FA.nii.gz FA.csv -stat_tck mean
tck2connectome tracts.tck Labels.nii.gz FA.csv -scale_file FA.csv -stat_edge mean

In this case each connection will be the mean of the means of the FA. The mean FA along the tract is assigned as a weight to each tract and then each connection is the mean of all the tracts that connect the two nodes.

Best regards,

Manuel

Hi Manuel,

Thank you so much! I followed the procedure and got the connectomes successfully.

Best,
Apoorva

Hi everyone

I was wondering If we have to apply SIFT2 when computing connectomes weighted by some microstructural parameter (for example FA maps). By applying SIFT2 the values of the mean FA in each edges would very small and not interpretable anymore. By not applying SIFT2 the mean FA sampled through the streamlines might be biased by overestimated streamlines.
Thank you very much for your help.

Bests,
Hassna

Hi Hassna,

By applying SIFT2 the values of the mean FA in each edges would very small and not interpretable anymore.

I think that perhaps this is a misunderstanding regarding how this calculation is performed.

By using the -scale_file option in tck2connectome, the contribution of each streamline is multiplied by the corresponding factor in this file; if you then additionally use -stat_edge mean, then it will be the mean of these values from across those streamlines corresponding to a particular edge that is stored in the connectome matrix.

By additionally providing per-streamline weights via the -tck_weights_in option, then yes, the contribution of each streamline is multiplied by both the streamline weight and the factor provided via -scale_file; however, in the calculation of the per-edge mean, this sum is divided by the sum of streamline weights within that edge.

So in this way, the combination of SIFT2 weights and -stat_edge mean act as a weighted mean: those values ascribed to streamlines with large weights contribute more to the final result than those ascribed to streamlines with small weights, but the magnitude of that weighted mean is still faithful to the magnitudes of those values within the file provided via -scale_file.

Rob

Hi,

sorry for reopen this old topic.

I also want to create connectivity matrix base on mean streamline length between each node pair, FA and ADC maps. according to your instructions, I use the following codes:

connectivity matrix base on the mean streamline length between each node pair:

tck2connectome -symmetric -zero_diagonal -scale_length -tck_weights_in sift_1M.txt tracks_10M.tck HCP-MMP1_uint32_labelcon_dwi_uint32.mif  mean_length_SC_fiber_density.csv -out_assignment mean_length_SC_fiber_density_assign.csv -stat_edge mean

connectivity matrix base on mean Fa:

dwi2tensor -mask mask.mif dwi_den_preproc_unbiased.mif dt.mif -predicted_signal dwi_hat.mif
tensor2metric -fa fa.mif dt.mif
tcksample tracks_10M.tck  fa.mif mean_fa_per_streamline.csv -stat_tck mean 
tck2connectome  -symmetric -zero_diagonal -scale_invnodevol -tck_weights_in sift_1M.txt  tracks_10M.tck HCP-MMP1_uint32_labelcon_dwi_uint32.mif mean_FA_connectome_new.csv -scale_file mean_fa_per_streamline.csv -stat_edge mean    

connectivity matrix base on mean adc:

tensor2metric -adc  adc.mif dt.mif;
tcksample tracks_10M.tck  adc.mif  mean_adc_per_streamline.csv -stat_tck mean
tck2connectome  -symmetric -zero_diagonal -scale_invnodevol -tck_weights_in sift_1M.txt  tracks_10M.tck HCP-MMP1_uint32_labelcon_dwi_uint32.mif mean_adc_connectome_new.csv -scale_file mean_adc_per_streamline.csv -stat_edge mean   

am i doing this step correctly?

thanks in advance to your helps,

best regards,

-Milad

1 Like

Hi Milad,

I would most certainly not be using the -scale_invnodevol option for the mean FA and mean ADC connectomes. I’m critical of that heuristic scaling even for connectivity metrics where it is technically applicable, being “density”-based metrics that are additive across streamlines and thus ROIs that are larger in volume are likely to have assigned to them a greater “density of connectivity”. But what you’re doing here is equivalent to generating a connectome where e.g. each edge contains the mean FA of the connection between the two endpoints, and then dividing that by the node volumes. These two factors are wholly incompatible with one another, as a node that is of larger volume is not expected a priori to have a greater FA ascribed to the streamlines assigned to it than is a node of smaller volume.

Other than that, and the fact that technically you only need to call the tensor2metric command once to generate both FA and ADC maps, your usage looks fine.

Cheers
Rob

Hi Rob

Many thanks for your response.

Best regards,

-Milad