Taking control of your DICOM data: ReproIn/HeuDiConv tools
ReproNim Monthly Webinar, December 6, 2019
Note: This Webinar is being recorded...
ReproSpeaker:
Dr. Yaroslav O. Halchenko, http://centerforopenneuroscience.org, PBS, Dartmouth College
ReproInformation:
Website: repronim.org
EMail: info@repronim.org
Twitter: @ReproNim
ReproInstitutions:
UMass Medical, MIT, Dartmouth, McGill, UC Irvine, UC San Diego, TCG, Inc
ReproFunding:
NIBIB P41 EB019936 “Center for Reproducible Neuroimaging Computation - CRNC”
Acknowledgments
James
Haxby
James
Dobson
Terry
Sackett
Satrajit
Ghosh
Mathias
Goncalves
Chandana
Kodiweera
NIH #1P41EB019936-01A1 (ReproNim)
NSF #1429999 (DataLad)
Michael
Hanke
Matteo
Visconti di Oleggio
Castello
We’re so busy.
How do we do reproducible neuroimaging efficiently?
There’s a problem
We’re so busy.
Datasets came in a variety of layouts,
We had no time to “understand” data of others
There was a problem
Bootstrapped by OpenNeuro&INCF,
community came up with a solution:
├── sub-sid000005
│ ├── ses-famfirst
│ │ ├── anat
│ │ │ ├── sub-sid000005_ses-famfirst_acq-MPRAGE_T1w.json
│ │ │ └── sub-sid000005_ses-famfirst_acq-MPRAGE_T1w.nii.gz
│ │ ├── fmap
│ │ │ ├── sub-sid000005_ses-famfirst_acq-25mm_magnitude1.json
│ │ │ ├── sub-sid000005_ses-famfirst_acq-25mm_magnitude1.nii.gz
│ │ │ ├── . . .
│ │ ├── func
│ │ │ ├── sub-sid000005_ses-famfirst_task-fam1back_run-01_bold.json
│ │ │ ├── sub-sid000005_ses-famfirst_task-fam1back_run-01_bold.nii.gz
│ │ │ ├── sub-sid000005_ses-famfirst_task-fam1back_run-01_events.tsv
│ │ │ ├── . . .
. . .
Benefits of BIDS
You have seen one BIDS dataset – you have seen them all!
We’re so busy.
Who wants to deal with naming file structures?
Solution brought a problem
We needed a solution
Automation
ReproIn Goals/Principles
Open by Design: Join/Contribute
Do not reinvent the wheel - use and contribute to existing projects!
ReproIn
reproin.repronim.org
HeuDiConv
DataLad
dcm2niix
reproin.repronim.org
2(+1) ReproIn Recipe Ingredients
BIDS
│
...
├── Gobbini
│ ├── Matteo
│ │ ├── 1002-faceangles
│ │ ├── 1017_famface-angles
│ │ ├── 1037_budapest
│ │ └── 1038_hyperface
│ └── Vassiki
├── Haxby
│ ├── Feilong
│ └── Sam
...
Center/PI/Researcher/Study
2. Specification
2. Specification

Subject info (Siemens Prisma 3T Walkthrough)
dcm2niix
HeuDiConv/ReproIn HOWTO
Features
dcm2niix
BIDS
│
...
├── Gobbini
│ ├── Matteo
│ │ ├── 1002-faceangles
│ │ ├── 1017_famface-angles
│ │ ├── 1037_budapest
│ │ └── 1038_hyperface
│ └── Vassiki
├── Haxby
│ ├── Feilong
│ └── Sam
...
Center/PI/Researcher/Study
famface_angles/data (master) $ git shortlog
DBIC BIDS Team (43):
[DATALAD] added content
Converted subject a000234, 2 sequences, 168 dicoms
Converted subject sid000013, session famfirst, 19 sequences, 3635 dicoms
Converted subject sid000013, session strfirst, 18 sequences, 3462 dicoms
...
Remove bad conversion of sub-sid000014, ses-famfirst
[DATALAD] Recorded existing changes
[DATALAD] added content
Converted subject sid000014, session famfirst, 20 sequences, 3931 dicoms
Matteo Visconti dOC (89):
[DATALAD] new dataset
Remove sub-a000234
Remove duplicate runs
Remove unused scans file for sub-sid000013
Rename task names for some subjects.
Remove low resolution T1 for sub-sid000013
Add script to inject intended for in fieldmap
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
Rename second fmap for sub-sid000014
...
famface_angles/data (master) $ git shortlog
DBIC BIDS Team (43):
[DATALAD] added content
Converted subject a000234, 2 sequences, 168 dicoms
Converted subject sid000013, session famfirst, 19 sequences, 3635 dicoms
Converted subject sid000013, session strfirst, 18 sequences, 3462 dicoms
...
Remove bad conversion of sub-sid000014, ses-famfirst
[DATALAD] Recorded existing changes
[DATALAD] added content
Converted subject sid000014, session famfirst, 20 sequences, 3931 dicoms
Matteo Visconti dOC (89):
[DATALAD] new dataset
Remove sub-a000234
Remove duplicate runs
Remove unused scans file for sub-sid000013
Rename task names for some subjects.
Remove low resolution T1 for sub-sid000013
Add script to inject intended for in fieldmap
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
Rename second fmap for sub-sid000014
...
famface_angles/data (master) $ git shortlog
DBIC BIDS Team (43):
[DATALAD] added content
Converted subject a000234, 2 sequences, 168 dicoms
Converted subject sid000013, session famfirst, 19 sequences, 3635 dicoms
Converted subject sid000013, session strfirst, 18 sequences, 3462 dicoms
...
Remove bad conversion of sub-sid000014, ses-famfirst
[DATALAD] Recorded existing changes
[DATALAD] added content
Converted subject sid000014, session famfirst, 20 sequences, 3931 dicoms
Matteo Visconti dOC (89):
[DATALAD] new dataset
Remove sub-a000234
Remove duplicate runs
Remove unused scans file for sub-sid000013
Rename task names for some subjects.
Remove low resolution T1 for sub-sid000013
Add script to inject intended for in fieldmap
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
Rename second fmap for sub-sid000014
...
famface_angles/data (master) $ git shortlog
DBIC BIDS Team (43):
[DATALAD] added content
Converted subject a000234, 2 sequences, 168 dicoms
Converted subject sid000013, session famfirst, 19 sequences, 3635 dicoms
Converted subject sid000013, session strfirst, 18 sequences, 3462 dicoms
...
Remove bad conversion of sub-sid000014, ses-famfirst
[DATALAD] Recorded existing changes
[DATALAD] added content
Converted subject sid000014, session famfirst, 20 sequences, 3931 dicoms
Matteo Visconti dOC (89):
[DATALAD] new dataset
Remove sub-a000234
Remove duplicate runs
Remove unused scans file for sub-sid000013
Rename task names for some subjects.
Remove low resolution T1 for sub-sid000013
Add script to inject intended for in fieldmap
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
[DATALAD RUNCMD] python scripts/add_intendedfor.py sub-si...
Rename second fmap for sub-sid000014
...
HeuDiConv/ReproIn HOWTO Summary
Planned work (contribute/join!)
Related References
Thank you for your attention!