diff --git a/fmriprep/workflows/base.py b/fmriprep/workflows/base.py index 22fb0b72..8710e694 100644 --- a/fmriprep/workflows/base.py +++ b/fmriprep/workflows/base.py @@ -580,9 +580,18 @@ def init_single_subject_wf(subject_id: str): suffices = [s.suffix for s in estimator.sources] if estimator.method == fm.EstimatorType.PEPOLAR: + # "Sophisticated" PEPOLAR schemes should be run "manually" with SDCFlows + # The following two cases are not considered sophisticated: + # 1. All PEPOLAR entities are the same modality + # (typically, more than two EPI PE directions), or + # 2. Two modalities are involved, with at most two images to pass + # into FSL TOPUP. if ( len(set(suffices)) == 1 - or (len(suffices) == 2 and all(suf in ('epi', 'bold', 'sbref') for suf in suffices)) + or ( + len(suffices) == 2 + and all(suf in ('epi', 'bold', 'sbref') for suf in suffices) + ) ): wf_inputs = getattr(fmap_wf.inputs, f'in_{estimator.bids_id}') wf_inputs.in_data = [str(s.path) for s in estimator.sources]