From 00e1839740bfca41e6325e93f38607665662957a 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 ea9decc38..7c3856f32 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, format_clinica_file_reader_errors, @@ -101,6 +106,21 @@ def _build_input_node(self): ) # 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 + ) + t1w_linear_files, t1w_linear_errors = clinica_file_reader( + self.subjects, self.sessions, self.caps_directory, t1w_linear_file_pattern + ) + if t1w_linear_errors: + raise ClinicaCAPSError( + format_clinica_file_reader_errors( + t1w_linear_errors, t1w_linear_file_pattern + ) + ) # Transformation files from T1w files to MNI: t1w_to_mni_transformation_files, t1w_to_mni_errors = clinica_file_reader( self.subjects, self.sessions, self.caps_directory, T1W_TO_MNI_TRANSFORM @@ -122,6 +142,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()), @@ -131,6 +152,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")]), ] ) @@ -392,12 +414,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,