From d5508deadc0a0520578b7f4a231ca3386236cb29 Mon Sep 17 00:00:00 2001 From: Marcel Rosier Date: Thu, 4 Sep 2025 13:52:49 +0200 Subject: [PATCH 1/2] Change to use new AtlasCentricPreprocessor Fix typing and logic issues --- brainles_preprocessing/cli.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/brainles_preprocessing/cli.py b/brainles_preprocessing/cli.py index 547ece6..af826e0 100644 --- a/brainles_preprocessing/cli.py +++ b/brainles_preprocessing/cli.py @@ -9,7 +9,7 @@ from brainles_preprocessing.normalization.percentile_normalizer import ( PercentileNormalizer, ) -from brainles_preprocessing.preprocessor import Preprocessor +from brainles_preprocessing.preprocessor import AtlasCentricPreprocessor def version_callback(value: bool): @@ -59,7 +59,7 @@ def main( ), ], output_dir: Annotated[ - str, + str | Path, typer.Option( "-o", "--output_dir", @@ -117,8 +117,9 @@ def main( defacing_mask_output_path=output_dir / "t1c_defacing_mask.nii.gz", ) + moving_modalities = [] for modality in ["t1", "t2", "fla"]: - moving_modalities = [ + moving_modalities.append( Modality( modality_name=modality, input_path=eval(f"input_{modality}"), @@ -134,18 +135,18 @@ def main( normalized_defaced_output_path=output_dir / f"{modality}_defaced_normalized.nii.gz", ) - ] + ) - # if the input atlas is the SRI24 BraTS atlas, set it to None, because it will be picked up through the package - if input_atlas == "SRI24 BraTS atlas": - input_atlas = None + optional_kwargs = {} + if input_atlas is not None: + optional_kwargs["atlas_image_path"] = input_atlas # instantiate and run the preprocessor using defaults for registration/ brain extraction/ defacing backends - preprocessor = Preprocessor( + preprocessor = AtlasCentricPreprocessor( center_modality=center, moving_modalities=moving_modalities, temp_folder=output_dir / "temp", - input_atlas=input_atlas, + **optional_kwargs, ) preprocessor.run() From 756f4de254cbdc825566dcde49b79be301eda5f1 Mon Sep 17 00:00:00 2001 From: Marcel Rosier Date: Thu, 4 Sep 2025 13:58:54 +0200 Subject: [PATCH 2/2] Fix eval security issue --- brainles_preprocessing/cli.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/brainles_preprocessing/cli.py b/brainles_preprocessing/cli.py index af826e0..5490d51 100644 --- a/brainles_preprocessing/cli.py +++ b/brainles_preprocessing/cli.py @@ -118,11 +118,13 @@ def main( ) moving_modalities = [] - for modality in ["t1", "t2", "fla"]: + for input_path, modality in zip( + [input_t1, input_t2, input_fla], ["t1", "t2", "fla"] + ): moving_modalities.append( Modality( modality_name=modality, - input_path=eval(f"input_{modality}"), + input_path=input_path, normalizer=percentile_normalizer, # specify the output paths for the raw and normalized images of each step - here only for atlas registered and brain extraction raw_skull_output_path=output_dir / f"{modality}_skull_raw.nii.gz",