Skip to content

Commit f8b4e4b

Browse files
committed
FIX: update BIDS datagrabber to grab PET data
1 parent 30a50f9 commit f8b4e4b

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

niworkflows/interfaces/bids.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,14 +261,26 @@ class BIDSDataGrabber(SimpleInterface):
261261
input_spec = _BIDSDataGrabberInputSpec
262262
output_spec = _BIDSDataGrabberOutputSpec
263263

264-
def __init__(self, *args, require_funcs=False, **kwargs):
264+
def __init__(self, *args, **kwargs):
265265
anat_only = kwargs.pop('anat_only', None)
266266
anat_derivatives = kwargs.pop('anat_derivatives', None)
267267
require_t1w = kwargs.pop('require_t1w', True)
268+
require_funcs = kwargs.pop('require_funcs', True)
269+
require_pet = kwargs.pop('require_pet', False)
268270
super().__init__(*args, **kwargs)
269-
self._require_funcs = require_funcs
271+
270272
if anat_only is not None:
271273
self._require_funcs = not anat_only
274+
self._require_pet = False
275+
else:
276+
# Automatically set require_funcs=False if PET data is present
277+
if require_pet:
278+
self._require_funcs = False
279+
self._require_pet = True
280+
else:
281+
self._require_funcs = require_funcs
282+
self._require_pet = False
283+
272284
self._require_t1w = require_t1w and anat_derivatives is None
273285

274286
def _run_interface(self, runtime):
@@ -286,6 +298,11 @@ def _run_interface(self, runtime):
286298
raise FileNotFoundError(
287299
f'No functional images found for subject sub-{self.inputs.subject_id}'
288300
)
301+
302+
if self._require_pet and not bids_dict.get('pet'):
303+
raise FileNotFoundError(
304+
f'No PET images found for subject sub-{self.inputs.subject_id}'
305+
)
289306

290307
for imtype in ['t2w', 'flair', 'fmap', 'sbref', 'roi', 'pet', 'asl']:
291308
if not bids_dict[imtype]:

0 commit comments

Comments
 (0)