TractoFlow

TractoFlow

a pipeline to process diffusion MRI from RAW to tractography

our needs

  • Easy to use

  • Reproducible

  • Scalable

  • Easy to adapte

  • Easy to share

}

  • Pipeline engine
  • Container
  • Almost like writing a program
  • Very flexible
  • Pipeline management built in
  • Supports reproducibility (singularity, logging built in)
  • Automatic parallelization
  • Can reuse most of bash scripts
  • Light

pipeline engine

process Denoise_DWI {
    cpus params.processes_denoise_dwi

    input:
    set sid, file(dwi) from dwi_for_denoise

    output:
    set sid, "${sid}__dwi_denoised.nii.gz" into\
        dwi_for_eddy,
        dwi_for_topup,
        dwi_for_eddy_topup

    script:
    """
    MRTRIX_NTHREADS=$task.cpus
    dwidenoise $dwi dwi_denoised.nii.gz -extent $params.extent
    fslmaths dwi_denoised.nii.gz -thr 0 ${sid}__dwi_denoised.nii.gz
    """
}

container

standalone file containing everything needed to run a program or system

  • Hard to exactly reproduce results after a few months
    • Software versions
    • Dependencies
  • Hard to reproduce exactly same results with collaborators
  • More and more Journals require reproducibility

- Versions are fixed -

combining all together

nextflow -C tractoflow/nextflow.config run tractoflow/main.nf \
         -with-singularity singularity-tractoflow.img \
         --bids CCNA_data
  • Reproducible

  • Scalable

  • Easy to adapte

  • Easy to share

  • Easy to use

TractoFlow

Inputs

or BIDS

T1 Processing

  • N4BiadFieldCorrection from ANTs

  • NLMEANS from scilpy

  • scil_resample_volume from scilpy

  • BET from FSL

T1 Processing

  • antsRegistration from ANTs

  • FAST from FSL

  • compute_maps_for_particule_filter_tracking from scilpy

 DWI Processing

  • scilpy scripts

  • dwidenoise from MRtrix

  • Eddy/Topup from FSL

  • Bet from FSL

  • N4BiadFieldCorrection from ANTs

 DWI Processing

  • dwinormalise from MRtrix

  • scil_resample_volume from scilpy

  • scil_extract_dwi_shell from scilpy

  • scil_compute_dti_metrics from scilpy

  • scil_extract_dwi_shell from scilpy

  • scil_compute_mean_frf from scilpy

  • scil_compute_fodf from scilpy

  • scil_compute_fodf_metrics from scilpy

  • scil_compute_ssst_frf from scilpy

TractoFlow

  B    DWI processes

  A    Input files

  C    T1 processes

  • DWI
  • bvec/bval
  • T1

Tracking

TractoFlow

Optional:

  • FreeWater
  • NODDI
  • Freesurfer
  • RecoBundle
  • Tractometry + Stats

RecoBundle

Garyfallidis et al., Neuroimage, 2017.

Tractometry

Heatmap of p-values projected on different pathways of a specific subject

Cousineau et al Neuroimage Clin. 2017

TractoFlow - Reproducibiliy

  • All DWI preprocesses steps are 100% reproducible
  • T1 BET and registration introduce small differences 
    • Maximum MAE: 0.00063
    • Minimum CC: 0.99988
  • Tracking reproducibility
    • Seeding

the pipeline can reach 100% reproducibility with a 50% slower runtime

98% reproducibility with default parameters

3 datasets and  3 computer configurations  

Thank you

M.Descoteaux
J-C.Houde
G.Theaud
F.Rheault
F. Morency

scil.usherbrooke.ca

TractoFlow

a pipeline to process diffusion MRI from RAW to tractography

based on

soon available on

using

ANTs

TractoFlow

By Arnaud Boré