Image analysis pipeline for processing of neonatal Spinal Cord diffusion MRI data from University of Genoa in collaboration with Gaslini Children's Hospital.
Since SCT algorithms are validated in adult imaging, we specifically customized each processing step to our neonatal scans in order to apply an advanced dMRI model such as DKI.
Main steps of our pipeline concern denoising with recently proposed Patch2Self (https://dipy.org/documentation/1.4.1./examples_built/denoise_patch2self/), motion correction, segmentation, vertebral labeling, registration with PAM50 atlas and computation of diffusion measures in specific ROIs.
An overview of our image processing pipeline highlighting key features is shown in the image below.
This pipeline will loop across all subjects (or only the subjects that you have specified) located under the data
folder and results will be concatenated into single csv files where each row will correspond to a subject. The files will be output in the data
folder.
The following metric is output:
- dmri: All DTI (FA, MD, AD, RD) and DKI (KFA, MK, AK, RK) or MSDKI (MSK) in whole WM, GM and CSTs tracts, averaged across slices
This pipeline was tested on SCT v4.1.0. This pipeline also relies on dipy v.1.4.1 for computation of DTI and DKI (https://dipy.org/documentation/1.1.0./examples_built/reconst_dki/) as well as MSDKI (https://dipy.org/documentation/1.4.1./examples_built/reconst_msdki/) measures, and on FSL v5.0 for mathematical manipulation of images and FSLeyes for active quality control (QC) (https://fsl.fmrib.ox.ac.uk/fsl/fslwiki).
data
|- 001
|- 002
|- 003
|- dki
|- kurtosis.nii.gz
|- bvecs
|- bvals
|- 3dT1.nii.gz
- Organize your data as indicated above
- Download (or
git clone
) this repository. - Go to the repository folder:
cd pediatric-genova
- Copy the file
parameters_template.sh
and rename it asparameters.sh
. - Edit the file parameters.sh and modify the variables according to your needs:
PATH_DATA
: Absolute path to the DATA folder. E.g.:/Users/rosella/data
SUBJECTS
: List of subjects to analyze. If you want to analyze all subjects in thePATH_DATA
folder, then comment this variable.X_min, X_max
: Cropping boundaries along x-axis. For example, if you want to set boundaries between 60 and 100 ,set these variables asX_min="60"
andX_max="100"
. The same for y- and z- axes.METRICS_VERT_LEVEL
: Vertebral levels to compute diffusion metrics from. For example, if you want to extract metrics from levels 2, 3, 4 and 5, set this variable asMETRICS_VERT_LEVEL="2,3,4,5"
.PATH_RESULTS
: Path where results will be stored. Default is:$PATH_DATA/results
Once the file parameters.sh
is configured, you can run the pipeline as follows:
- Process the data
./run_process.sh process.sh
This script will do all the processing. A QC folder will be generated to check segmentation and template registration.
- Quantify metrics
./run_process.sh metrics.sh
which performs extraction of DTI and DKI metrics within specified labels and levels.
Main outcomes of our neonatal pipeline are listed as follows. This includes denoising with Patch2Self method:
As well as registration with PAM50 atlas and automatic delineation of ROIs thanks to atlas-based approach:
And also computation of DTI and DKI maps for further extraction of their averages over specific ROIs:
Rosella Trò, Julien Cohen-Adad