Code Monkey home page Code Monkey logo

pediatric-genova's Introduction

pediatric-genova

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

Dependencies

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 structure

data
  |- 001
  |- 002
  |- 003
      |- dki
        |- kurtosis.nii.gz
        |- bvecs
        |- bvals
        |- 3dT1.nii.gz

How to run

  • 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 as parameters.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 the PATH_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 as X_min="60" and X_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 as METRICS_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.

Results

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:

Contributors

Rosella Trò, Julien Cohen-Adad

pediatric-genova's People

Contributors

jcohenadad avatar rosella1234 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

little2000

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.