How to use tckgen to output asymmetric connectivity matrix when using probabilistic tractography algorithm iFOD2?

Dear All,

I am working on DWI images and want to use tckgen to output asymmetric connectivity matrix when using probabilistic tractography algorithm iFOD2. However, I can’t get it.

While diffusion tractography is not sensitive to the directionality of connections, parcel A to B and parcel B to A streamlines are computed separately minor asymmetries arise. Below is my code:

tckgen -algo iFOD2 -act 5ttseg.mif -backtrack -crop_at_gmwmi
-cutoff 0.05 -angle 45 -minlength 20 -maxlength 250 -nthreads 8
-seed_image dwi_wmMask.mif -select 500k
dwi_wmcsd.mif
fibs_200k_angles45_maxlen500_act.tck -force

tck2connectome -zero_diagonal -scale_invnodevol
fibs_200k_angles45_maxlen500_act.tck
Schaefer2018_400Parcels_7Networks+aseg_relabel.nii.gz
connectome_400parcels7network.csv
-out_assignment assignment_400parcels7network.csv -force

Unfortunately, I can only get the upper triangular matrix

My question is, how can generat the asymmetric connectivity matrix shown below ?

Thank you in advance for giving your time.

Jie Xia

1 Like

Can you reply to this question? Thank you!

Hi @stamathBrain,

… parcel A to B and parcel B to A streamlines are computed separately minor asymmetries arise …

If this is the process by which a structural connectome matrix is generated, then yes, the data will manifest asymmetries in the connectivity matrix. However that is not how the matrix is being generated in your case. Indeed you can see from your tckgen call that a white matter mask is being used to generate streamlines: if the streamline seed point is somewhere within the length of the streamline, rather than one of the endpoints, then it is impossible to attribute one of the endpoints as the “seed” and the other as the “target”.

… how can generate the asymmetric connectivity matrix shown below ?

If you really wanted to generate a connectivity matrix in this way, then you would need to perform a different sequence of steps:

  1. For each unique parcel:
    1. Perform unidirectional tracking from that parcel
    2. Assign streamline endpoints only (ie. not starting points) to target parcels (see tck2connectome -vector)
  2. Concatenate 1D connectivity vectors to produce 2D matrix

The disadvantage of this approach is that it precludes the application of any method that requires as input a whole-brain tractogram (e.g. SIFT(2)), as no such tractogram is produced.

I can only get the upper triangular matrix

Just in case: you can ask tck2connectome to write a symmetric matrix using the -symmetric option (I intend in the future to turn this into a config file entry so that people can pre-specify their own preferences in this regard). But that’s only a change to how the natively undirected data are written to file; it doesn’t change the nature or interpretation of the underlying data, and will by design not contain any asymmetries.

Cheers
Rob