totalspineseg¶
Intervertebral discs labeling and vertebrae segmentation
TotalSpineSeg is a tool for automatic instance segmentation of all vertebrae, intervertebral discs (IVDs), spinal cord, and spinal canal in MRI images. It is robust to various MRI contrasts, acquisition orientations, and resolutions. The model used in TotalSpineSeg is based on nnU-Net as the backbone for training and inference.
Reference¶
Project URL: https://github.com/neuropoly/totalspineseg
usage: sct_deepseg totalspineseg [-i <file> [<file> ...]] [-o <str>] [-install]
[-custom-url CUSTOM_URL [CUSTOM_URL ...]]
[-thr <float>] [-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>]
[-profile-time [<file>]]
[-trace-memory [<folder>]] [-r {0,1}]
[-step1-only {0,1}]
INPUT/OUTPUT¶
- -i
Image to segment. Can be multiple images (separated with space).
Note: If choosing
lesion_ms_mp2rage
, then the input data must be cropped around the spinal cord. (To crop the data you can first segment the spinal cord using the contrast agnostic model. This could be done using: “sct_deepseg spinalcord -i IMAGE -o IMAGE_sc”, then crop the image with 30 mm of dilation on axial orientation around the spinal cord. This could be done using: “sct_crop_image -i IMAGE -m IMAGE_sc -dilate 30x30x5”. Note that 30 is only for 1mm isotropic resolution, for images with another resolution divide 30/your_axial_resolution.)- -o
Output file name. In case of multi-class segmentation, class-specific suffixes will be added. By default,the suffix specified in the packaged model will be added and output extension will be
.nii.gz
.
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’. NB: For multi-model tasks, provide multiple URLs. For single models, just provide one URL. Example:sct_deepseg rootlets_t2 -install -custom-url https://github.com/ivadomed/model-spinal-rootlets/releases/download/r20240523/model-spinal-rootlets_ventral_D106_r20240523.zip
sct_deepseg rootlets_t2 -i sub-amu01_T2w.nii.gz
PARAMETERS¶
- -thr
Binarize segmentation with specified threshold. Set to 0 for no thresholding (i.e., soft segmentation). Default value is model-specific and was set during optimization (more info at https://github.com/sct-pipeline/deepseg-threshold).
- -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).
- -step1-only
Possible choices: 0, 1
If set to ‘1’, only Step 1 will be performed. If not provided, both steps will be run.
Step 1: Segments the spinal cord, spinal canal, vertebrae, and intervertebral discs (IVDs). Labels the IVDs, but vertebrae are left unlabeled.
Step 2: Fine-tunes the segmentation, applies labels to vertebrae, and segments the sacrum if present. More details on TotalSpineSeg’s two models can be found here: https://github.com/neuropoly/totalspineseg/?tab=readme-ov-file#model-description
Default: 0
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. (Note: Sagittal view is not currently supported for rootlets/totalspineseg QC.)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, for lesion segmentation, it might be useful to provide a cord segmentation to expand the QC field of view to include the full cord, while also still excluding irrelevant tissue. If not provided, the default behavior will depend on the
-qc-plane
:‘Axial’: A sensibly chosen crop radius between 15-40 vox, depending on the resolution and segmentation type.
‘Sagittal’: The full image. (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
- -profile-time
Enables time-based profiling of the program, dumping the results to the specified file.
If no file is specified, human-readable results are placed into a ‘time_profiling_results.txt’ document in the current directory (’/home/docs/checkouts/readthedocs.org/user_builds/spinalcordtoolbox/checkouts/stable/documentation/source’). If the specified file is a
.prof
file, the file will instead be in binary format, ready for use with common post-profiler utilities (such assnakeviz
).- -trace-memory
Enables memory tracing of the program.
When active, a measure of the peak memory (in KiB) will be output to the file
peak_memory.txt
. Optionally, developers can also modify the SCT code to add additionalsnapshot_memory()
calls. These calls will ‘snapshot’ the memory usage at that moment, saving the memory trace at that point into a second file (memory_snapshots.txt
).By default, both outputs will be placed in the current directory (’/home/docs/checkouts/readthedocs.org/user_builds/spinalcordtoolbox/checkouts/stable/documentation/source’). Optionally, you may provide an alternative directory (
-trace-memory <dir_name>
), in which case all files will be placed in that directory instead. Note that this WILL incur an overhead to runtime, so it is generally advised that you do not run this in conjunction with the time profiler or in time-sensitive contexts.- -r
Possible choices: 0, 1
Remove temporary files.
Default: 1