@@ -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