diff --git a/modules/mol/alg/pymod/ligand_scoring.py b/modules/mol/alg/pymod/ligand_scoring.py index 866a71cc5c174b1ae47da80d42fb3960232f74a2..330b13683965054aefc5805c7e88a64caf37b6df 100644 --- a/modules/mol/alg/pymod/ligand_scoring.py +++ b/modules/mol/alg/pymod/ligand_scoring.py @@ -656,13 +656,13 @@ class LigandScorer: trg_idx, mdl_idx = assignment mdl_lig = self.model_ligands[mdl_idx] mdl_cname = mdl_lig.chain.name - mdl_restuple = (mdl_lig.number.num, mdl_lig.number.ins_code) + mdl_resnum = mdl_lig.number if mdl_cname not in out_main: out_main[mdl_cname] = {} out_details[mdl_cname] = {} - out_main[mdl_cname][mdl_restuple] = data[ + out_main[mdl_cname][mdl_resnum] = data[ trg_idx, mdl_idx][main_key] - out_details[mdl_cname][mdl_restuple] = data[ + out_details[mdl_cname][mdl_resnum] = data[ trg_idx, mdl_idx] return out_main, out_details @@ -727,7 +727,7 @@ class LigandScorer: @property def rmsd(self): """Get a dictionary of RMSD score values, keyed by model ligand - (chain name, tuple(residue number, insertion code)). + (chain name, :class:`~ost.mol.ResNum`). :rtype: :class:`dict` """ @@ -738,7 +738,7 @@ class LigandScorer: @property def rmsd_details(self): """Get a dictionary of RMSD score details (dictionaries), keyed by - model ligand (chain name, tuple(residue number, insertion code)). + model ligand (chain name, :class:`~ost.mol.ResNum`). Each sub-dictionary contains the following information: @@ -767,7 +767,7 @@ class LigandScorer: @property def lddt_pli(self): """Get a dictionary of lDDT-PLI score values, keyed by model ligand - (chain name, tuple(residue number, insertion code)). + (chain name, :class:`~ost.mol.ResNum`). :rtype: :class:`dict` """ @@ -778,7 +778,7 @@ class LigandScorer: @property def lddt_pli_details(self): """Get a dictionary of lDDT-PLI score details (dictionaries), keyed by - model ligand (chain name, tuple(residue number, insertion code)). + model ligand (chain name, :class:`~ost.mol.ResNum`). Each sub-dictionary contains the following information: diff --git a/modules/mol/alg/tests/test_ligand_scoring.py b/modules/mol/alg/tests/test_ligand_scoring.py index 79b80751be3bc3767b8b5901fb3f2b76221af275..27d86bdaf17ebd465447ccd66e56fba3e66dcacd 100644 --- a/modules/mol/alg/tests/test_ligand_scoring.py +++ b/modules/mol/alg/tests/test_ligand_scoring.py @@ -301,38 +301,38 @@ class TestLigandScoring(unittest.TestCase): self.assertFalse(expected_keys.symmetric_difference(sc.lddt_pli_details.keys())) # rmsd - self.assertAlmostEqual(sc.rmsd["J"][(1, "\x00")], 0.8016608357429504, 5) - self.assertAlmostEqual(sc.rmsd["F"][(1, "\x00")], 0.9286373257637024, 5) + self.assertAlmostEqual(sc.rmsd["J"][mol.ResNum(1)], 0.8016608357429504, 5) + self.assertAlmostEqual(sc.rmsd["F"][mol.ResNum(1)], 0.9286373257637024, 5) # rmsd_details - self.assertEqual(sc.rmsd_details["J"][(1, "\x00")]["chain_mapping"], {'F': 'D', 'C': 'C'}) - self.assertEqual(sc.rmsd_details["J"][(1, "\x00")]["bs_num_res"], 15) - self.assertEqual(sc.rmsd_details["J"][(1, "\x00")]["bs_num_overlap_res"], 15) - self.assertEqual(sc.rmsd_details["J"][(1, "\x00")]["target_ligand"].qualified_name, 'I.G3D1') - self.assertEqual(sc.rmsd_details["J"][(1, "\x00")]["model_ligand"].qualified_name, 'J.G3D1') - self.assertEqual(sc.rmsd_details["F"][(1, "\x00")]["chain_mapping"], {'B': 'B', 'G': 'A'}) - self.assertEqual(sc.rmsd_details["F"][(1, "\x00")]["bs_num_res"], 15) - self.assertEqual(sc.rmsd_details["F"][(1, "\x00")]["bs_num_overlap_res"], 15) - self.assertEqual(sc.rmsd_details["F"][(1, "\x00")]["target_ligand"].qualified_name, 'K.G3D1') - self.assertEqual(sc.rmsd_details["F"][(1, "\x00")]["model_ligand"].qualified_name, 'F.G3D1') + self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["chain_mapping"], {'F': 'D', 'C': 'C'}) + self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["bs_num_res"], 15) + self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["bs_num_overlap_res"], 15) + self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["target_ligand"].qualified_name, 'I.G3D1') + self.assertEqual(sc.rmsd_details["J"][mol.ResNum(1)]["model_ligand"].qualified_name, 'J.G3D1') + self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["chain_mapping"], {'B': 'B', 'G': 'A'}) + self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["bs_num_res"], 15) + self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["bs_num_overlap_res"], 15) + self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["target_ligand"].qualified_name, 'K.G3D1') + self.assertEqual(sc.rmsd_details["F"][mol.ResNum(1)]["model_ligand"].qualified_name, 'F.G3D1') # lddt_pli - self.assertAlmostEqual(sc.lddt_pli["J"][(1, "\x00")], 0.9127105666156202, 5) - self.assertAlmostEqual(sc.lddt_pli["F"][(1, "\x00")], 0.915929203539823, 6) + self.assertAlmostEqual(sc.lddt_pli["J"][mol.ResNum(1)], 0.9127105666156202, 5) + self.assertAlmostEqual(sc.lddt_pli["F"][mol.ResNum(1)], 0.915929203539823, 6) # lddt_pli_details - self.assertAlmostEqual(sc.lddt_pli_details["J"][(1, "\x00")]["rmsd"], 0.8016608357429504, 4) - self.assertEqual(sc.lddt_pli_details["J"][(1, "\x00")]["lddt_pli_n_contacts"], 5224) - self.assertEqual(sc.lddt_pli_details["J"][(1, "\x00")]["chain_mapping"], {'F': 'D', 'C': 'C'}) - self.assertEqual(sc.lddt_pli_details["J"][(1, "\x00")]["bs_num_res"], 15) - self.assertEqual(sc.lddt_pli_details["J"][(1, "\x00")]["bs_num_overlap_res"], 15) - self.assertEqual(sc.lddt_pli_details["J"][(1, "\x00")]["target_ligand"].qualified_name, 'I.G3D1') - self.assertEqual(sc.lddt_pli_details["J"][(1, "\x00")]["model_ligand"].qualified_name, 'J.G3D1') - self.assertAlmostEqual(sc.lddt_pli_details["F"][(1, "\x00")]["rmsd"], 0.9286373257637024, 4) - self.assertEqual(sc.lddt_pli_details["F"][(1, "\x00")]["lddt_pli_n_contacts"], 5424) - self.assertEqual(sc.lddt_pli_details["F"][(1, "\x00")]["chain_mapping"], {'B': 'B', 'G': 'A'}) - self.assertEqual(sc.lddt_pli_details["F"][(1, "\x00")]["bs_num_res"], 15) - self.assertEqual(sc.lddt_pli_details["F"][(1, "\x00")]["bs_num_overlap_res"], 15) - self.assertEqual(sc.lddt_pli_details["F"][(1, "\x00")]["target_ligand"].qualified_name, 'K.G3D1') - self.assertEqual(sc.lddt_pli_details["F"][(1, "\x00")]["model_ligand"].qualified_name, 'F.G3D1') + self.assertAlmostEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["rmsd"], 0.8016608357429504, 4) + self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["lddt_pli_n_contacts"], 5224) + self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["chain_mapping"], {'F': 'D', 'C': 'C'}) + self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["bs_num_res"], 15) + self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["bs_num_overlap_res"], 15) + self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["target_ligand"].qualified_name, 'I.G3D1') + self.assertEqual(sc.lddt_pli_details["J"][mol.ResNum(1)]["model_ligand"].qualified_name, 'J.G3D1') + self.assertAlmostEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["rmsd"], 0.9286373257637024, 4) + self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["lddt_pli_n_contacts"], 5424) + self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["chain_mapping"], {'B': 'B', 'G': 'A'}) + self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["bs_num_res"], 15) + self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["bs_num_overlap_res"], 15) + self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["target_ligand"].qualified_name, 'K.G3D1') + self.assertEqual(sc.lddt_pli_details["F"][mol.ResNum(1)]["model_ligand"].qualified_name, 'F.G3D1') if __name__ == "__main__":