sct-pipeline / normative-metrics

Processing scripts for computation of qMRI metrics
MIT License
1 stars 0 forks source link

Normative qMRI metrics

Set of scripts for computation of quantitative MRI (qMRI) metrics from diffusion-weighted (DWI/dMRI) and magnetization transfer (MT) spinal cord data.

The work was presented at ISMRM 2021 - abstract 0649 (teaser, full abstract):

image

All results are available in the following archive.

Motivation

To compute the normative qMRI metrics from a large cohort of healthy subjects scanned across multiple sites for various spinal cord ROI based on the PAM50 atlas and analyze their variability per individual vertebral levels (C2-C5) and per individual vendors (Siemens, Philips, GE).

Data

Multi-center multi-vendor data of healthy subjects acquired and analyzed within the spine-generic project.

Prerequisites

Spinal Cord Toolbox (SCT) v4.3

Spine generic v2.1

Requirements

pandas

pyyaml

matplotlib

numpy

(All these packages are included in SCT virtual env (venv_sct), activate it:

source ${SCT_DIR}/python/etc/profile.d/conda.sh
conda activate venv_sct

Pipeline

cd ~
git clone https://github.com/spine-generic/data-multi-subject && cd data-multi-subject && git annex init && git annex get
mkdir ~/data-multi-subject_results
sct_run_batch -jobs -1 -path-data ~/data-multi-subject/ -path-output ~/data-multi-subject_results/ -continue-on-error 1 -script <PATH_TO_SPINE-GENERIC>/process_data.sh

(Analysis will automatically use manually-corrected labels and segmentation located in derivatives/labels/)

cd ~
git clone https://github.com/sct-pipeline/normative-metrics.git
cd normative-metrics
sct_run_batch -jobs -1 -path-data ~/data-multi-subject/ -path-output ~/data-multi-subject_results/ -continue-on-error 1 -script scripts/extract_normative_metrics_wrapper.sh

(You can run the script only for specific subjects using the -include <SUBJECT> flag)

(Individual *perlevel.csv files will be stored in the /results/perlevel folder)

python generate_figures.py -path-results ~/data-multi-subject-master_results/results/perlevel -config ~/data-multi-subject_results/results/exclude.yml -participants-file  ~/data-multi-subject_results/results/participants.tsv

where:

-path-results - path to directory with *csv perlevel files (created in the previous step)

-participants-file - path to .tsv file with participants characteristics (age, sex, ...)

-config - path to .yml file containing subjects to exclude