spinalcord

Spinal cord segmentation agnostic to MRI contrasts

The contrast agnostic spinal cord segmentation uses a 3D CNN model based on the nnUNet framework. Training data consists of healthy controls from the open-source Spine Generic Multi Subject database and pathologies from private datasets including DCM, MS, SCI (Acute, Intermediate and Chronic; Pre/Post-operative) patients. Segmentations have been tested with the following contrasts: [T1w, T2w, T2star, MTon_MTS, GRE_T1w, DWI, mp2rage_UNIT1, PSIR, STIR, EPI], but other contrasts that are close visual matches may also work well with this model.

Reference

@article{bedard2025towards,
     title={Towards contrast-agnostic soft segmentation of the spinal cord},
     author={Bédard, Sandrine and Karthik, Enamundram Naga and Tsagkas, Charidimos and Pravatà, Emanuele and Granziera, Cristina and Smith, Andrew and Weber II, Kenneth Arnold and Cohen-Adad, Julien},
     journal={Medical Image Analysis},
     pages={103473},
     year={2025},
     publisher={Elsevier}
}

Project URL: https://github.com/sct-pipeline/contrast-agnostic-softseg-spinalcord/

usage: sct_deepseg spinalcord [-i <file> [<file> ...]] [-o <str>] [-install]
                              [-custom-url CUSTOM_URL [CUSTOM_URL ...]]
                              [-largest {0,1}] [-fill-holes {0,1}]
                              [-remove-small REMOVE_SMALL [REMOVE_SMALL ...]]
                              [-qc <folder>] [-qc-dataset <str>]
                              [-qc-subject <str>] [-qc-plane <str>]
                              [-qc-seg <file>] [-h] [-v <int>] [-r {0,1}]
                              [-test-time-aug]

INPUT/OUTPUT

-i

Image filename(s) to segment. If segmenting multiple files, separate filenames with a space.

-o

Output file name. The chosen filename will be used as a base name, and model-specific suffixes will be added to the end depending on the type of output (e.g. ‘_cord.nii.gz’, ‘_gm.nii.gz’, etc.).

TASKS

-install

Install models that are required for specified task.

Default: False

-custom-url

URL(s) pointing to the .zip asset for a model release. This option can be used with -install to install a specific version of a model. To use this option, navigate to the ‘Releases’ page of the model, find release you wish to install, and right-click + copy the URL of the .zip listed under ‘Assets’. Example: sct_deepseg spinalcord -install -custom-url CUSTOM_URL sct_deepseg spinalcord -i t2.nii.gz

PARAMETERS

-largest

Possible choices: 0, 1

Keep the largest connected object from each output segmentation; if not set, all objects are kept.

Default: 0

-fill-holes

Possible choices: 0, 1

If set, small holes in the segmentation will be filled in automatically.

Default: 0

-remove-small

Minimal object size to keep with unit (mm3 or vox). A single value can be provided or one value per prediction class. Single value example: 1mm3, 5vox. Multiple values example: 10 20 10vox (remove objects smaller than 10 voxels for class 1 and 3, and smaller than 20 voxels for class 2).

-test-time-aug

Perform test-time augmentation (TTA) by flipping the input image along all axes and averaging the resulting predictions. Note: The time it takes to run the model will increase due to the additional predictions.

Default: False

MISC ARGUMENTS

-qc

The path where the quality control generated content will be saved.

-qc-dataset

If provided, this string will be mentioned in the QC report as the dataset the process was run on.

-qc-subject

If provided, this string will be mentioned in the QC report as the subject the process was run on.

-qc-plane

Possible choices: Axial, Sagittal

Plane of the output QC. If Sagittal, it is highly recommended to provide the -qc-seg option, as it will ensure the output QC is cropped to a reasonable field of view.

Default: 'Axial'

-qc-seg

Segmentation file to use for cropping the QC. This option is useful when you want to QC a region that is different from the output segmentation. For example, it might be useful to provide a dilated cord segmentation to expand the QC field of view.

If -qc-seg is not provided, the default behavior will depend on the value of -qc-plane:

  • ‘Axial’: Without ‘-qc-seg’, a sensible crop radius between 15-40 vox will be automatically used, depending on the resolution and segmentation type.

  • ‘Sagittal’: Without ‘-qc-seg’, the full image will be displayed by default. (For very large images, this may cause a crash, so using -qc-seg is highly recommended.)

-v

Possible choices: 0, 1, 2

Verbosity. 0: Display only errors/warnings, 1: Errors/warnings + info messages, 2: Debug mode.

Default: 1

-r

Possible choices: 0, 1

Remove temporary files.

Default: 1