From 822ea40e7db481a2745f01d3b6c0899ac749e634 Mon Sep 17 00:00:00 2001 From: Gabriel Studer <gabriel.studer@unibas.ch> Date: Fri, 18 Nov 2022 10:42:33 +0100 Subject: [PATCH] stereocheck: extend unit tests --- modules/mol/alg/tests/test_stereochemistry.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/mol/alg/tests/test_stereochemistry.py b/modules/mol/alg/tests/test_stereochemistry.py index c394b6d87..ae458d4b5 100644 --- a/modules/mol/alg/tests/test_stereochemistry.py +++ b/modules/mol/alg/tests/test_stereochemistry.py @@ -181,6 +181,32 @@ class TestStereochemistry(unittest.TestCase): self.assertEqual(sorted(["N", "CA", "C", "O"]), sorted(phe_atoms)) + # reload and trigger the case where the nucleotide backbone remains + ent = _LoadFile("10b2.pdb") + c_B_75 = ent.FindResidue("B", mol.ResNum(75)) + ser_A_219 = ent.FindResidue("A", mol.ResNum(219)) + c_at = c_B_75.FindAtom("O2") + ser_at = ser_A_219.FindAtom("O") + ed = ent.EditXCS() + new_pos = ser_at.GetPos() + 0.6*(c_at.GetPos()-ser_at.GetPos()) + ed.SetAtomPos(ser_at, new_pos) + + stereochecked_ent, clashes, bad_bonds, bad_angles = \ + stereochemistry.StereoCheck(ent) + + self.assertEqual(len(clashes), 1) + self.assertEqual(len(bad_bonds), 1) + self.assertEqual(len(bad_angles), 1) + + c_B_75 = stereochecked_ent.FindResidue("B", mol.ResNum(75)) + self.assertTrue(c_B_75.IsValid()) + ser_A_219 = stereochecked_ent.FindResidue("A", mol.ResNum(219)) + self.assertFalse(ser_A_219.IsValid()) + c_atoms = [a.GetName() for a in c_B_75.atoms] + exp_c_atoms = ["P", "OP1", "OP2", "O5'", "C5'", "C4'", "C3'", + "C2'", "C1'", "O4'", "O3'", "O2'"] + self.assertEqual(sorted(c_atoms), sorted(exp_c_atoms)) + if __name__ == "__main__": from ost import testutils if testutils.SetDefaultCompoundLib(): -- GitLab