Normalize PET to MNI

Hi all,
I have been trying to normalize a Tau PET into MNI space using FSL but i cant get a good output.
My current pipeline is as follows:

Normalize T1 in MNI space using flirt and fnirt (output image “T1_MNI”)

1. fslreorient2std t1_raw t1_re
2. robustfov t1_re t1_robust
3. bet t1_robust t1_brain
4.  flirt -in t1_brain -ref mni -out flirt_out -omat flirt.mat
5. fnirt --in=t1_brain --ref=mni --aff=flirt.mat --iout=t1_mni --cout=warp_out

Register PET to T1_MNI

6. fslreorient2std pet_raw pet_re
7. flirt -in pet_re -ref t1_mni -out pet_flirt -init flirt.mat -applyxfm

Normalize PET to MNI using T1_MNI warp

8. applywarp -in pet_flirt -r mni -o pet_mni -w warp_out

This runs well but the output looks like the attached image (colored image is mni, gray image is pet_mni)

I have tried using different dofs in the flirt, different applyxfm, using the MNI as ref in step 7, with and without the robustfov and so and so but nothing seems to work.

I would appreciate any help or suggestion.

Thank you!

Hi, nice effort!

What would be interesting would be to see at which step the command fails to achieve its goal: Has the T1w normalization to MNI worked well? Is the brain mask well extracted? Is step 4 ok? What about step 5? Is the PET image well registered to the T1w image?

My guess is that it is the step 7 that fails in your case.
One reason would be that the PET image is to far from the T1w and the minimisation falls into a local minima which is not the correct solution
One other reason would be that the pet image contrast is very different than the MRI T1w contrast and you will need to choose the appropriate cost function to account for that. The default of flirt is corratio , perhaps mutual info would work better?

Also, about the T1w normalisation steps (4 and 5): if you look at the example here:

A recommended strategy would be to use “betted” images of both the MNI and the T1w image in the initialization process with flirt, and then the full versions of T1w and MNI images are used for the fnirt command. (see what is written in the --aff section of the page linked above)

Don’t get me wrong I love FSL but I believe the registration algorithms within it aren’t ideal for this purpose:

My algorithm for this uses ANTs, the CT scan from the Tau pet session and the CT template in MNI space here: Clinical/Tutorial/high_res at master · neurolabusc/Clinical · GitHub

  1. Threshold the CT between 0 and 100 hounsfield units
  2. BET the CT
  3. Then use ANTs to register the CT to the template CT with a fairly comprehensive diffeomorphic using a MI cost function.

PM me if you don’t know how to modify ANTs antsRegistrationSyN to use MI as a cost function

If you have CT to go along with the PET, then you will most likely get better results. If you also have a subject-specific MRI, that would be useful too. If you only have this Tau PET image, then an NMI based alignment cost might work well. If the brain could be roughly extracted first, that might help too.