From a8ccd27872b1298904758897cd5d2a9bee43384d Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Thu, 30 May 2024 19:28:31 -0400 Subject: [PATCH] Revert "Remove non-alphanumeric characters from workflow names and output entities" --- sdcflows/fieldmaps.py | 3 +-- sdcflows/workflows/base.py | 11 ++++------- sdcflows/workflows/fit/base.py | 8 ++------ sdcflows/workflows/outputs.py | 6 ++---- sdcflows/workflows/tests/test_base.py | 6 +----- 5 files changed, 10 insertions(+), 24 deletions(-) diff --git a/sdcflows/fieldmaps.py b/sdcflows/fieldmaps.py index c03b52890e..0909592ee8 100644 --- a/sdcflows/fieldmaps.py +++ b/sdcflows/fieldmaps.py @@ -446,8 +446,7 @@ def get_workflow(self, set_inputs=True, **kwargs): return self._wf # Override workflow name - clean_bids_id = re.sub(r'[^a-zA-Z0-9]', '', self.bids_id) - kwargs["name"] = f"wf_{clean_bids_id}" + kwargs["name"] = f"wf_{self.bids_id}" if self.method in (EstimatorType.MAPPED, EstimatorType.PHASEDIFF): from .workflows.fit.fieldmap import init_fmap_wf diff --git a/sdcflows/workflows/base.py b/sdcflows/workflows/base.py index 4a9f632fdd..7c9c609d10 100644 --- a/sdcflows/workflows/base.py +++ b/sdcflows/workflows/base.py @@ -21,8 +21,6 @@ # https://www.nipreps.org/community/licensing/ # """Estimate fieldmaps for :abbr:`SDC (susceptibility distortion correction)`.""" -import re - from nipype import logging from nipype.pipeline import engine as pe from nipype.interfaces import utility as niu @@ -108,7 +106,6 @@ def init_fmap_preproc_wf( ) for n, estimator in enumerate(estimators, 1): - clean_bids_id = re.sub(r'[^a-zA-Z0-9]', '', estimator.bids_id) est_wf = estimator.get_workflow( omp_nthreads=omp_nthreads, debug=debug, @@ -119,7 +116,7 @@ def init_fmap_preproc_wf( ] out_map = pe.Node( - niu.IdentityInterface(fields=out_fields), name=f"out_{clean_bids_id}" + niu.IdentityInterface(fields=out_fields), name=f"out_{estimator.bids_id}" ) out_map.inputs.fmap_id = estimator.bids_id @@ -127,7 +124,7 @@ def init_fmap_preproc_wf( output_dir=str(output_dir), write_coeff=True, bids_fmap_id=estimator.bids_id, - name=f"fmap_derivatives_wf_{clean_bids_id}", + name=f"fmap_derivatives_wf_{estimator.bids_id}", ) fmap_derivatives_wf.inputs.inputnode.source_files = source_files fmap_derivatives_wf.inputs.inputnode.fmap_meta = [ @@ -138,7 +135,7 @@ def init_fmap_preproc_wf( output_dir=str(output_dir), fmap_type=str(estimator.method).rpartition(".")[-1].lower(), bids_fmap_id=estimator.bids_id, - name=f"fmap_reports_wf_{clean_bids_id}", + name=f"fmap_reports_wf_{estimator.bids_id}", ) fmap_reports_wf.inputs.inputnode.source_files = source_files @@ -146,7 +143,7 @@ def init_fmap_preproc_wf( fields = INPUT_FIELDS[estimator.method] inputnode = pe.Node( niu.IdentityInterface(fields=fields), - name=f"in_{clean_bids_id}", + name=f"in_{estimator.bids_id}", ) # fmt:off workflow.connect([ diff --git a/sdcflows/workflows/fit/base.py b/sdcflows/workflows/fit/base.py index 09fc928221..1010b8b65f 100644 --- a/sdcflows/workflows/fit/base.py +++ b/sdcflows/workflows/fit/base.py @@ -25,8 +25,6 @@ def init_sdcflows_wf(): """Create a multi-subject, multi-estimator *SDCFlows* workflow.""" - import re - from nipype.pipeline.engine import Workflow from niworkflows.utils.bids import collect_participants @@ -53,8 +51,6 @@ def init_sdcflows_wf(): for subject, sub_estimators in estimators_record.items(): for estim in sub_estimators: - clean_bids_id = re.sub(r'[^a-zA-Z0-9]', '', estim.bids_id) - estim_wf = estim.get_workflow( omp_nthreads=config.nipype.omp_nthreads, sloppy=False, @@ -65,7 +61,7 @@ def init_sdcflows_wf(): output_dir=config.execution.output_dir, bids_fmap_id=estim.bids_id, write_coeff=True, - name=f"fmap_derivatives_{clean_bids_id}", + name=f"fmap_derivatives_{estim.bids_id}", ) source_paths = [ @@ -80,7 +76,7 @@ def init_sdcflows_wf(): fmap_type=estim.method, output_dir=config.execution.output_dir, bids_fmap_id=estim.bids_id, - name=f"fmap_reports_{clean_bids_id}", + name=f"fmap_reports_{estim.bids_id}", ) reportlets_wf.inputs.inputnode.source_files = source_paths diff --git a/sdcflows/workflows/outputs.py b/sdcflows/workflows/outputs.py index 35e0c72004..24e3d559bf 100644 --- a/sdcflows/workflows/outputs.py +++ b/sdcflows/workflows/outputs.py @@ -21,8 +21,6 @@ # https://www.nipreps.org/community/licensing/ # """Writing out outputs.""" -import re - from nipype.pipeline import engine as pe from nipype.interfaces import utility as niu from niworkflows.interfaces.bids import DerivativesDataSink as _DDS @@ -79,7 +77,7 @@ def init_fmap_reports_wf( custom_entities = custom_entities or {} if bids_fmap_id: - custom_entities["fmapid"] = re.sub(r'[^a-zA-Z0-9]', '', bids_fmap_id) + custom_entities["fmapid"] = bids_fmap_id.replace("_", "") workflow = pe.Workflow(name=name) inputnode = pe.Node( @@ -158,7 +156,7 @@ def init_fmap_derivatives_wf( """ custom_entities = custom_entities or {} if bids_fmap_id: - custom_entities["fmapid"] = re.sub(r'[^a-zA-Z0-9]', '', bids_fmap_id) + custom_entities["fmapid"] = bids_fmap_id.replace("_", "") workflow = pe.Workflow(name=name) inputnode = pe.Node( diff --git a/sdcflows/workflows/tests/test_base.py b/sdcflows/workflows/tests/test_base.py index ac782a0bc0..b31222fecc 100644 --- a/sdcflows/workflows/tests/test_base.py +++ b/sdcflows/workflows/tests/test_base.py @@ -23,10 +23,7 @@ """Test the base workflow.""" from pathlib import Path import os -import re - import pytest - from sdcflows import fieldmaps as fm from sdcflows.utils.wrangler import find_estimators from sdcflows.workflows.base import init_fmap_preproc_wf @@ -58,8 +55,7 @@ def test_fmap_wf(tmpdir, workdir, outdir, bids_layouts, dataset, subject): if estimator.method != fm.EstimatorType.PEPOLAR: continue - clean_bids_id = re.sub(r'[^a-zA-Z0-9]', '', estimator.bids_id) - inputnode = wf.get_node(f"in_{clean_bids_id}") + inputnode = wf.get_node(f"in_{estimator.bids_id}") inputnode.inputs.in_data = [str(f.path) for f in estimator.sources] inputnode.inputs.metadata = [f.metadata for f in estimator.sources]