aroma_wf:
inputnode:
bold_mni6
mask_mni6
outputnode:
#### Calculate aroma
if 'bold_mni6' in found:
aroma_wf = init_aroma_wf()
wf.inputs.inputnode.bold_mni6 = found['bold_mni6']
else:
resample_wf = init_resample_wf()
resample_wf.inputs....
wf.connect([
(resample_wf, aroma_wf, [
('outputnode.bold_mni6', 'inputnode.bold_mni6')
]),
#### Apply aroma
iterator_wf = ...
# anat2std_xfm
# std_t1w
# std_mask
xfms = [
hmc_xfms,
coreg_xfm
]
all_xfms = Merge(2)
wf.connect(xfms, 'out', all_xfms, 'in1')
wf.connect(iterator_wf, 'outputnode.anat2std', all_xfms, 'in2')
resampler = ...
# bold.nii
# fmap.nii
# fmapreg
wf.connect(xfms, 'out', resampler, 'xfms')
wf.connect(aroma_wf, ..., denoise, ...)
wf.connect(resampler, ..., denoise, ...)
## If resampled data exists
std_buffer = KeySelect(bold=[found[space].bold for space in spaces], keys=spaces)
wf.connect(iterator_wf, 'space', std_buffer, 'key')
wf.connect(aroma_wf, ..., denoise, ...)
wf.connect(std_buffer, 'bold', denoise, 'bold')