From 1fad1c3a3ccbd56b9b4c5f3fc1884ec602be4e55 Mon Sep 17 00:00:00 2001 From: Ravi Hassanaly <42928557+ravih18@users.noreply.github.com> Date: Thu, 24 Oct 2024 13:17:58 +0200 Subject: [PATCH] [FIX] Correct the `pet-linear` pipeline (#1348) * Use T1W linear for non linear registration * run precommit * Update clinica/pipelines/pet/linear/pipeline.py * Update clinica/pipelines/pet/linear/pipeline.py --------- Co-authored-by: Gensollen --- clinica/pipelines/pet/linear/pipeline.py | 30 ++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/clinica/pipelines/pet/linear/pipeline.py b/clinica/pipelines/pet/linear/pipeline.py index 9e877c5a8..aae24d09c 100644 --- a/clinica/pipelines/pet/linear/pipeline.py +++ b/clinica/pipelines/pet/linear/pipeline.py @@ -38,7 +38,7 @@ def get_input_fields(self) -> List[str]: list of str : A list of (string) input fields name. """ - return ["pet", "t1w", "t1w_to_mni"] + return ["pet", "t1w", "t1w_to_mni", "t1w_linear"] def get_output_fields(self) -> List[str]: """Specify the list of possible outputs of this pipeline. @@ -66,7 +66,12 @@ def _build_input_node(self): ClinicaException, ) from clinica.utils.image import get_mni_template - from clinica.utils.input_files import T1W_NII, T1W_TO_MNI_TRANSFORM + from clinica.utils.input_files import ( + T1W_LINEAR, + T1W_LINEAR_CROPPED, + T1W_NII, + T1W_TO_MNI_TRANSFORM, + ) from clinica.utils.inputs import clinica_file_reader from clinica.utils.stream import cprint from clinica.utils.ux import print_images_to_process @@ -102,6 +107,21 @@ def _build_input_node(self): raise ClinicaBIDSError(err) # Inputs from t1-linear pipeline + # T1w images registered + t1w_linear_file_pattern = ( + T1W_LINEAR + if self.parameters.get("uncropped_image", False) + else T1W_LINEAR_CROPPED + ) + try: + t1w_linear_files, _ = clinica_file_reader( + self.subjects, + self.sessions, + self.caps_directory, + t1w_linear_file_pattern, + ) + except ClinicaException as e: + raise ClinicaCAPSError(e) # Transformation files from T1w files to MNI: try: t1w_to_mni_transformation_files, _ = clinica_file_reader( @@ -124,6 +144,7 @@ def _build_input_node(self): ("t1w", t1w_files), ("pet", pet_files), ("t1w_to_mni", t1w_to_mni_transformation_files), + ("t1w_linear", t1w_linear_files), ], synchronize=True, interface=nutil.IdentityInterface(fields=self.get_input_fields()), @@ -133,6 +154,7 @@ def _build_input_node(self): (read_input_node, self.input_node, [("t1w", "t1w")]), (read_input_node, self.input_node, [("pet", "pet")]), (read_input_node, self.input_node, [("t1w_to_mni", "t1w_to_mni")]), + (read_input_node, self.input_node, [("t1w_linear", "t1w_linear")]), ] ) @@ -394,12 +416,12 @@ def _build_core_nodes(self): ( self.input_node, ants_registration_nonlinear_node, - [("t1w", "moving_image")], + [("t1w_linear", "moving_image")], ), ( ants_registration_nonlinear_node, ants_applytransform_nonlinear_node, - [("reverse_forward_transforms", "transforms")], + [("forward_transforms", "transforms")], ), ( ants_applytransform_node,