Skip to content

Commit 44c976f

Browse files
authored
Merge pull request #478 from effigies/fix/label-ordering
fix: Respect label order in precomputed derivatives
2 parents 5292c7b + 2dab7eb commit 44c976f

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/smriprep/utils/bids.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,17 @@ def collect_derivatives(derivatives_dir, subject_id, std_spaces, spec=None, patt
4747
derivs_cache = {}
4848
for key, qry in spec['baseline'].items():
4949
qry['subject'] = subject_id
50-
item = layout.get(return_type='filename', **qry)
50+
item = layout.get(**qry)
5151
if not item:
5252
continue
5353

54-
derivs_cache[f't1w_{key}'] = item[0] if len(item) == 1 else item
54+
# Respect label order in queries
55+
if 'label' in qry:
56+
item = sorted(item, key=lambda x: qry['label'].index(x.entities['label']))
57+
58+
paths = [item.path for item in item]
59+
60+
derivs_cache[f't1w_{key}'] = paths[0] if len(paths) == 1 else paths
5561

5662
transforms = derivs_cache.setdefault('transforms', {})
5763
for _space in std_spaces:

0 commit comments

Comments
 (0)