Giter VIP home page Giter VIP logo

structural-pipeline's Introduction

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.

structural-pipeline's People

Contributors

amakropoulos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

structural-pipeline's Issues

Infant structural T1 data segmentation

Hi,
I would like to run developing HCP pipeline to perform segmentation of neonatal T1 scans. I know it surely works on T2 data , I would like to know if it is suitable to segment T1, too. Indeed, it is the only structural kind of scan I have,
Best
Rosella

Fetal images

I am a PhD student from the University of Genoa. I am working on fetal data and I wanted to know whether the dHCP pipeline suitable for fetal images.
Thanks ,
Rosella

Error during additional pipeline

The pipeline fails during the additional pipeline stage, due to a path error. Running on Ubuntu 14.04 with a local installation, but processing files located in an sshfs-mounted remote drive. Tracing it back, there is a problem with:

parameters/configuration.sh, line 4
export parameters_dir=$(dirname "$BASH_SOURCE")

where $(dirname "$BASH_SOURCE") resolves to ./parameters and hence the rest fails, as this isn't a complete path.

Replacing this line with a hard-coded path allows the script to run to completion:
export parameters_dir=/home/username/structural-pipeline/parameters

A universal solution (from https://stackoverflow.com/a/246128/1518749), that seems to work perfectly here is:
export parameters_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

Hope that helps!

Question about error log and pipeline

I ran the pipeline on some of my data and got an error. Does the pipeline look for a specific orientation of the data.

I was wondering if I could have some help with what the issue is (attached).

Also a more broad questions, what is the upper limit in age for the pipeline? Would infants 1-2 not be appropriate? Thanks!

subject1-session1.segmentation.log

build and run in docker

I made a thing to build and run the pipeline in a docker container:

https://github.com/jcupitt/docker-structural-pipeline

It's just:

$ sudo ./build.sh v1.1

to build branch v1.1, including all prerequistes, and then:

$ sudo ./docker-dhcp-pipeline.sh v1.1 subject1 session1 44 -T2 subject1-T2.nii.gz -T1 subject1-T1.nii.gz -t 8

(for example) to run it. It should work on any version of any platform. It might make installation simpler.

Failed setup for Mac install

Hello,

Thank you for sharing the pipeline. I am trying to run the setup on a mac (High Sierra 10.13.6) and the install is getting an error. It says: make -j1 : command failed, see log file: /Users/fcnlab/Desktop/dhcp-structural-pipeline-master/setup.log.

I have attached the setup log. Thank you!
setup.log

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.