Tract analysis in freesurfer space

Hi there, I wonder if you wouldn’t mind offering a sanity check on my pipeline. I see a lot of different approaches out there related to registration of DWI and T1, some warping DWI, some not. It looks like the BATMAN tutorial warps T1 to DWI (OSF) – I don’t know what is better, it seems to me there are drawbacks to both.

I am using DWI and Freesurfer data from the Human Connectome Project.

Objective: I want to derive tracts from a subject’s DWI data and then register those tracts to Freesurfer’s T1 image produced from recon-all.
My goal is to extract individual masks from Freesurfer’s wmparc file to for ROI-ROI analysis.
So, for example, using two region masks, what is the FA, ADC, and length for tracts starting/ending in any two ROIs.

I appreciate warping DWI to T1 isn’t great because it is potentially lossy, probably other reasons too.

The pipeline below I think tries to do as much as possible in native space and warp as little and as late as possible:

Does this make sense?

  1. Extract the brain for dwi and T1 data using masks
  2. Create a mean b0 image from brain-extracted dwi (dwiextract)
  3. Register mean b0 to T1, creating a transformation matrix (antsRegistration)
  4. Create a deformation field for DWI to T1 (warpinit → WarpImageMultiTransform → warpcorrect )
  5. On native DWI, estimate response function(s) for spherical deconvolution (dwi2reponse)
  6. On native DWI, estimate fibre orientation distributions using spherical deconvolution (dwi2fod)
  7. Generate a tract file from output of previous step (tckgen)
  8. Apply warpfield from #4 to tract file (tcktransform). At this point I have a tract file registered to T1.
  9. On native DWI, produce tensor (dwi2tensor)
  10. Generate maps of tensor data (FA, ADC) (tensor2metric)
  11. Apply warp field from #4 to FA, ADC maps so they are registered with T1 (mrtransform)
  12. Filter warped tracts connecting ROIs (tckedit)
  13. Calculate stats of warped filtered tract using warped FA,ADC maps (tcksample)

Forgive me if I made glaring mistakes - I’m a first-time user.
Thanks
-dave.

Hi @dmattie,

I usually don’t use the hcp data, and others will be in better position to reply than me, but my understanding is that they are already registered, you don’t need to do all of that, they should be aligned.

Best regards,

Manuel

Thanks @mblesac, lets assume they are not registered - does the pipeline look reasonable? Regarding HCP data specifically, when using mri_info, the dimensions and voxel sizes are definitely different T1 (256x256x256) vs dwi (145x174x145), and the qform orientations are different when I use fslhd to look at the .nii files. When I create the tract on the native dwi, and overlay using mrview, the tract is offset and pointing a different direction than the main image, so I am assuming MRTrix3 wants the orientation and dimensions to match, but perhaps not.

I took a crack at this approach at it give me what I want, this is a T1 freesurfer image with warped tract connecting the left precuneus with left rostral anterior cingulate (wmparc label 1025 and 1026).
Visually it looks good to me. Does anyone have any words of warning?

Hi,

The pipeline seems sensible, and you got good results, so I would use it as it is.

I think depending which files are you using, they should be aligned already, for example take a look at the ISMRM tutorial, the files that are used to generate the connectome from the HCP are aligned.

Best regards,

Manuel