I’ve been using the sct_label_vertebrae executable in a significant amount of data and could not help to wonder how does the algorithm know where to stop labelling the C1 level in the spinal cord (assuming it starts at the C2-C3 disc and labels C2 first and then C1). I’ve noticed, and I might be wrong, that there is some C1 section of the spinal cord being left out from the labelling process if referring to the actual anatomy of the C1 vertebrae (see what I mean in the screenshot attached). Is this because the labelling is based on vertebral levels instead of spinal levels and maybe only taking into account the base of the C1? I read a bit about this “vertebral versus spinal level” in the PAM50 paper. I also checked the SCT course slides to see what was actually labelled in the C1 section (slide 43) but I’m still slightly confused.
I just wanted to ask just for mental sanity as I’m worried that the metrics I’m computing at the C1 level may not be accurate in my case, but the good thing is that the C1 labelling is consistent across my subjects in terms of not covering the entirety of what I think it still is C1 section.
Thank you very much in advance!
*Sagittal view on the left and coronal view on the right with the crosshairs located at the axial cutoff where label 1 begins. In red, what I think the C1 and C2 anatomy corresponds to.
Excellent question! The algorithm is not trained to know the upper part of the C1 vertebrae. Typically, when C1 is incompletely labeled, it is because the spinal cord segmentation stops in the middle of C1 level, and
sct_label_vertebrae takes the spinal cord segmentation as input.
So, it is indeed good to be aware that, when computing metrics in C1 based, the entire vertebrae might not be similarly covered across subjects. It could or could not be a problem, depending on the types of metrics you are dealing with.
Thank you for your speedy response! I really appreciate it.
In the cases I’m seeing, the spinal cord binary segmentation starts further up as it should. That’s why I found it a bit strange that
sct_label_vertebrae didn’t label more C1 since it already has it. (see in this new screenshot the binary seg in white and the labelled seg overlaid on top). Is this variability in the C1 labelling the reason why some papers exclude the C1 from the analysis?
Ah! OK, another reason for C1 to be cropped if the cord segmentation spans it entirely would be because it is difficult to find the top part of C1, hence the algorithm was trained to stop after a given distance that is based on the length of C1 in the PAM50 template (which is cropped):
Historically, no user was interested in looking at C1, hence it was somewhat “neglected”, but I agree we should extend the segmentation on the PAM50 template so that the vertebral labeling would be more correct regarding C1 level.
I’ve opened a feature request, so this issue which will be fixed in a future version of SCT.
That makes sense. Thank you so much, I will keep an eye out for the next SCT releases then.
I saw on GitHub that version 6.0 release with this fix has been slightly pushed back so I was wondering if you knew a rough timeline when this release is going to happen. I have some work depending on this and I was wondering if it was worth waiting for v6.0 to be released or if I should just do it with version 5.8 and then update it whenever v6.0 is out.
Note: My deepest apologies for the late response. (The forum’s email notification system has been down, and so we missed your reply. The notification system has since been fixed, and we are catching up on missed replies.)
Currently, the feature request that @jcohenadad linked to (#3997) has not been scheduled to be included in the v6.0 release. So, I would recommend sticking with v5.8 for now.