From 55fb3da492d1ea5ac5a5d95e3de61414060831c2 Mon Sep 17 00:00:00 2001
From: Gabriel Studer <gabriel.studer@unibas.ch>
Date: Tue, 29 Nov 2022 10:12:03 +0100
Subject: [PATCH] scoring.py bugfix

avoid KeyError when trying to figure out whether model residue is
covered by target structure
---
 modules/mol/alg/pymod/scoring.py | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/modules/mol/alg/pymod/scoring.py b/modules/mol/alg/pymod/scoring.py
index 9c69bb007..091ef0d9c 100644
--- a/modules/mol/alg/pymod/scoring.py
+++ b/modules/mol/alg/pymod/scoring.py
@@ -837,13 +837,14 @@ class Scorer:
                     #        => assign None
 
                     # fetch trg residue from non-stereochecked aln
-                    aln = self.mapping.alns[(flat_mapping[cname], cname)]
                     trg_r = None
-                    for col in aln:
-                        if col[0] != '-' and col[1] != '-':
-                            if col.GetResidue(1).GetNumber() == r.GetNumber():
-                                trg_r = col.GetResidue(0)
-                                break
+                    if cname in flat_mapping:
+                        aln = self.mapping.alns[(flat_mapping[cname], cname)]
+                        for col in aln:
+                            if col[0] != '-' and col[1] != '-':
+                                if col.GetResidue(1).number == r.number:
+                                    trg_r = col.GetResidue(0)
+                                    break
                     if trg_r is None:
                         local_lddt[cname][r.GetNumber().GetNum()] = None
                     else:
-- 
GitLab