Displaying Fibertracts(from MRtrix3) and Surfaces(from FreeSurfer) together

Hi!!,
I have a two time point brain dataset of a single patient. The data consists of structural and DTI for both timesteps. I run FreeSurfer on each timestep separately for generating brain surfaces. When I display the brain surfaces(from both timesteps) together, they were appearing unregistered. Then I figured out that I need to use FreeSurfer Longitudinal to fix the registration problem. If I use FreeSurfer longitudinal, then it will most likely register both time point data to a common template, and my registration problem will be solved. I also want to display fiber tracts generated from MRTrix3 along with the brain surfaces generated by FreeSurfer. The problem is that the DTI data will not be touched by FreeSurfer. I am anticipating that this will become a problem to display fibertracts and brain surface properly. Please see below table that shows the data discrepancy I am expecting:

+----------------------------------+-----------------------------------+
|             time t0              |              time t1              |
+----------------------------------+-----------------------------------+
| T1.nii(registered by FreeSurfer) | T1.nii (registered by FreeSurfer) |
| DTI.nii (unregistered DTI image) | DTI.nii (unregistered DTI image)  |
+----------------------------------+-----------------------------------+

FreeSurfer only takes in the structural data for brain surface generation and it leaves the DTI image untouched. Later, the fiber tracts generated using MRtrix3 won’t align with the FreeSurfer surfaces.
How can fix this problem? Do you think it is possible to fetch some transformation and apply to DTI fiber tracts to fix the issue?

Thanks in advance
Reshma

Hi Reshma,

I have zero familiarity with the FreeSurfer longitudinal pipeline, so I can’t provide any feedback specific to such. But I’ll try to speak to the concept a little.

I’m assuming based on your description that the streamlines you’re generating have no dependency whatsoever on FreeSurfer. So what you have is, for each time point independently, the requirement for some transformation to bring the DWI data (and anything derived from such) into alignment with the T1w data.

The first question is the need for registration. Were the T1w and DWI data accurately co-aligned before FreeSurfer was executed? If so, then finding the transformation that FreeSurfer calculated for the T1w image at that time point and applying that should bring the DWI data (and anything derived from such) into alignment with the central longitudinal analysis space. If not, then the existence of a longitudinal analysis is a red herring, and what you have is a generic inter-modal alignment problem.

The second question is, once you know the transformation that needs to be applied to your data to bring it into alignment, what data do you apply it to. The generally preferred approach is to bring DWI and T1w into alignment early on in the pipeline, so that anything that you derive from either modality is intrinsically in alignment. E.g. If you’d transformed the DWI data prior to generating streamlines, the streamlines wouldn’t need to be transformed to have alignment with the T1w. If not, it is possible to spatially transform the streamlines data themselves rather than transforming the image data and re-generating streamlines; though it’s a bit clunky at the moment as tcktransform currently only accepts non-linear warps, not linear affine transformations; see instructions here.

Cheers
Rob