TractSeg icon indicating copy to clipboard operation
TractSeg copied to clipboard

Tractometry results: suboptimal alignment of tracts across subjects?

Open WilliamFCB opened this issue 2 years ago • 3 comments

Hi All,

We have data run with tractseg 2.2 DWI data was processed with qsiprep including ( intensity normalization, gibs ringing correction, TopUp, eddy (including movement by susceptibility interaction etc) and output was rigidly (6 parameters) registered to MNI space (i.e. no scaling or shearing) after which we adjusted the bvecs for any rotations and ran dtifit with -wls

I subsequently, successfully ran Tractseg and tractometry. (tck, 10000 iterations) In order to compare across subjects, we were interested to investigate which segments were most comparable across subjects e.g. ignore segments that display large inter subject variation (i.e. dispersion)

To this end I calculated the tensor for each segment and extracted the Eigenvalues, to see for which segments Eigen Value 1 was close to 1.

To calculate the eigenvalues, I used the following procedure:

  1. I split the TOM/tract.nii.gz images in their in X,Y,Z components using fslsplit
  2. I calculated: XX, XY, XZ, YY, YZ, and ZZ using fslmaths
  3. Ran Tractometry on these for all tracts. for this I tweaked the Tractometry script to take single bundles as input ( I use a bash script to loop through all bundles of interest. In this case the 50 default ones)
  4. Converted scientific notation to plain decimal notation
  5. Created for each tract a csv file with 9 columns: XX, XY, XZ, XY, YY, YZ, XZ, YZ, ZZ and 98 rows (segments)
  6. For each segment these were subsequently reshaped to a 3x3 tensor matrix, from which then extracted eigenvalues and eigenvectors

I attached, one file with the EigenValue 1 for al tracts for a cohort (CFIN) of 157 subjects (childeren ~ 11 years of age) Furthermore, I attached a few examples of individual tracts with tractometry profiles for FA,MD,RD,L1, Eigen values 1,2 and 3, and Mode containing data from to Cohorts: CFIN (N=157) and DRCMR (N = 143), age ~11 years

As you can see, there seems to be quite some variation across subjects. Through the noise, one can see that while Eigen Value 1 is generally of the same shape across subjects, hills and valleys do not overlap. To us this suggests that there is unaccounted anatomical variation, and that segments as such are thus not necessarily comparable across subjects.

As far as I understand, Tractseg and Tractometry do not include a non-linear warping of image files, or tracts. Is this correct?

If so, how to ensure that the segements actually represent the same part of a tract across subjects? Should one perform a post hoc high dimensional non-linear warp from individual (i.e. MNI orientation) to MNI space ( for example; https://dipy.org/documentation/1.5.0/examples_built/streamline_registration/#example-streamline-registration) , apply these warps to the streamlines and diffusivity images and rerun Tractometry on these?

Also notice, that T_PERM tract profiles are extremely noisy

Please your thoughts and suggestions

Cheers William

UF_left_tck_10000_ALL_subjects.pdf

For all pdfs: https://www.dropbox.com/scl/fo/lk07zabn1vp3d2sa2apmm/h?dl=0&rlkey=g2ya2mpgq16bql2im0pbvgfgi

WilliamFCB avatar Dec 15 '22 14:12 WilliamFCB