Skip to content

Commit 256d289

Browse files
authored
Merge pull request #3421 from gaunab/loadbidslayout
[ENH] Enable BidsDataGrabber to load saved layouts
2 parents b20763e + 281b236 commit 256d289

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

.zenodo.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -864,7 +864,13 @@
864864
},
865865
{
866866
"name": "Hui Qian, Tan"
867-
}
867+
},
868+
{
869+
"affiliation": "Insitiute and Polyclinc for Diagnostic and Interventional Neuroradiology, University Hospital Carl Gustav Carus, Dresden, Germany",
870+
"name": "Kuntke, Paul",
871+
"orcid": "0000-0003-1838-2230"
872+
}
873+
868874
],
869875
"keywords": [
870876
"neuroimaging",

nipype/interfaces/io.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2866,6 +2866,9 @@ class BIDSDataGrabberInputSpec(DynamicTraitedSpec):
28662866
output_query = traits.Dict(
28672867
key_trait=Str, value_trait=traits.Dict, desc="Queries for outfield outputs"
28682868
)
2869+
load_layout = Directory(
2870+
exists=True, desc="Path to load already saved Bidslayout.", mandatory=False
2871+
)
28692872
raise_on_empty = traits.Bool(
28702873
True,
28712874
usedefault=True,
@@ -2965,9 +2968,13 @@ def __init__(self, infields=None, **kwargs):
29652968
def _list_outputs(self):
29662969
from bids import BIDSLayout
29672970

2968-
layout = BIDSLayout(
2969-
self.inputs.base_dir, derivatives=self.inputs.index_derivatives
2970-
)
2971+
# if load_layout is given load layout which is on some datasets much faster
2972+
if isdefined(self.inputs.load_layout):
2973+
layout = BIDSLayout.load(self.inputs.load_layout)
2974+
else:
2975+
layout = BIDSLayout(
2976+
self.inputs.base_dir, derivatives=self.inputs.index_derivatives
2977+
)
29712978

29722979
if isdefined(self.inputs.extra_derivatives):
29732980
layout.add_derivatives(self.inputs.extra_derivatives)

nipype/interfaces/tests/test_auto_BIDSDataGrabber.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ def test_BIDSDataGrabber_inputs():
1212
mandatory=True,
1313
usedefault=True,
1414
),
15+
load_layout=dict(
16+
mandatory=False,
17+
),
1518
output_query=dict(),
1619
raise_on_empty=dict(
1720
usedefault=True,

0 commit comments

Comments
 (0)