data-multi-subject icon indicating copy to clipboard operation
data-multi-subject copied to clipboard

Add T2w dorsal rootlets labels

Open valosekj opened this issue 1 year ago • 9 comments

This PR adds dorsal C2-C8 rootlets labels for T2w images of 24 subjects. The labels were part of the "D5 dataset" used for training and testing of the "M5 model":

  • 21 images were used for the rootlets model training
  • 3 images were used for the evaluation of the inter-rater variability and rootlets model testing. Thus, 5 labels (4 manual raters + STAPLE ground truth, details here) are uploaded for each of these 3 images.

Based on this discussion, I chose the following suffixes according our intranet:

  • sub-amu01_T2w_label-rootlets_dseg.nii.gz - training label (one label per image)
  • sub-amu02_T2w_label-rootlets_dseg_desc-rater1.nii.gz - testing label (5 labels per image --> using desc- to distinguish between raters)

The rootlets labels were created from the raw T2w images (i.e., no reorientation or resampling was done) --> I included "SpatialReference": "orig" into JSON sidecars.

@mguaypaq, could you please check the PR and merge? Thanks!

valosekj avatar Feb 13 '24 19:02 valosekj

Hold on with merging.

According to this comment, desc-rater should NOT go at the end as currently done in this PR:

$ tree derivatives/labels/sub-amu02/anat/ 
...
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater1.json
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater1.nii.gz
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater2.json
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater2.nii.gz
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater3.json
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater3.nii.gz
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater4.json
├── sub-amu02_T2w_label-rootlets_dseg_desc-rater4.nii.gz
├── sub-amu02_T2w_label-rootlets_dseg_desc-staple.json
├── sub-amu02_T2w_label-rootlets_dseg_desc-staple.nii.gz
...

valosekj avatar Feb 16 '24 16:02 valosekj

it would be good if @NathanMolinier can vet this (sorry Nathan, you are now our internal BIDS consultant 😅)

jcohenadad avatar Feb 16 '24 16:02 jcohenadad

Hold on with merging.

According to this comment, desc-rater should NOT go at the end as currently done in this PR:

Yes indeed, doing this will help us all when trying to identify data for a given dataset. I did not add any specific rules in our intranet to follow a specific order when using entities, but the least we should do is to append the entity label-XXX at the end right before the suffix (which is the last thing we should have before the extension).

NathanMolinier avatar Feb 16 '24 16:02 NathanMolinier

but the least we should do is to append the entity label-XXX at the end right before the suffix (which is the last thing we should have before the extension).

Okay! Thanks for the confirmation; I will update the filenames in this branch.

Just a side note:

I did not add any specific rules in our intranet to follow a specific order when using entities

I wrote this function fetching individual BIDS entities using regular expressions based on their keys (e.g., sub-, ses-). The function can be extended to any other entities, and its advantage is that it is "order-agnostic" (thanks to regular expressions). Maybe it might also be useful to you.

valosekj avatar Feb 16 '24 19:02 valosekj

I wrote this function fetching individual BIDS entities using regular expressions based on their keys (e.g., sub-, ses-). The function can be extended to any other entities, and its advantage is that it is "order-agnostic" (thanks to regular expressions). Maybe it might also be useful to you.

Great ! That's how BIDS should be used indeed ! Entities are using keys to allow automation ! That's why, for me, BIDS should not use suffixes at all, they're basically just random values not attached to any keys.

NathanMolinier avatar Feb 19 '24 16:02 NathanMolinier

I updated the filenames to NOT go with desc-rater at the end in https://github.com/spine-generic/data-multi-subject/pull/158/commits/cb54bc7cafdb173067ab08006c2d3c4606b0061e.

For example:

sub-amu02_T2w_label-rootlets_dseg_desc-rater1.nii.gz --> sub-amu02_T2w_desc-rater1_label-rootlets_dseg.nii.gz

@NathanMolinier, could you please confirm, that the rootlets labels are now okay?

valosekj avatar Mar 25 '24 22:03 valosekj

Hey @valosekj ! This new naming version is indeed better ! Also, I would like to add a small comment: I see that you are using the suffix _dseg because I imagine you are using discrete segmentations (label values may go higher than 1: not binary). However, ideally, the mapping between label values and the segmented structure should be referenced somewhere (on our intranet like discs and vertebrae or directly within the dataset). So, is this mapping available somewhere ? Apart from that the filenames are good to go !

NathanMolinier avatar Mar 27 '24 19:03 NathanMolinier

Hey @valosekj ! This new naming version is indeed better !

Great, thanks for taking the look!

Also, I would like to add a small comment: I see that you are using the suffix _dseg because I imagine you are using discrete segmentations (label values may go higher than 1: not binary).

Exactly! Rootlet labels have values from 2 to 8.

However, ideally, the mapping between label values and the segmented structure should be referenced somewhere (on our intranet like discs and vertebrae or directly within the dataset). So, is this mapping available somewhere ? Apart from that the filenames are good to go !

Good point! Currently, the mapping is avaialble, for example, in the GIF in the rootlets README. But yes, adding a section/tutorial about rootlets to https://spinalcordtoolbox.com is a good idea. I've put it on my to-do list (https://github.com/ivadomed/model-spinal-rootlets/issues/39).

@mguaypaq, can you please merge?

valosekj avatar Mar 27 '24 20:03 valosekj

Ah, the dataset validator is failing because it's too old and doesn't run properly, not because it identified a real issue. I'll have to fix it before merging this PR.

mguaypaq avatar Mar 28 '24 22:03 mguaypaq

Ah, the dataset validator is failing because it's too old and doesn't run properly, not because it identified a real issue. I'll have to fix it before merging this PR.

Hey @mguaypaq! What's the status of the dataset validator? We were contacted by a user who wanted to download and use the rootlets labels. (and he couldn't find them under the master branch)

valosekj avatar Jan 31 '25 17:01 valosekj

Maybe we should wait before merging this PR we are completely updating the filenames and tree with @sandrinebedard in https://github.com/spine-generic/data-multi-subject/pull/176

NathanMolinier avatar Jan 31 '25 18:01 NathanMolinier

Hey @mguaypaq! What's the status of the dataset validator?

Sorry, I haven't worked on this yet. And sadly, I think there's been negative progress: in December 2024, the bids-validator project switched to a completely new version 2.0, using Deno rather than NodeJS as their runtime, so I have to figure out how to upgrade that too.

mguaypaq avatar Feb 03 '25 16:02 mguaypaq

Okay, after an in-person discussion with @mguaypaq and @NathanMolinier, I did the following steps to make the rootlets masks from this PR compatible with the latest master (after merging https://github.com/spine-generic/data-multi-subject/pull/176):

TL;DR: I reoriented the rootlets labels from LPI to RPI to match the corresponding T2w images.

  1. Bring rootlets labels from the jv/add_rootlets_labels branch to master:
git checkout master
git checkout - -- ./derivatives/labels/sub-mgh01/anat/sub-mgh01_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-ucdavis03/anat/sub-ucdavis03_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-stanford05/anat/sub-stanford05_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-stanford02/anat/sub-stanford02_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona02/anat/sub-barcelona02_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-amu01/anat/sub-amu01_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-balgrist03/anat/sub-balgrist03_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-balgrist04/anat/sub-balgrist04_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona03/anat/sub-barcelona03_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-balgrist02/anat/sub-balgrist02_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-brnoUhb01/anat/sub-brnoUhb01_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-cmrra02/anat/sub-cmrra02_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-mgh02/anat/sub-mgh02_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-cmrra04/anat/sub-cmrra04_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-cardiff04/anat/sub-cardiff04_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-cardiff02/anat/sub-cardiff02_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater4_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater3_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater2_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-staple_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater1_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater2_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater4_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater3_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater1_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-staple_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-barcelona06/anat/sub-barcelona06_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater4_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater3_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater2_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-staple_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater1_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-amu05/anat/sub-amu05_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-balgrist01/anat/sub-balgrist01_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-balgrist06/anat/sub-balgrist06_T2w_label-rootlets_dseg.nii.gz ./derivatives/labels/sub-geneva01/anat/sub-geneva01_T2w_label-rootlets_dseg.nii.gz
  1. Compare resolution and orientation of the rootlets labels and corresponding T2w images:
for f in $(find . -name "*rootlets*.nii.gz"); do                                                                                                                                                                                                                                          (master|…36)
    label=$f
    image=$(echo "$f" | sed 's|^./derivatives/labels/||; s/_label-rootlets_dseg//')

    echo ""
    echo "$label"
    pixdim "$label"
    orientation "$label"
    echo ""

    # Check if $image contains "desc" and skip if it does
    if [[ $image != *desc* ]]; then
        echo "$image"
        pixdim "$image"
        orientation "$image"
    fi
done

TL;DR: resolution is the same; orientation is different (RPI vs LPI)

details
./derivatives/labels/sub-mgh01/anat/sub-mgh01_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-mgh01/anat/sub-mgh01_T2w.nii.gz
pixdim		[-1.0, 0.800001, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-ucdavis03/anat/sub-ucdavis03_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-ucdavis03/anat/sub-ucdavis03_T2w.nii.gz
pixdim		[-1.0, 0.8, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-stanford05/anat/sub-stanford05_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800036, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-stanford05/anat/sub-stanford05_T2w.nii.gz
pixdim		[-1.0, 0.800036, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-stanford02/anat/sub-stanford02_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799971, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-stanford02/anat/sub-stanford02_T2w.nii.gz
pixdim		[-1.0, 0.799971, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-barcelona02/anat/sub-barcelona02_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-barcelona02/anat/sub-barcelona02_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-amu01/anat/sub-amu01_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800001, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-amu01/anat/sub-amu01_T2w.nii.gz
pixdim		[-1.0, 0.800001, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-balgrist03/anat/sub-balgrist03_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-balgrist03/anat/sub-balgrist03_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-balgrist04/anat/sub-balgrist04_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-balgrist04/anat/sub-balgrist04_T2w.nii.gz
pixdim		[-1.0, 0.8, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-barcelona03/anat/sub-barcelona03_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-barcelona03/anat/sub-barcelona03_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-balgrist02/anat/sub-balgrist02_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-balgrist02/anat/sub-balgrist02_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-brnoUhb01/anat/sub-brnoUhb01_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799976, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
LPI
sub-brnoUhb01/anat/sub-brnoUhb01_T2w.nii.gz
pixdim		[-1.0, 0.799976, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-cmrra02/anat/sub-cmrra02_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-cmrra02/anat/sub-cmrra02_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-mgh02/anat/sub-mgh02_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-mgh02/anat/sub-mgh02_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-cmrra04/anat/sub-cmrra04_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-cmrra04/anat/sub-cmrra04_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-cardiff04/anat/sub-cardiff04_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-cardiff04/anat/sub-cardiff04_T2w.nii.gz
pixdim		[-1.0, 0.800002, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-cardiff02/anat/sub-cardiff02_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-cardiff02/anat/sub-cardiff02_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater4_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800042, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater3_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800042, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater2_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800042, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-staple_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800042, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-brnoUhb03/anat/sub-brnoUhb03_T2w_desc-rater1_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800042, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater2_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater4_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater3_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-rater1_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-barcelona01/anat/sub-barcelona01_T2w_desc-staple_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-barcelona06/anat/sub-barcelona06_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-barcelona06/anat/sub-barcelona06_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater4_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800001, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater3_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800001, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater2_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800001, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-staple_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800001, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-amu02/anat/sub-amu02_T2w_desc-rater1_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.800001, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI

./derivatives/labels/sub-amu05/anat/sub-amu05_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-amu05/anat/sub-amu05_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-balgrist01/anat/sub-balgrist01_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-balgrist01/anat/sub-balgrist01_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-balgrist06/anat/sub-balgrist06_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.799999, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-balgrist06/anat/sub-balgrist06_T2w.nii.gz
pixdim		[-1.0, 0.799999, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
./derivatives/labels/sub-geneva01/anat/sub-geneva01_T2w_label-rootlets_dseg.nii.gz
pixdim		[1.0, 0.8, 0.8, 0.8, 0.0, 0.0, 0.0, 0.0]
LPI
sub-geneva01/anat/sub-geneva01_T2w.nii.gz
pixdim		[-1.0, 0.8, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0]
RPI
  1. Reorient rootlets labels to RPI to match the corresponding T2w images - https://github.com/spine-generic/data-multi-subject/pull/158/commits/3400331fa55208a17a4d34bb9c99ecbc86b93414:
for f in $(find . -name "*rootlets*.nii.gz"); do sct_image -i $f -setorient RPI -o $f;done
  1. Push updated rootlets labels following https://github.com/spine-generic/spine-generic/wiki/git-annex#images-niigz

valosekj avatar Mar 04 '25 20:03 valosekj