Sct_register_multimodal difficulties v 4.0.2

Dear Dr Cohen-Adad,

I am trying to register my EPIs to PAM50_t2 template (indeed registering PAM50 to my EPI).
For that, I have used a different number of parameters, with different -algo parameters etc. For initwarp I used the warp of my participant T2 to PAM50 template (which seemed to work very well). The segmentations of T2 and EPI are pretty good as well, I manually drew the segmentation of EPI.
However, unfortunately, I am still not able to find the optimal set of parameters.

In addition to that, I also have tried a 2 step strategy where I registered individual T2 and EPI and T2 to PAM50 template, concatenated the transformations and applied the final/combined warp to the EPI.
In the end, this seems to work a bit better compared to the sct_register_multimodal with different parameters I have tried but still, I am still not sure about the results.

Here are some parameters I have tried for register multimodal (and also 2 step approach which I do not copy here):

sct_register_multimodal -i /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_t2.nii.gz -d EPI.nii.gz -iseg  /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_cord.nii.gz -dseg EPI_seg.nii.gz  -param step=1,type=seg,algo=centermass:step=2,type=seg,algo=bsplinesyn,metric=MeanSquares,smooth=1,slicewise=1,iter=3 -initwarp warp_template2anat.nii.gz -initwarpinv warp_anat2template.nii.gz -x spline
 
sct_register_multimodal -i /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_t2.nii.gz -d EPI.nii.gz -iseg  /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_cord.nii.gz -dseg EPI_seg.nii.gz -param step=1,type=seg,algo=slicereg,smooth=3:step=2,type=seg,algo=bsplinesyn,slicewise=1,iter=3 -initwarp warp_template2anat.nii.gz -initwarpinv warp_anat2template.nii.gz -x spline
 
sct_register_multimodal -i /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_t2.nii.gz -d EPI.nii.gz -iseg  /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_cord.nii.gz -dseg EPI_seg.nii.gz -param step=1,type=seg,algo=slicereg,smooth=3 -initwarp warp_template2anat.nii.gz -initwarpinv warp_anat2template.nii.gz -x spline
 
sct_register_multimodal -i /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_t2.nii.gz -d EPI.nii.gz -iseg home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_cord.nii.gz -dseg EPI_seg.nii.gz  -param step=1,type=seg,algo=centermass,smooth=3  -initwarp warp_template2anat.nii.gz -initwarpinv warp_anat2template.nii.gz -x spline
 
sct_register_multimodal -i /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_t2.nii.gz -d EPI_cropped.nii.gz -iseg /home/raid2/mkaptan/sct_4.0.2/data/PAM50/template/PAM50_cord.nii.gz -dseg EPI_seg.nii.gz -param step=1,type=seg,algo=centermass:step=2,type=seg,algo=bsplinesyn,metric=MeanSquares,iter=10 gradStep=1:step=3,type=im,algo=syn,metric=CC,iter=20 -initwarp warp_template2anat.nii.gz -initwarpinv warp_anat2template.nii.gz -x spline

Could you please help me with that?

I am not able to upload the images due to size here but I can send via email if you would like to!

Thank you very much,

Best,
Merve

Hi @Merve

If you email me the files EPI.nii.gz, EPI_seg.nii.gz and warp_template2anat.nii.gz i’d be happy to help

Best,
Julien

Hi @Merve

I’ve tried adding a step using the image, and replacing the PAM50_t2 with the PAM50_t2s (closer contrast). Here is the syntax:

sct_register_multimodal -i $SCT_DIR/data/PAM50/template/PAM50_t2s.nii.gz -d EPI.nii.gz -iseg $SCT_DIR/data/PAM50/template/PAM50_cord.nii.gz -dseg EPI_seg.nii.gz -param step=1,type=seg,algo=centermass:step=2,type=seg,algo=bsplinesyn,metric=MeanSquares,smooth=1,slicewise=1,iter=3:step=3,type=im,algo=syn,metric=CC,iter=5,slicewise=1 -initwarp warp_template2anat.nii.gz -x spline -qc qc

And here is the QC report that compares my trials, the 3rd one corresponds to the syntax above (you can toggle the overlay with the right arrow): qc.zip (536.1 KB)

Cheers,
Julien

Dear Dr Cohen-Adad,

Thank you very much!
Could you please send me the output file EPI_reg.nii.gz- I just would like to compare it to what I get and to see if I made a mistake, because in the output I get, I still have the very strong warps present and fit to cord (it seems wider in A-P) seems a bit worse compared to the 2 step approaches I have used?

Thank you very much again,

Kind Regards,
Merve

Hi, I could not generate it because you did not send me the file warp_anat2template.nii.gz (as per my request). If you send it to me i will be able to generate it (with the flag -initwarpinv)

Hi Merve,

The registration of the EPI to the template is as good as the template registered on the EPI (this is a bijective transformation). However, the apparent registration of the EPI seems “worse” because you are witnessing issues that are inherent to this type of images. There are two outstanding issues there:

  1. The EPI resolution is highly anisotropic with thick slices (5mm), so when the cord is “straightened” to align with the PAM50 template, there are necessary some interpolation errors that occur, which manifest as “weird warping” when going from one EPI slice to another on the PAM50 space. You don’t notice this issue when looking at the PAM50_reg in the EPI space, because the PAM50 resolution is 0.5mm isotropic, hence it behaves better when re-interpolated to a coarser grid (in this case 1x1x5 mm)
  2. The gradient-echo EPI is hampered by signal drop-out caused by susceptibility artifacts, which notably manifest close to intervertebral discs (which have different susceptibility profile than the parenchyma). See red arrows in the figure below. These signal drop-out participate in the apparent “wrong” registration, although it is not a problem of registration, but a problem inherent to the image.

When looking at an average across subjects in the PAM50 space, it looks “cleaner” because by averaging, these artifacts are washed out across subjects.

Thank you very much!! And did you produce this registration with the syntax that you recommended?

Thank you very much!! And did you produce this registration with the syntax that you recommended?

yes