I am trying to setup a heuristic to convert my dicoms to bids. Using heudiconv I am successful with structural and functional data, but when I try to add a DWI sequence I am getting the following “KeyError”.
Traceback (most recent call last):
File "/opt/conda/envs/neuro/bin/heudiconv", line 11, in <module>
load_entry_point('heudiconv==0.5.2.dev0', 'console_scripts', 'heudiconv')()
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/cli/run.py", line 125, in main
process_args(args)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/cli/run.py", line 338, in process_args
overwrite=args.overwrite,)
File "/opt/conda/envs/neuro/lib/python2.7/site-packages/heudiconv/convert.py", line 170, in prep_conversion
info = heuristic.infotodict(seqinfo_list)
File "/data/BIDS/convertEP199.py", line 74, in infotodict
info[dwi].append([s.series_id])
KeyError: ('sub-{subject}/{session}/dwi/sub-{subject}_{session}_dwi', ('nii.gz',), None)
This is my infotodic() code:
def infotodict(seqinfo):
t1w = create_key('sub-{subject}/{session}/anat/sub-{subject}_{session}_T1w')
t2w = create_key('sub-{subject}/{session}/anat/sub-{subject}_{session}_T2w')
flair = create_key('sub-{subject}/{session}/anat/sub-{subject}_{session}_FLAIR')
rest = create_key('sub-{subject}/{session}/func/sub-{subject}_{session}_task-rest_run-{item:03d}_bold')
dwi = create_key('sub-{subject}/{session}/dwi/sub-{subject}_{session}_dwi')
info = {
t1w: [],
t2w: [],
flair: [],
rest: [],
}
for s in seqinfo:
if s.series_description == 'MPRAGE_T1 _SAGITTAL STEALTH':
info[t1w].append([s.series_id])
if s.series_description == 'TRA T2 ROSA':
info[t2w].append([s.series_id])
if s.series_description == 't2_spc_3D_FLAIR':
info[flair].append([s.series_id])
if s.series_description == 'act_ep2d_bold_functional_con':
info[rest].append({'item' : s.series_id})
if s.series_description == 'ep2d_diff_mddw_12dir_tract':
info[dwi].append([s.series_id])
return info
I haven’t been able to find anything on the web. Any help is greatly appreciated!