Resting State registering

Dear all,

We have some resting state images in the SC, C3-C4 levels, kinda non-isotropic resolution (1x1x3).
At the same time, we have saggital T1 and T2, with a large FOV, coregistered with the RS images.

We would like to co-register the RS images to a template and we are having some issues doing so.

We’ve tried various approaches but not a single one of them produces a result good enough.
We have obtained the SC from one of the structural images(T1 or T2) and obtained the warp_anat2template using the whole T1(or T2) image. Applying the warp using sct_apply_transfo to the RS image, not good.
We have also tried to ‘mimic’ the RS FOV to the T1/T2 both image and SC segmentation. Once that has been done, we would follow the procedure of getting the labels, registering the ‘small’ FOV-T1 to the template and trying to apply the obtained warp to the RS image but the results are not what we would expect.

Any ideas on how to proceed?

thank you!

Hi @Aran,

Applying the warp using sct_apply_transfo to the RS image is not expected to give good results, because there is inter-scan motion as well as inherent distortions on the RS data.

Changing the size of the FOV does not have any impact because warping fields operate in the physical (not voxel) coordinate space.

As a starting point, I would recommend you follow the workflow described in the batch_processing (under “fmri”). If you cannot get satisfactory results, you can send me an example dataset and I can optimize a pipeline for you.


Hi Julien,

After giving it a few intents, I have to say that, besides having small clues of what I am
doing with the images, it is not working.

I am updating an example, hopefully you will have everything you need.

t1.nii.gz (1.2 MB)
mean_SC_resting.nii.gz (738.6 KB)

Hi @Aran,

Here are some commands that you can try:

# Segment cord on T1w
sct_deepseg_sc -i t1.nii.gz -c t1 -qc qc
# Create two disc labels (C2/C3 and C5/C6) in the cord segmentation using prior information about their location (slice number)
# Note: We cannot use sct_label_vertebrae because it is not robust enough for this axial image with thick slices (sagittal scans are better for this task)
sct_label_utils -i t1_seg.nii.gz -create-seg 14,3:5,6 -o labels_disc.nii.gz
# Register to template
sct_register_to_template -i t1.nii.gz -s t1_seg.nii.gz -ldisc labels_disc.nii.gz -c t1 -qc qc
# Segment cord on EPI
sct_deepseg_sc -i mean_SC_resting.nii.gz -c t2s -qc qc
# Register to template via t1-template registration
sct_register_multimodal -i $SCT_DIR/data/PAM50/template/PAM50_t2s.nii.gz -iseg $SCT_DIR/data/PAM50/template/PAM50_cord.nii.gz -d mean_SC_resting.nii.gz -dseg mean_SC_resting_seg.nii.gz -param step=1,type=seg,algo=slicereg,metric=MeanSquares,smooth=2:step=2,type=im,algo=syn,metric=MeanSquares,iter=5,slicewise=1 -initwarp warp_template2anat.nii.gz -initwarpinv warp_anat2template.nii.gz -qc qc
# Rename warping fields for clarity
mv warp_PAM50_t2s2mean_SC_resting.nii.gz warp_template2fmri.nii.gz
mv warp_mean_SC_resting2PAM50_t2s.nii.gz warp_fmri2template.nii.gz
# Warp template and spinal levels (here we don't need the WM atlas)
sct_warp_template -d mean_SC_resting.nii.gz -w warp_template2fmri.nii.gz -a 0 -s 1 -qc qc

Here is the QC report: (527.5 KB)

As noted, the T1w scan is not ideal for vertebral labeling (because it is an axial scan with thick slices, hence we don’t distinguish the discs well). If you have a sagittal scan that would be preferred. So for now, I just hard-coded the disc location along the S-I axis.