@@ -207,7 +207,8 @@ def collect_data(
207
207
>>> bids_root['t2w'] # doctest: +ELLIPSIS
208
208
[]
209
209
>>> bids_root, _ = collect_data(str(datadir / 'ds051'), '01',
210
- ... bids_validate=False, bids_filters={'t1w':{'run': 1}})
210
+ ... bids_validate=False,
211
+ ... bids_filters={'t1w':{'run': 1, 'session': None}})
211
212
>>> bids_root['t1w'] # doctest: +ELLIPSIS
212
213
['.../ds051/sub-01/anat/sub-01_run-01_T1w.nii.gz']
213
214
@@ -217,6 +218,13 @@ def collect_data(
217
218
else :
218
219
layout = BIDSLayout (str (bids_dir ), validate = bids_validate )
219
220
221
+ layout_get_kwargs = {
222
+ 'return_type' : 'file' ,
223
+ 'subject' : participant_label ,
224
+ 'extension' : ['.nii' , '.nii.gz' ],
225
+ 'session' : session_id ,
226
+ }
227
+
220
228
queries = {
221
229
"fmap" : {"datatype" : "fmap" },
222
230
"bold" : {"datatype" : "func" , "suffix" : "bold" , "part" : ["mag" , None ]},
@@ -229,6 +237,10 @@ def collect_data(
229
237
bids_filters = bids_filters or {}
230
238
for acq , entities in bids_filters .items ():
231
239
queries [acq ].update (entities )
240
+ for entity in list (layout_get_kwargs .keys ()):
241
+ if entity in entities :
242
+ # avoid clobbering layout.get
243
+ del layout_get_kwargs [entity ]
232
244
233
245
if task :
234
246
queries ["bold" ]["task" ] = task
@@ -237,15 +249,7 @@ def collect_data(
237
249
queries ["bold" ]["echo" ] = echo
238
250
239
251
subj_data = {
240
- dtype : sorted (
241
- layout .get (
242
- return_type = "file" ,
243
- subject = participant_label ,
244
- session = session_id ,
245
- extension = [".nii" , ".nii.gz" ],
246
- ** query ,
247
- )
248
- )
252
+ dtype : sorted (layout .get (** layout_get_kwargs , ** query ))
249
253
for dtype , query in queries .items ()
250
254
}
251
255
0 commit comments