Skip to content

Repository files navigation

PAM50 normalized metrics

This repository contains morphometric measures in the PAM50 anatomical dimensions computed from adults (healthy controls and patients) and children across multiple datasets.

👉 If you find this work and/or code useful for your research, please cite our paper:

Valošek, Bédard et al., (2024). A database of the healthy human spinal cord morphometry in the PAM50 template space. Imaging Neuroscience, 2 1–15, https://doi.org/10.1162/imag_a_00075

DOI

👉 For interactive figures, please visit the NeuroLibre preprint:

Valošek, Bédard et al., (2023). A database of the healthy human spinal cord morphometry in the PAM50 template space. NeuroLibre Reproducible Preprints, 17, https://doi.org/10.55458/neurolibre.00017

DOI

Usage

As part of SCT

The repository is downloaded automatically during the SCT installation.

CSV files from this repository are used by the following SCT functions:

  • sct_process_segmentation -normalize-PAM50 1, example:
sct_process_segmentation -i sub-001_T2w_label-SC_seg.nii.gz -vertfile sub-001_T2w_label-SC_seg_labeled.nii.gz -perslice 1 -normalize-PAM50 1 -o sub-001_T2w_metrics_PAM50.csv
  • sct_compute_compression -normalize-hc 1, example:
sct_compute_compression -i sub-001_T2w_label-SC_seg.nii.gz -vertfile sub-001_T2w_label-SC_seg_labeled.nii.gz -l sub-001_T2w_label-compression.nii.gz -normalize-hc 1 -o sub-001_T2w_compression_metrics.csv

Standalone usage

If you want to use the morphometric measures outside of SCT in your own research, you can simply download this repository and use the CSV files directly:

git clone https://github.com/spinalcordtoolbox/PAM50-normalized-metrics.git

Datasets Overview

The table below summarizes all datasets included in this repository. It is also available as datasets.tsv and can be regenerated by running python code/generate_datasets_summary.py.

metric name num_subjects num_sessions num_sites population sex (M/F/unknown) age (mean±SD [min–max]) coverage contrast resolution link
spinal_canal spine-generic multi-subject 203 203 43 healthy adults 105/98/0 28.7±5.6 [19–52] cervical spine T2w 0.8mm iso spine-generic/data-multi-subject
spinal_cord spine-generic multi-subject 203 203 43 healthy adults 105/98/0 28.7±5.6 [19–52] cervical spine T2w 0.8mm iso spine-generic/data-multi-subject
spinal_cord whole-spine 58 58 2 healthy adults 30/18/10 27.2±6.7 [21–56] whole spine T2w 1.0mm iso openneuro/ds005616
spinal_cord MASiVar 96 143 n/a healthy adults and children 55/41/0 9.6±8.7 [5–47] cervical spine T1w 1.0mm iso openneuro/ds003416
spinal_cord AOMIC 573 573 n/a healthy adults 138/435/0 22.8±1.8 [18–26] cervical spine T1w 1.0mm iso openneuro/ds003097, openneuro/ds002785, openneuro/ds002790
spinal_cord DLBS 463 951 n/a healthy adults 176/287/0 58.4±18.2 [21–89] cervical spine T1w 1.0mm iso openneuro/ds004856
spinal_cord VUIIS-MS 46 70 n/a healthy controls and MS patients 11/35/0 41.4±11.1 [23–64] cervical spine T1w n/a n/a
spinal_cord TempleSocial 90 90 n/a healthy adults 28/60/2 42.2±16.7 [21–80] cervical spine T1w 1.0mm iso openneuro/ds005123
spinal_cord UCLA LA5c 254 254 n/a healthy controls and neuropsychiatric patients 146/108/0 33.0±9.3 [21–50] cervical spine T1w 1.0mm iso openneuro/ds000030
spinal_cord BLSA 1095 3170 n/a Healthy Control, MCI, and dementia 484/577/34 66.1±14.8 [22–94] cervical spine T1w 1.0mm iso blsa.nih.gov

Datasets Structure

PAM50-normalized-metrics/
├── datasets.tsv                          # master dataset overview (auto-generated)
├── spinal_canal/                         # spinal canal morphometric measures
│   └── spine-generic_multi-subject/
│       ├── dataset_description.json      # dataset metadata (coverage, contrast, resolution, ...)
│       ├── participants.tsv              # subject metadata
│       ├── sub-amu01_T2w_PAM50.csv
│       └── ...
└── spinal_cord/                          # spinal cord morphometric measures
    ├── spine-generic_multi-subject/
    │   ├── dataset_description.json
    │   ├── participants.tsv
    │   ├── sub-amu01_T2w_PAM50.csv
    │   └── ...
    └── whole-spine/
        ├── dataset_description.json
        ├── participants.tsv
        ├── sub-amuAL_T2w_PAM50.csv
        └── ...

Each CSV file contains per-slice morphometric measures for one subject, normalized to the PAM50 template space.

Adding a New Dataset

  1. Create a new dataset folder — under the appropriate metric directory (e.g., spinal_cord/<new-dataset>/), add the per-subject CSV files, a participants.tsv with subject metadata (can be generated; see below), and a dataset_description.json with the dataset metadata:

    spinal_cord/
    └── <new-dataset>/
        ├── dataset_description.json  # dataset metadata
        ├── participants.tsv          # subject metadata (participant_id, sex, age, institution, ...)
        ├── sub-001_T2w_PAM50.csv
        └── ...
    

    The dataset_description.json should contain:

    {
        "name": "<human-readable dataset name>",
        "coverage": "<anatomical coverage>",
        "contrast": "<MRI contrast>",
        "resolution": "<voxel size>",
        "population": "<subject population>",
        "link": "<URL to raw dataset>",
        "link_text": "<display text for the link>"
    }

    For datasets available on OpenNeuro, a dedicated script under code/ can be used to fetch participant metadata (sex, age, and other demographics) and generate participants.tsv automatically. For example:

    python code/create_<dataset>_participants.py

    These scripts fetch participants.tsv from the dataset's OpenNeuro GitHub mirror, filter to subjects with available CSV files, and write participants.tsv to the dataset folder.

  2. Regenerate datasets.tsv and update README — run the script from the repository root; it will auto-compute subject counts, sex, and age statistics from participants.tsv, fetch the dataset metadata from dataset_description.json, and automatically update the summary table in the Datasets Overview section above:

    python code/generate_datasets_summary.py
  3. Generate a lineplot — run statistics/generate_figures.py, passing the new dataset alongside spine-generic multi-subject for comparison. Use --lineplot-only to skip heavy analyses (correlation matrix, normative values, statistical tests) and only produce the lineplot — recommended for large datasets:

    cd statistics
    python generate_figures.py \
        -path-SC ../spinal_cord/<new-dataset> ../spinal_cord/spine-generic_multi-subject \
        -path-out <new-dataset>_spinegeneric \
        --lineplot-only

About

Spinal cord morphometry in the PAM50 template space

Resources

Stars

4 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages