courtois-neuromod / anat-processing

Pipeline to process anatomical data, including microstructure metrics from DWI and MT data
MIT License
5 stars 3 forks source link

Added spinal cord analysis pipeline (sct_run_batch) #20

Closed jcohenadad closed 3 years ago

jcohenadad commented 3 years ago

Context

This PR introduces spinal cord analysis pipeline with SCT.

A similar PR was started with NextFlow (https://github.com/courtois-neuromod/anat-processing/pull/13), but I decided to switch to sct_run_batch pipeline management instead because:

The benefits of sct_run_batch include:

DATA

git commit: 9fe61258fec1c64cd1a5d83079168ff16a6e9fff* git origin: git@github.com:courtois-neuromod/anat.git


## TODO

- [x] Create SHELL script: `process_spinalcord.sh`
- [x] Update documentation 
jcohenadad commented 3 years ago

Getting started 🎉 with b6d17c8 and SCT (https://github.com/spinalcordtoolbox/spinalcordtoolbox/pull/3414/commits/956d61e8aec1111a3e3cec71219ce6024705bd0f)

Terminal output on simple script (display subject's name) ```console julien-macbook:~/code/neuromod-anat-processing $ sct_run_batch -path-data ~/data/neuromod/ -path-output ~/temp/neuromod -job 12 -script process_spinalcord.sh -- Spinal Cord Toolbox (git-jca/3413-run-batch-session-956d61e8aec1111a3e3cec71219ce6024705bd0f) sct_run_batch -path-data /Users/julien/data/neuromod/ -path-output /Users/julien/temp/neuromod -job 12 -script process_spinalcord.sh -- INFO SYSTEM ----------- OS: osx (Darwin-19.6.0-x86_64-i386-64bit) CPU cores: Available: 16 | Threads used by ITK Programs: 1 RAM: Total 16384 MB | Available 6445 MB | Used 8497 MB INPUT ARGUMENTS --------------- batch_log: sct_run_batch_log.txt config: null continue_on_error: 1 email_from: null email_host: smtp.gmail.com:587 email_to: null exclude: null exclude_list: null include: null include_list: null itk_threads: 1 jobs: 12 path_data: /Users/julien/data/neuromod/ path_output: /Users/julien/temp/neuromod path_segmanual: . script: process_spinalcord.sh script_args: '' subject_prefix: sub- v: 1 zip: false SCRIPT ------ git commit: 728736e740a492af9759959abd3d670a28efdea0 git origin: https://github.com/courtois-neuromod/anat-processing.git Copying script to output folder... /Users/julien/code/neuromod-anat-processing/process_spinalcord.sh -> /Users/julien/temp/neuromod/process_spinalcord.sh Setting execute permissions for script file process_spinalcord.sh ... DATA ---- git commit: 9fe61258fec1c64cd1a5d83079168ff16a6e9fff* git origin: git@github.com:courtois-neuromod/anat.git RUNNING ------- Processing 20 subjects in parallel. (Worker processes used: 12). Started at 10h42m33s: sub-01_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-01_ses-002.log Started at 10h42m33s: sub-01_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-01_ses-003.log Started at 10h42m33s: sub-01_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-01_ses-001.log Started at 10h42m33s: sub-06_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-001.log Started at 10h42m33s: sub-06_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-002.log Started at 10h42m33s: sub-06_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-003.log Started at 10h42m33s: sub-06_ses-004. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-004.log Started at 10h42m33s: sub-05_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-05_ses-001.log Started at 10h42m33s: sub-05_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-05_ses-002.log Started at 10h42m33s: sub-02_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-001.log Started at 10h42m33s: sub-02_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-002.log Started at 10h42m33s: sub-02_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-003.log Started at 10h42m33s: sub-02_ses-004. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-004.log Started at 10h42m33s: sub-03_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-001.log Started at 10h42m33s: sub-03_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-002.log Started at 10h42m33s: sub-03_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-003.log Started at 10h42m33s: sub-03_ses-004. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-004.log Started at 10h42m33s: sub-04_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-04_ses-002.log Started at 10h42m33s: sub-04_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-04_ses-001.log Started at 10h42m33s: sub-04_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-04_ses-003.log Hooray! your batch completed successfully :-) Started: 10h42m33s | Ended: 10h42m33s | Duration: 00h00m00s To open the Quality Control (QC) report on a web-browser, run the following: open /Users/julien/temp/neuromod/qc/index.html ```
jcohenadad commented 3 years ago

Results of full processing with :

Terminal output ```console julien-macbook:~/code/neuromod-anat-processing $ sct_run_batch -path-data ~/data/neuromod/ -path-output ~/temp/neuromod -job 8 -script process_spinalcord.sh -- Spinal Cord Toolbox (git-jca/3413-run-batch-session-c41958db922273a66764ef88239587f91af3adad) sct_run_batch -path-data /Users/julien/data/neuromod/ -path-output /Users/julien/temp/neuromod -job 8 -script process_spinalcord.sh -- INFO SYSTEM ----------- OS: osx (Darwin-19.6.0-x86_64-i386-64bit) CPU cores: Available: 16 | Threads used by ITK Programs: 1 RAM: Total 16384 MB | Available 6464 MB | Used 8555 MB INPUT ARGUMENTS --------------- batch_log: sct_run_batch_log.txt config: null continue_on_error: 1 email_from: null email_host: smtp.gmail.com:587 email_to: null exclude: null exclude_list: null include: null include_list: null itk_threads: 1 jobs: 8 path_data: /Users/julien/data/neuromod/ path_output: /Users/julien/temp/neuromod path_segmanual: . script: process_spinalcord.sh script_args: '' subject_prefix: sub- v: 1 zip: false SCRIPT ------ git commit: 7804a20ea29f539046cc7be749932301f08b9d71 git origin: https://github.com/courtois-neuromod/anat-processing.git Copying script to output folder... /Users/julien/code/neuromod-anat-processing/process_spinalcord.sh -> /Users/julien/temp/neuromod/process_spinalcord.sh Setting execute permissions for script file process_spinalcord.sh ... DATA ---- git commit: 52d0e6f33d003202437e168323793fb80f6469a7 git origin: git@github.com:courtois-neuromod/anat.git RUNNING ------- Processing 20 subjects in parallel. (Worker processes used: 8). Started at 23h13m03s: sub-01_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-01_ses-002.log Started at 23h13m03s: sub-01_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-01_ses-003.log Started at 23h13m03s: sub-01_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-01_ses-001.log Started at 23h13m03s: sub-06_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-001.log Started at 23h13m03s: sub-06_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-003.log Started at 23h13m03s: sub-06_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-002.log Started at 23h13m03s: sub-06_ses-004. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-06_ses-004.log Started at 23h13m03s: sub-05_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-05_ses-001.log Started at 23h30m48s: sub-05_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-05_ses-002.log Started at 23h30m54s: sub-02_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-001.log Started at 23h30m57s: sub-02_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-002.log Started at 23h30m57s: sub-02_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-003.log Started at 23h31m01s: sub-02_ses-004. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-02_ses-004.log Started at 23h31m06s: sub-03_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-001.log Started at 23h31m07s: sub-03_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-002.log Started at 23h31m09s: sub-03_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-003.log Started at 23h47m10s: sub-03_ses-004. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-03_ses-004.log Started at 23h47m44s: sub-04_ses-001. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-04_ses-001.log Started at 23h47m59s: sub-04_ses-002. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-04_ses-002.log Started at 23h48m03s: sub-04_ses-003. See log file /Users/julien/temp/neuromod/log/process_spinalcord_sub-04_ses-003.log Hooray! your batch completed successfully :-) Started: 23h13m03s | Ended: 00h00m03s | Duration: 00h46m59s ```

Example of CSA computation from the T1w data (in mm^2). Each bar corresponds to a subject/session: image