data-multi-subject
data-multi-subject copied to clipboard
Add T2w dorsal rootlets labels
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 --> usingdesc-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!
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
...
it would be good if @NathanMolinier can vet this (sorry Nathan, you are now our internal BIDS consultant 😅)
Hold on with merging.
According to this comment,
desc-ratershould 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).
but the least we should do is to append the entity
label-XXXat 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.
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.
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?
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 !
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
_dsegbecause 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?
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.
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)
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
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.
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.
- Bring rootlets labels from the
jv/add_rootlets_labelsbranch tomaster:
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
- 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
- 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
- Push updated rootlets labels following https://github.com/spine-generic/spine-generic/wiki/git-annex#images-niigz