Vertebral label transform without registering to template?


Dear Julien/dear SCT hivemind

I have a calculated a map, let’s call it qMAP. Very non-isotropic resolution (0.6x0.6x5), small FOV (does not include all cervical vertebrae), and I want to stay in this space.

I have a saggital T2, with a large FOV (from midlevel in the brain down to the tenth vertebrae), which I have used to get vertebral labels. I want to apply these labels to qMAP , and extract values (mean intensity, etc) at these labels. I think to extract the values, sct_extract_metric is the tool to use. However, I am struggling with labeling.

I have tried to co-register the T2 to the qMAP, but then, due to the small FOV, the labeling fails (vertebral levels are almost always offset by 1, eg C3 is mislabeled as C2, because C1 is not in the FOV).
If I label the T2 first, and then warp the labels, the coregistration changes the values (eg label 3 is now between 2.8 and 3.2 or so, and there are stay {2.5, 3.5} values outside of the 3rd level).

I know there is a worked example in the latest course materials (page 69 and onwards, talking about MTR value extraction), but that uses registering the T2 to the template space, and I am not using the PAM50 template (I am doing qMRI, and wish to stay in native space as long as possible).

I am getting confused about how to do this using just register_multimodal. Could you please help me out?


@Daniel_Papp when moving your T2 vertebral labeling to the qMAP space, have you tried using sct_apply_transfo with nearest neighbour interpolation (flag -x nn) instead of the default linear interpolation? That would give you integer (not float) vertebral labeling values.


In the immortal words of Homer Jay Simpson, esquire:

NN works :slight_smile: