Skip to content

DevelopingHCP/structural-pipeline

Repository files navigation

The dHCP Structural Pipeline has been moved here. The present repository is deprecated and not maintained.



dHCP Structural Pipeline v1.1

pipeline image

The dHCP structural pipeline is a software for the structural analysis of the neonatal brain MRI (T1 and T2) that consists of:

  • cortical and sub-cortical volume segmentation
  • cortical surface extraction (white matter and pial surface)
  • cortical surface inflation and
  • projection to sphere

Publication

The pipeline is described in detail in:

A. Makropoulos and E. C. Robinson et al. "The Developing Human Connectome Project: a Minimal Processing Pipeline for Neonatal Cortical Surface Reconstruction (link)

Developers

Antonios Makropoulos: main author, development of the structural pipeline, and segmentation software more

Andreas Schuh: contributor, development of the cortical surface extraction, and surface inflation software more

Robert Wright: contributor, development of the spherical projection software

License

The dHCP structural pipeline is distributed under the terms outlined in LICENSE.txt

Dependencies

1. FSL

The dHCP structural pipeline uses the FSL software. This can be installed by following the instructions:

Ubuntu / Debian GNU

http://neuro.debian.net/install_pkg.html?p=fsl-complete

Mac OS X / Red Hat Enterprise Linux / CENTOS

https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FslInstallation


The FSL software needs to be configured for shell usage:

2. Packages

The dHCP structural requires installation of the following packages.

Mac OS X (tested on version 10.9.5)
Ubuntu (tested on version 16.04)
  • sudo apt-get -y update
  • sudo apt-get -y install g++-5 git cmake unzip bc python python-contextlib2 libtbb-dev libboost-dev zlib1g-dev libxt-dev libexpat1-dev libgstreamer1.0-dev libqt4-dev
Debian GNU (tested on version 8)
  • sudo apt-get -y update
  • sudo apt-get -y install git cmake unzip bc python python-contextlib2 libtbb-dev libboost-dev zlib1g-dev libxt-dev libexpat1-dev libgstreamer1.0-dev libqt4-d
  • # g++-5 is not in the default packages of Debian, install with the following commands:
  • echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" | sudo tee -a /etc/apt/sources.list
  • sudo apt-get -y update
  • sudo apt-get -y install g++-5
CENTOS (tested on version 7)
  • sudo yum -y update
  • sudo yum -y install git cmake unzip bc python tbb-devel boost-devel qt-devel zlib-devel libXt-devel expat-devel gstreamer1-devel
  • sudo yum -y install epel-release
  • sudo yum -y install python-contextlib2
  • # g++-5 is not in the default packages of CENTOS, install with the following commands:
  • sudo yum -y install centos-release-scl
  • sudo yum -y install devtoolset-4-gcc*
  • # then activate it at the terminal before running the installation script
  • scl enable devtoolset-4 bash
Red Hat Enterprise Linux (tested on version 7.3)
  • sudo yum -y update
  • sudo yum -y install it cmake unzip bc python tbb-devel boost-devel qt-devel zlib-devel libXt-devel expat-devel gstreamer1-devel
  • # the epel-release-latest-7.noarch.rpm is for version 7 of RHEL, this needs to be adjusted for the user's OS version
  • curl -o epel.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • sudo yum -y install epel.rpm
  • sudo yum -y install python-contextlib2
  • # g++-5 is not in the default packages of RHEL, install with the following commands:
  • sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
  • sudo yum -y install devtoolset-4-gcc*
  • # then activate it at the terminal before running the installation script
  • scl enable devtoolset-4 bash

Installation

The installation requires FSL and the packages specified in the Dependencies section.
After installing these dependencies, the pipeline is installed by running:

  • ./setup.sh -j [num_cores]

where [num_cores] the number of CPU cores used to compile the pipeline software

The setup script installs the following software packages.

Software Version
ITK 4.11.1
VTK 7.0.0
Connectome Workbench 1.2.2
MIRTK dhcp-v1
SphericalMesh dhcp-v1.1

The '-h' argument can be specified to provide more setup options:

  • ./setup.sh -h

Once the installation is successfully completed, if desired, the different commands/tools built (workbench, MIRTK and pipeline commands) can be included in the shell PATH by running:

  • . parameters/path.sh

Run

The pipeline can be run with the following command:

./dhcp-pipeline.sh [subject_ID] [session_ID] [scan_age] -T2 [T2_image] ( -T1 [T1_image] ) ( -t [num_threads] )

where:

Argument Type Description
subject_ID string Subject ID
session_ID string Session ID
scan_age double Subject post-menstrual age (PMA) in weeks (number between 28-44).
If the age is <28w or >44w, it will be set to 28w or 44w respectively.
T2_image nifti image The T2 image of the subject
T1_image nifti image The T1 image of the subject (Optional)
num_threads integer Number of threads (CPU cores) used (default: 1) (Optional)

Examples:

  • ./dhcp-pipeline.sh subject1 session1 44 -T2 subject1-T2.nii.gz -T1 subject1-T1.nii.gz -t 8
  • ./dhcp-pipeline.sh subject2 session1 36 -T2 subject2-T2.nii.gz -T1 subject2-T1.nii.gz
  • ./dhcp-pipeline.sh subject3 session4 28 -T2 subject3-T2.nii.gz

The output of the pipeline is the following directories:

  • sourcedata : folder containing the source images (T1,T2) of the processed subjects
  • derivatives : folder containing the output of the pipeline processing

Measurements and reporting for the dHCP Structural Pipeline can be additionally computed using this package.