From a276954ff2712a5d3a2f358eeeffc567b7c6ceb8 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Wed, 3 Jul 2019 09:25:51 -0400 Subject: [PATCH 1/5] MNT: BIDSLayout.get() parameter "extensions" deprecated --- fitlins/interfaces/bids.py | 6 +++--- fitlins/viz/reports.py | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/fitlins/interfaces/bids.py b/fitlins/interfaces/bids.py index ebf2b377..9210d461 100644 --- a/fitlins/interfaces/bids.py +++ b/fitlins/interfaces/bids.py @@ -263,7 +263,7 @@ def _load_level1(self, runtime, analysis): if space is None: spaces = analysis.layout.get_spaces( suffix='bold', - extensions=['.nii', '.nii.gz']) + extension=['.nii', '.nii.gz']) if spaces: spaces = sorted(spaces) space = spaces[0] @@ -414,7 +414,7 @@ def _run_interface(self, runtime): entities = [] for ents in self.inputs.entities: selectors = {**self.inputs.selectors, **ents} - bold_file = layout.get(extensions=['.nii', '.nii.gz'], **selectors) + bold_file = layout.get(extension=['.nii', '.nii.gz'], **selectors) if len(bold_file) == 0: raise FileNotFoundError( @@ -435,7 +435,7 @@ def _run_interface(self, runtime): bold_ents = layout.parse_file_entities(bold_file[0].path) bold_ents['suffix'] = 'mask' bold_ents['desc'] = 'brain' - mask_file = layout.get(extensions=['.nii', '.nii.gz'], **bold_ents) + mask_file = layout.get(extension=['.nii', '.nii.gz'], **bold_ents) bold_ents.pop('suffix') bold_ents.pop('desc') diff --git a/fitlins/viz/reports.py b/fitlins/viz/reports.py index ca8cda72..1d658334 100644 --- a/fitlins/viz/reports.py +++ b/fitlins/viz/reports.py @@ -45,11 +45,11 @@ def build_report_dict(deriv_dir, work_dir, analysis): wd_layout = BIDSLayout( Path(work_dir) / 'reportlets' / 'fitlins', validate=False) - all_pngs = fl_layout.get(extensions='.png') + all_pngs = fl_layout.get(extension='.png') fig_dirs = set( (png.dirname, tuple(ent for ent in png.entities.items() if ent[0] not in ('suffix', 'contrast'))) - for png in fl_layout.get(extensions='.png')) + for png in fl_layout.get(extension='.png')) report = { 'dataset': { @@ -78,7 +78,7 @@ def build_report_dict(deriv_dir, work_dir, analysis): 'contrasts': [ {'name': displayify(contrast.name), 'glassbrain': fl_layout.get(contrast=snake_to_camel(contrast.name), - suffix='ortho', extensions='png', **ents)[0].path} + suffix='ortho', extension='png', **ents)[0].path} for contrast in contrasts] } @@ -86,10 +86,10 @@ def build_report_dict(deriv_dir, work_dir, analysis): # Space doesn't apply to design/contrast matrices ents.pop('space', None) - design_matrix = fl_layout.get(suffix='design', extensions='svg', **ents) - correlation_matrix = fl_layout.get(suffix='corr', extensions='svg', **ents) - contrast_matrix = fl_layout.get(suffix='contrasts', extensions='svg', **ents) - warning = wd_layout.get(extensions='.html', suffix='snippet', **ents) + design_matrix = fl_layout.get(suffix='design', extension='svg', **ents) + correlation_matrix = fl_layout.get(suffix='corr', extension='svg', **ents) + contrast_matrix = fl_layout.get(suffix='contrasts', extension='svg', **ents) + warning = wd_layout.get(extension='.html', suffix='snippet', **ents) if design_matrix: analysis['design_matrix'] = design_matrix[0].path if correlation_matrix: From f535fe183292510132e72c1cfb091024edc0de65 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Wed, 3 Jul 2019 09:41:56 -0400 Subject: [PATCH 2/5] RF: Extensions are now identified as entities --- fitlins/interfaces/bids.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fitlins/interfaces/bids.py b/fitlins/interfaces/bids.py index 9210d461..143cb887 100644 --- a/fitlins/interfaces/bids.py +++ b/fitlins/interfaces/bids.py @@ -413,8 +413,7 @@ def _run_interface(self, runtime): mask_files = [] entities = [] for ents in self.inputs.entities: - selectors = {**self.inputs.selectors, **ents} - bold_file = layout.get(extension=['.nii', '.nii.gz'], **selectors) + bold_file = layout.get(**self.inputs.selectors, **ents) if len(bold_file) == 0: raise FileNotFoundError( From 83c6027728ff3a1f17296d55d896b5aa730ae05b Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Wed, 3 Jul 2019 09:56:32 -0400 Subject: [PATCH 3/5] FIX: Prune extra entities when building reports --- fitlins/viz/reports.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fitlins/viz/reports.py b/fitlins/viz/reports.py index 1d658334..953f3e39 100644 --- a/fitlins/viz/reports.py +++ b/fitlins/viz/reports.py @@ -67,7 +67,8 @@ def build_report_dict(deriv_dir, work_dir, analysis): report['steps'].append(report_step) for _, _, ents in step.get_design_matrix(): contrasts = step.get_contrasts(**ents)[0] - for key in ('datatype', 'desc', 'suffix'): + for key in ('datatype', 'desc', 'suffix', 'extension', + 'RepetitionTime', 'SkullStripped', 'TaskName'): ents.pop(key, None) analysis = { From 1341067eda49b9c815085df9607ed46db64ef964 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Wed, 3 Jul 2019 10:42:12 -0400 Subject: [PATCH 4/5] FIX: Move space/desc selectors into model loader, remove from getter --- fitlins/interfaces/bids.py | 5 +++-- fitlins/workflows/base.py | 11 ++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/fitlins/interfaces/bids.py b/fitlins/interfaces/bids.py index 143cb887..16e284b5 100644 --- a/fitlins/interfaces/bids.py +++ b/fitlins/interfaces/bids.py @@ -232,7 +232,7 @@ def _run_interface(self, runtime): selectors = self.inputs.selectors analysis = Analysis(model=self.inputs.model, layout=layout) - analysis.setup(drop_na=False, desc='preproc', **selectors) + analysis.setup(drop_na=False, **selectors) self._load_level1(runtime, analysis) self._load_higher_level(runtime, analysis) @@ -434,7 +434,8 @@ def _run_interface(self, runtime): bold_ents = layout.parse_file_entities(bold_file[0].path) bold_ents['suffix'] = 'mask' bold_ents['desc'] = 'brain' - mask_file = layout.get(extension=['.nii', '.nii.gz'], **bold_ents) + bold_ents['extension'] = ['.nii', '.nii.gz'] + mask_file = layout.get(**bold_ents) bold_ents.pop('suffix') bold_ents.pop('desc') diff --git a/fitlins/workflows/base.py b/fitlins/workflows/base.py index 34bd97af..5355d482 100644 --- a/fitlins/workflows/base.py +++ b/fitlins/workflows/base.py @@ -37,7 +37,9 @@ def init_fitlins_wf(bids_dir, derivatives, out_dir, analysis_level, space, loader = pe.Node( LoadBIDSModel(bids_dir=bids_dir, derivatives=derivatives, - model=model_dict), + model=model_dict, + selectors={'desc': desc, + 'space': space}), name='loader') if ignore is not None: @@ -46,17 +48,12 @@ def init_fitlins_wf(bids_dir, derivatives, out_dir, analysis_level, space, loader.inputs.force_index = force_index if participants is not None: loader.inputs.selectors['subject'] = participants - if space is not None: - loader.inputs.selectors['space'] = space # Select preprocessed BOLD series to analyze getter = pe.Node( BIDSSelect( bids_dir=bids_dir, derivatives=derivatives, - selectors={ - 'suffix': 'bold', - 'desc': desc, - 'space': space}), + selectors={'suffix': 'bold'}), name='getter') if smoothing: From a5be9fc2394a56593b37e8fee9d5e115a9d59106 Mon Sep 17 00:00:00 2001 From: "Christopher J. Markiewicz" Date: Wed, 3 Jul 2019 10:51:56 -0400 Subject: [PATCH 5/5] MAINT: Use sphinx-nbexamples >= 0.4.0 --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 842841e5..e3107337 100644 --- a/setup.cfg +++ b/setup.cfg @@ -39,7 +39,7 @@ docs = sphinx sphinxcontrib-apidoc sphinx-argparse - sphinx-nbexamples @ git+https://github.com/Chilipp/sphinx-nbexamples@5b6070ab30fb3f263c0326d7b17a9291ec65f6b6 + sphinx-nbexamples >=0.4.0 texext m2r all =