Multimodal registration for human postmortem data

Dear SCT Developers,

As am trying to generate a multimodal template for human cervical level. I have gone through manual registration using MINC software but it’s time consuming.

Could you please advice whether is there automated optimized syntax to register multi-modal data which they are not in the same space, in my case (T1,B0 and FA) or not implemented in SCT yet?

I hope my question is clear and appreciate any advice from a such developers worldwide in this useful and friendly users tools.

Many thanks in advance,



Hi @ihattan ,

I’m very sorry for the slow reply. For some reasons I didn’t get the notification.

Anyways, to answer your question, I would need more info about what you mean by ‘space’.

If you meant ‘voxel coordinate’ (ie: images were acquired during the same session, but do not have the same sizes), then yes, you can do registration and resampling to the target space using sct_register_multimodal.

If you meant ‘world coordinate’ (ie: images were not acquired during the same imaging session), then you could also use sct_register_multimodal, but additional information needs to be passed to have a first coarse pre-registration between images, or, if the acquisition protocol (notably FOV placement) is similar enough across images, then initial alignment won’t be necessary.

Here are some suggestions you could try:

  • We have recently introduced sct_register_multimodel -algo dl, that can deal with registration between two different sessions and contrasts. However, this requires images to be relatively closes. More details here.
  • If images are too far apart, you could use a label-based method as a pre-alignment. For example, segment the cord on source and destination image, and then use sct_register_multimodal -param step=1,type=seg,algo=centermass to bring the two segmentations closeby, and then finish with finer non-linear registration.

There are much more possibilities to explore.

Please note that the suggestions above apply regardless if you have different contrasts or the same contrast. Eg: Two T1w scans acquired at two different sessions will also require initial prealignment.

1 Like

Hi @jcohenadad

Many thanks in advance for your prompt reply despite your busy time. Fantastic! I’m progressing in the project with the help of your greatest tools and your valuable feedback. I’ll try these steps out and keep you posted.

Many thanks once again for your greatest help and continues support from you and your amazing Team.



1 Like

Hi @jcohenadad

I’ve used sct_register_multimodal to register B0 to t1 and apply the output wrapB0_2_T1 to each subject to FA using sct_apply_transfo. Now, I overlaid my subjs and as you can see below in the screenshots that one subject is far away from the other subs space. I would like to have them all in the same space before I generate the template. I wonder whether it’s important to have them in same space before averaging or trust Ants to do them automatically while rigid body step? Any recommendation please? Is there a specefic params to do so?

**please note the coverage of the segments slightly differs as some from c2-c7 and the rest from c3 -c7.
**current registration above was done for contrasts from same subject that was in same session only.

Many thanks in advance…

they are too far apart for template generation-- you need to have a better coarse alignement first

1 Like

Hi @jcohenadad

Please find my multi-contrast ex-vivo cervical cord template result at 80 micron isotropic resolution. I used with the below syntax parameters. How it looks like and would be there any potential way or tricks for the syntax for any improvements if not as expected result?

Please note: this result was averaged out 5 normal ex_vivo subjs. -d 3 -r 1 -b 1 -c 2 -k 3 -n 0 -y 0 3392_t1.nii.gz 3392_b0.nii.gz 3392_fa.nii.gz 3890_t1.nii.gz 3890_b0.nii.gz 3890_fa.nii.gz 3932_t1.nii.gz 3932_b0.nii.gz 3932_fa.nii.gz 4219_t1.nii.gz 4219_b0.nii.gz 4219_fa.nii.gz 4026_t1.nii.gz 4026_b0.nii.gz 4026_fa.nii.gz

However, I’m very excited to test GitHub - neuropoly/template: A framework for creating unbiased MRI templates of the spinal cord to reproduce these result but I need some help from your team please to guide me with the accurate steps? I had some issues while executing the syntax into my home-directory on Linux system.




Many thanks in advance.



Hello Ibrahim,
I think I can help you with using the GitHub - neuropoly/template: A framework for creating unbiased MRI templates of the spinal cord. Could you please mention the issues you got during executing the syntax on your system (screenshots/error tracebacks would be helpful)?