Semi-Automated Neonatal Tractography Pipeline
This is an extension of nipype used to conduct analysis of diffusion MRI data in a semi-automated fashion using FSL and DSI Studio. It allows you to specify the analysis steps in a json file to quickly set up and potentially iteratively improve the inputs to the workflow.
- Download the image.
- docker load -i /path/to/dingo_dsi-feb2019.tar
- On Linux for convenient use add the following to ~/.bashrc
- function DINGO { docker run -it --rm --user=$UID:$UID -v /tmp/.X11-unix:/tmp/.X11-unix:ro -e DISPLAY=$DISPLAY -v
$(pwd):/data dingo:dsi-feb2019 "$ @"; }
- function DINGO { docker run -it --rm --user=$UID:$UID -v /tmp/.X11-unix:/tmp/.X11-unix:ro -e DISPLAY=$DISPLAY -v
- Install Nipype, FSL, DSI Studio.
- Download and extract the repository.
- Add the DINGO directory to your python path (by adding /path/to/DINGO to your PYTHONPATH environment variable or a new line in a .pth file in your site-packages directory)
An analysis config specifies the workflow to be created. Several examples can be found in res.
- name : String, new nipype workflow directory that will be created in the current working directory.
- data_dir : String, parent directory to each patient's folder, will be prepended to FileIn, FileOut.
- included_ids : List, strings specifying included data "patientID_scanID_uniqueSUFFIX"
- steps : List, analysis steps to perform, ["Step1", ["NameofStep2","Step2"], ["NameofStep3","Step2"] ]
- method : Dictionary, if key does not exist for each step, will use default parameters for it.
- <Name> : Dictionary
- inputs : Dictionary, { parameter : value }, ( used parameters found in nipype InputSpec )
- connect : Dictionary, { parameter : [ "SourceStepName", "SourceStepParameter" ] }
- <Name> : Dictionary
- email : Dictionary, email will be sent by smtp at the conclusion of the workflow
- server : String, "smtp.server:port"
- login : String, username
- pw : String, password
- fromaddr : String
- toaddr : String
DINGO run /data/path/to/config.json
python
from DINGO.base import DINGO
aworkflow = DINGO('/path/to/config.json')
aworkflow.run()
OR
python /path/to/DINGO/DINGO/base.py /path/to/config.json