How does 'init_bold_confs_wf' in fmriprep set the 'source_file' inputs for the DerivativesDataSink nodes?

Hello,

I am using the ‘init_bold_confs_wf’ workflow from fmriprep outside of fmriprep. It works great, but I get crash files saying:

ValueError: DerivativesDataSink requires a value for input ‘source_file’. For a list of required inputs, see DerivativesDataSink.help()

But when looking at the code (fmriprep/confounds.py at master · nipreps/fmriprep · GitHub), I don’t see where or how to set the source_file for the DerivativeDataSinks that are within the fmriprep workflow. Does anyone know how fmriprep sets the ‘source_file’ inputs for these nodes?

Thanks,
David

Sorry, you’re getting bitten by us being too clever at some point in the past.

We had a huge number of lines that were just these two things over and over, and updating (or failing to update) them every time there was a change to the workflow was causing bugs. Because we use consistent naming for our nodes, we were able to just iterate over the workflow and set fields for those specific nodes.

source_file is the original BIDS image (either the BOLD image or the shortest echo BOLD image, in the case of multi-echo). It’s just used to extract entities from the filename for reuse in derivatives.

1 Like

I was wondering if it was something like that. Thanks for your help!