Skip to content

Lumbar rootlets - model training on Draw Tube labels #67

@valosekj

Description

@valosekj

This issue summarizes model training on T2w lumbar data with relabeled rootlets using the 3D Slicer Draw Tube module.

This is a follow up of #48.

0. Data overview

We have 6 subjects with the following labels:

sub_labels = {"sub-CTS04": { "start": "T11","end": "S1"},
             "sub-CTS05": {"start": "T11","end": "S1"},
             "sub-CTS09": {"start": "T10","end": "S2"},
             "sub-CTS10": {"start": "T11","end": "S1"},
             "sub-CTS14": {"start": "T11","end": "S1"},
             "sub-CTS15": {"start": "T10","end": "S2"}}

1. Preparing nnUNet folders

details
# imagesTr
cp sub-CTS04_ses-SPpre_acq-zoomit_T2w.nii.gz Dataset301_LumbarRootlets/imagesTr/sub-CTS04_ses-SPpre_T2w_001_0000.nii.gz
cp sub-CTS05_ses-SPpre_acq-zoomit_T2w.nii.gz Dataset301_LumbarRootlets/imagesTr/sub-CTS05_ses-SPpre_T2w_001_0000.nii.gz
cp sub-CTS09_ses-SPpre_acq-zoomit_T2w.nii.gz Dataset301_LumbarRootlets/imagesTr/sub-CTS09_ses-SPpre_T2w_001_0000.nii.gz
cp sub-CTS10_ses-SPanat_acq-zoomit_T2w.nii.gz Dataset301_LumbarRootlets/imagesTr/sub-CTS10_ses-SPanat_T2w_001_0000.nii.gz
cp sub-CTS14_ses-SPpre_acq-zoomit_T2w.nii.gz Dataset301_LumbarRootlets/imagesTr/sub-CTS14_ses-SPpre_T2w_001_0000.nii.gz
cp sub-CTS15_ses-SPpre_acq-zoomit_T2w.nii.gz Dataset301_LumbarRootlets/imagesTr/sub-CTS15_ses-SPpre_T2w_001_0000.nii.gz

# labelsTr
cp T11-S1_RD_LD_sub-CTS04_relabeled.nii.gz Dataset301_LumbarRootlets/labelsTr/sub-CTS04_ses-SPpre_T2w_001.nii.gz
cp T11-S1_RD_LD_sub-CTS05_relabeled.nii.gz Dataset301_LumbarRootlets/labelsTr/sub-CTS05_ses-SPpre_T2w_001.nii.gz
cp T10-S2_RD_LD_sub-CTS09_relabeled.nii.gz Dataset301_LumbarRootlets/labelsTr/sub-CTS09_ses-SPpre_T2w_001.nii.gz
cp T11-S1_RD_LD_sub-CTS10_relabeled.nii.gz Dataset301_LumbarRootlets/labelsTr/sub-CTS10_ses-SPanat_T2w_001.nii.gz
cp T11-S1_RD_LD_sub-CTS14_relabeled.nii.gz Dataset301_LumbarRootlets/labelsTr/sub-CTS14_ses-SPpre_T2w_001.nii.gz
cp T10-S2_RD_LD_sub-CTS15_relabeled.nii.gz Dataset301_LumbarRootlets/labelsTr/sub-CTS15_ses-SPpre_T2w_001.nii.gz

2. Changing label values to be consecutive (this is required by nnUNet)

details

Original values

cd labelsTr
for file in *nii.gz;do get_unique_values $file;done
[ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
[ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
[ 0. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.]
[ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
[ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
[ 0. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.]

Removing label 18 (presented only for two subjects) for now:

sct_maths -i sub-CTS09_ses-SPpre_T2w_001.nii.gz -thr 19 -o sub-CTS09_ses-SPpre_T2w_001.nii.gz
sct_maths -i sub-CTS15_ses-SPpre_T2w_001.nii.gz -thr 19 -o sub-CTS15_ses-SPpre_T2w_001.nii.gz

Recoding using recode_nii.py:

for file in *nii.gz;do python ~/code/model-spinal-rootlets/utilities/recode_nii.py -i $file -o $file;done
Unique values in the data: [ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
Unique values in the recoded data: [0 1 2 3 4 5 6 7 8]
Unique values in the data: [ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
Unique values in the recoded data: [0 1 2 3 4 5 6 7 8]
Unique values in the data: [ 0. 19. 20. 21. 22. 23. 24. 25. 26. 27.]
Unique values in the recoded data: [0 1 2 3 4 5 6 7 8 9]
Unique values in the data: [ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
Unique values in the recoded data: [0 1 2 3 4 5 6 7 8]
Unique values in the data: [ 0. 19. 20. 21. 22. 23. 24. 25. 26.]
Unique values in the recoded data: [0 1 2 3 4 5 6 7 8]
Unique values in the data: [ 0. 19. 20. 21. 22. 23. 24. 25. 26. 27.]
Unique values in the recoded data: [0 1 2 3 4 5 6 7 8 9]

3. Training

fold1, 4 training and 2 validation images.

Semantic (level-specific) model: Dataset301_LumbarRootlets

cd ~/code/model-spinal-rootlets/training
bash run_training.sh 1 301 Dataset301_LumbarRootlets

Binary model (all rootlets set to 1): Dataset302_LumbarRootlets

Binarize labels and modify dataset.json:

cd $nnUNet_raw
cp -r Dataset301_LumbarRootlets Dataset302_LumbarRootlets
cd Dataset302_LumbarRootlets/labelsTr
for file in *nii.gz;do sct_maths -i $file -bin 0.5 -o $file;done
cd ..
# modify dataset.json
cd ~/code/model-spinal-rootlets/training
bash run_training.sh 1 302 Dataset302_LumbarRootlets

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions