From cf017c86e0c27799b66f0fdc2e4952e1b787f33f Mon Sep 17 00:00:00 2001 From: Gabriel Studer <gabriel.studer@unibas.ch> Date: Tue, 23 Jul 2024 16:04:05 +0200 Subject: [PATCH] Scoring: Set transformation matrix to identity matrix if NO residue is mapped --- modules/mol/alg/pymod/scoring.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/mol/alg/pymod/scoring.py b/modules/mol/alg/pymod/scoring.py index 7de667890..24a676fb9 100644 --- a/modules/mol/alg/pymod/scoring.py +++ b/modules/mol/alg/pymod/scoring.py @@ -1350,9 +1350,13 @@ class Scorer: """ if self._transform is None: if len(self.mapped_model_pos) < 3: - res = mol.alg.SuperposeSVD(self.mapped_model_pos_full_bb, - self.mapped_target_pos_full_bb) - self._transform = res.transformation + if len(self.mapped_model_pos_full_bb) >=3: + res = mol.alg.SuperposeSVD(self.mapped_model_pos_full_bb, + self.mapped_target_pos_full_bb) + self._transform = res.transformation + else: + # there is really nothing we can do => set identity matrix + self._transform = geom.Mat4() else: res = mol.alg.SuperposeSVD(self.mapped_model_pos, self.mapped_target_pos) @@ -1449,9 +1453,13 @@ class Scorer: """ if self._rigid_transform is None: if len(self.rigid_mapped_model_pos) < 3: - res = mol.alg.SuperposeSVD(self.rigid_mapped_model_pos_full_bb, - self.rigid_mapped_target_pos_full_bb) - self._rigid_transform = res.transformation + if len(self.rigid_mapped_model_pos_full_bb) >= 3: + res = mol.alg.SuperposeSVD(self.rigid_mapped_model_pos_full_bb, + self.rigid_mapped_target_pos_full_bb) + self._rigid_transform = res.transformation + else: + # there is really nothing we can do => set identity matrix + self._rigid_transform = geom.Mat4() else: res = mol.alg.SuperposeSVD(self.rigid_mapped_model_pos, self.rigid_mapped_target_pos) -- GitLab