From 59108d6cbfe04fc5ef9469aa78ced3c696c489b1 Mon Sep 17 00:00:00 2001 From: yokochi47 Date: Fri, 19 Apr 2024 15:16:08 +0900 Subject: [PATCH] DAOTHER-9317: Rescued 300 atoms' chemical shift statistics of non-standard residues by mathcing CCD --- wwpdb/utils/nmr/BMRBChemShiftStat.py | 176 ++++++++++++++---- wwpdb/utils/nmr/bmrb_cs_stat/others.pkl | Bin 515606 -> 515492 bytes wwpdb/utils/nmr/mr/ParserListenerUtil.py | 6 + .../utils/tests-nmr/test_BMRBChemShiftStat.py | 7 +- 4 files changed, 147 insertions(+), 42 deletions(-) diff --git a/wwpdb/utils/nmr/BMRBChemShiftStat.py b/wwpdb/utils/nmr/BMRBChemShiftStat.py index 737226307..f885b04b4 100644 --- a/wwpdb/utils/nmr/BMRBChemShiftStat.py +++ b/wwpdb/utils/nmr/BMRBChemShiftStat.py @@ -33,12 +33,16 @@ try: from wwpdb.utils.nmr.AlignUtil import (emptyValue, - protonBeginCode) + protonBeginCode, + pseProBeginCode) from wwpdb.utils.nmr.ChemCompUtil import ChemCompUtil + from wwpdb.utils.nmr.mr.ParserListenerUtil import translateToStdAtomName except ImportError: from nmr.AlignUtil import (emptyValue, - protonBeginCode) + protonBeginCode, + pseProBeginCode) from nmr.ChemCompUtil import ChemCompUtil + from nmr.mr.ParserListenerUtil import translateToStdAtomName class BMRBChemShiftStat: @@ -800,9 +804,15 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['comp_id'] = comp_id _row['atom_id'] = _atom_id + str(i) - if not self.__checkAtomNomenclature(_row['atom_id']): + __status, __comp_id, __atom_id = self.checkAtomNomenclature(_row['atom_id']) + if not __status: continue + if _row['comp_id'] != __comp_id: + _row['comp_id'] = __comp_id + if _row['atom_id'] != __atom_id: + _row['atom_id'] = __atom_id + _row['count'] = int(row['count']) _row['avg'] = float(row['avg']) try: @@ -815,7 +825,8 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['primary'] = False _row['norm_freq'] = None - atm_list.append(_row) + if not any(a['comp_id'] == _row['comp_id'] and a['atom_id'] == _row['atom_id'] for a in atm_list): + atm_list.append(_row) elif comp_id == 'HEM' and re.match(r'^HM[A-D]$', _atom_id) is not None: # others.csv dependent code @@ -824,9 +835,15 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['comp_id'] = comp_id _row['atom_id'] = _atom_id + i - if not self.__checkAtomNomenclature(_row['atom_id']): + __status, __comp_id, __atom_id = self.checkAtomNomenclature(_row['atom_id']) + if not __status: continue + if _row['comp_id'] != __comp_id: + _row['comp_id'] = __comp_id + if _row['atom_id'] != __atom_id: + _row['atom_id'] = __atom_id + _row['count'] = int(row['count']) _row['avg'] = float(row['avg']) try: @@ -839,7 +856,8 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['primary'] = False _row['norm_freq'] = None - atm_list.append(_row) + if not any(a['comp_id'] == _row['comp_id'] and a['atom_id'] == _row['atom_id'] for a in atm_list): + atm_list.append(_row) elif comp_id == 'HEB' and (re.match(r'^HM[A-D]1$', _atom_id) is not None or _atom_id == 'HBB1'): # others.csv dependent code @@ -848,9 +866,15 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['comp_id'] = comp_id _row['atom_id'] = _atom_id[:-1] + str(i) - if not self.__checkAtomNomenclature(_row['atom_id']): + __status, __comp_id, __atom_id = self.checkAtomNomenclature(_row['atom_id']) + if not __status: continue + if _row['comp_id'] != __comp_id: + _row['comp_id'] = __comp_id + if _row['atom_id'] != __atom_id: + _row['atom_id'] = __atom_id + _row['count'] = int(row['count']) _row['avg'] = float(row['avg']) try: @@ -863,7 +887,8 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['primary'] = False _row['norm_freq'] = None - atm_list.append(_row) + if not any(a['comp_id'] == _row['comp_id'] and a['atom_id'] == _row['atom_id'] for a in atm_list): + atm_list.append(_row) elif comp_id == 'HEC' and (re.match(r'^HM[A-D]$', _atom_id) is not None or re.match(r'^HB[BC]$', _atom_id) is not None): # others.csv dependent code @@ -872,9 +897,15 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['comp_id'] = comp_id _row['atom_id'] = _atom_id + str(i) - if not self.__checkAtomNomenclature(_row['atom_id']): + __status, __comp_id, __atom_id = self.checkAtomNomenclature(_row['atom_id']) + if not __status: continue + if _row['comp_id'] != __comp_id: + _row['comp_id'] = __comp_id + if _row['atom_id'] != __atom_id: + _row['atom_id'] = __atom_id + _row['count'] = int(row['count']) _row['avg'] = float(row['avg']) try: @@ -887,7 +918,8 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['primary'] = False _row['norm_freq'] = None - atm_list.append(_row) + if not any(a['comp_id'] == _row['comp_id'] and a['atom_id'] == _row['atom_id'] for a in atm_list): + atm_list.append(_row) # geminal proton group elif _atom_id.startswith('Q'): @@ -898,9 +930,15 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['comp_id'] = comp_id _row['atom_id'] = _atom_id + str(i) - if not self.__checkAtomNomenclature(_row['atom_id']): + __status, __comp_id, __atom_id = self.checkAtomNomenclature(_row['atom_id']) + if not __status: continue + if _row['comp_id'] != __comp_id: + _row['comp_id'] = __comp_id + if _row['atom_id'] != __atom_id: + _row['atom_id'] = __atom_id + _row['count'] = int(row['count']) _row['avg'] = float(row['avg']) try: @@ -913,7 +951,8 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['primary'] = False _row['norm_freq'] = None - atm_list.append(_row) + if not any(a['comp_id'] == _row['comp_id'] and a['atom_id'] == _row['atom_id'] for a in atm_list): + atm_list.append(_row) elif not ((comp_id == 'HEM' and re.match(r'^HM[A-D][AB]$', _atom_id) is not None) or (comp_id == 'HEB' and (re.match(r'^HM[A-D][23]$', _atom_id) is not None @@ -924,9 +963,15 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['comp_id'] = comp_id _row['atom_id'] = _atom_id - if not self.__checkAtomNomenclature(_row['atom_id']): + __status, __comp_id, __atom_id = self.checkAtomNomenclature(_row['atom_id']) + if not __status: continue + if _row['comp_id'] != __comp_id: + _row['comp_id'] = __comp_id + if _row['atom_id'] != __atom_id: + _row['atom_id'] = __atom_id + _row['count'] = int(row['count']) _row['avg'] = float(row['avg']) try: @@ -939,7 +984,8 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['primary'] = False _row['norm_freq'] = None - atm_list.append(_row) + if not any(a['comp_id'] == _row['comp_id'] and a['atom_id'] == _row['atom_id'] for a in atm_list): + atm_list.append(_row) comp_ids = set(item['comp_id'] for item in atm_list) @@ -971,7 +1017,8 @@ def loadStatFromCsvFile(self, file_name, primary_th, secondary_th=None, comp_id_ _row['norm_freq'] = None _row['count'] = 0 - atm_list.append(_row) + if not any(a['comp_id'] == _row['comp_id'] and a['atom_id'] == _row['atom_id'] for a in atm_list): + atm_list.append(_row) self.__detectMethylProtonFromAtomNomenclature(comp_ids, atm_list) self.__detectGeminalProtonFromAtomNomenclature(comp_ids, atm_list) @@ -1031,60 +1078,99 @@ def __appendExtraFromCcd(self, comp_id): self.extras.extend(atm_list) - def __checkAtomNomenclature(self, atom_id): + def checkAtomNomenclature(self, atom_id, comp_id=None): """ Check atom nomenclature. """ + if comp_id is not None: + self.__ccU.updateChemCompDict(comp_id) + + comp_id = self.__ccU.lastCompId peptide_like = self.__ccU.peptideLike() - if any(a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList - if a[self.__ccU.ccaAtomId] == atom_id - and (a[self.__ccU.ccaLeavingAtomFlag] != 'Y' - or (peptide_like - and a[self.__ccU.ccaNTerminalAtomFlag] == 'N' - and a[self.__ccU.ccaCTerminalAtomFlag] == 'N'))): - return True + cc_rel_status = self.__ccU.lastChemCompDict['_chem_comp.pdbx_release_status'] + + if cc_rel_status == 'OBS' and '_chem_comp.pdbx_replaced_by' in self.__ccU.lastChemCompDict: + replaced_by = self.__ccU.lastChemCompDict['_chem_comp.pdbx_replaced_by'] + if replaced_by not in emptyValue and self.__ccU.updateChemCompDict(replaced_by): + if self.__verbose: + self.__lfh.write(f"+BMRBChemShiftStat.checkAtomNomenclature() ++ Warning - {comp_id} is replaced by {replaced_by}\n") + + comp_id = replaced_by + ref_atom_ids = [a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList] + + cc_rel_status = self.__ccU.lastChemCompDict['_chem_comp.pdbx_release_status'] + + if cc_rel_status == 'REL': + if any(a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList + if a[self.__ccU.ccaAtomId] == atom_id + and (a[self.__ccU.ccaLeavingAtomFlag] != 'Y' + or (peptide_like + and a[self.__ccU.ccaNTerminalAtomFlag] == 'N' + and a[self.__ccU.ccaCTerminalAtomFlag] == 'N'))): + return True, comp_id, atom_id - comp_id = self.__ccU.lastCompId ref_atom_ids = [a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList] - ref_alt_atom_ids = [a[self.__ccU.ccaAltAtomId] for a in self.__ccU.lastAtomList] - if len(ref_atom_ids) == 0: + if len(ref_atom_ids) == 0 or cc_rel_status != 'REL': if self.__verbose: - cc_rel_status = self.__ccU.lastChemCompDict['_chem_comp.pdbx_release_status'] - self.__lfh.write(f"+BMRBChemShiftStat.__checkAtomNomenclature() ++ Error - {comp_id} is not valid CCD ID, status code: {cc_rel_status}\n") - return False + self.__lfh.write(f"+BMRBChemShiftStat.checkAtomNomenclature() ++ Error - {comp_id} is not valid CCD ID, status code: {cc_rel_status}\n") + return False, None, None + + ref_alt_atom_ids = [a[self.__ccU.ccaAltAtomId] for a in self.__ccU.lastAtomList] if atom_id in ref_atom_ids and atom_id in ref_alt_atom_ids: _ref_atom_id = next(a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList if a[self.__ccU.ccaAltAtomId] == atom_id) if atom_id == _ref_atom_id: - return True + return True, comp_id, atom_id if self.__verbose: - self.__lfh.write(f"+BMRBChemShiftStat.__checkAtomNomenclature() ++ Warning - {comp_id}:{atom_id} is valid, " + self.__lfh.write(f"+BMRBChemShiftStat.checkAtomNomenclature() ++ Warning - {comp_id}:{atom_id} is valid, " f"but _chem_comp.alt_atom_id matched with different atom_id {_ref_atom_id}\n") - return True + return True, comp_id, atom_id if atom_id in ref_atom_ids and atom_id not in ref_alt_atom_ids: - return True + return True, comp_id, atom_id - if atom_id not in ref_alt_atom_ids and atom_id in ref_alt_atom_ids: + if atom_id not in ref_atom_ids and atom_id in ref_alt_atom_ids: _ref_atom_id = next(a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList if a[self.__ccU.ccaAltAtomId] == atom_id) if self.__verbose: - self.__lfh.write(f"+BMRBChemShiftStat.__checkAtomNomenclature() ++ Error - {comp_id}:{atom_id} matched with _chem_comp.alt_atom_id only. " + self.__lfh.write(f"+BMRBChemShiftStat.checkAtomNomenclature() ++ Warning - {comp_id}:{atom_id} matched with _chem_comp.alt_atom_id only. " f"It should be {_ref_atom_id}\n") - return False + # print(f'case 1. {_comp_id}:{atom_id} -> {comp_id}:{_ref_atom_id}') + return True, comp_id, _ref_atom_id + + _ref_atom_ids = [a for a in ref_atom_ids if a[0] == atom_id[0] or a[0] == 'H' and atom_id[0] in pseProBeginCode] + + if len(_ref_atom_ids) == 0: + if self.__verbose: + self.__lfh.write(f"+BMRBChemShiftStat.checkAtomNomenclature() ++ Error - {comp_id}:{atom_id} did not match with any atom in CCD. No candidates foud\n") + + return False, None, None + + if len(atom_id) > 1 and atom_id[0] in ('1', '2', '3') and atom_id[1] == 'H' and atom_id[1:] + atom_id[0] in _ref_atom_ids: + # print(f'case 2. {_comp_id}:{atom_id} -> {comp_id}:{atom_id[1:] + atom_id[0]}') + return True, comp_id, atom_id[1:] + atom_id[0] + + if atom_id[-1] == "'" and self.getTypeOfCompId(comp_id)[2] and atom_id[:-1] in _ref_atom_ids: + # print(f'case 3. {_comp_id}:{atom_id} -> {comp_id}:{atom_id[:-1]}') + return True, comp_id, atom_id[:-1] + + _atom_id = translateToStdAtomName(atom_id, comp_id, refAtomIdList=_ref_atom_ids, ccU=self.__ccU, unambig=False) + if _atom_id in _ref_atom_ids: + # print(f'case 4. {_comp_id}:{atom_id} -> {comp_id}:{_atom_id}') + return True, comp_id, _atom_id if self.__verbose: - self.__lfh.write(f"+BMRBChemShiftStat.__checkAtomNomenclature() ++ Error - {comp_id}:{atom_id} did not match with any atom in CCD\n") + self.__lfh.write(f"+BMRBChemShiftStat.checkAtomNomenclature() ++ Error - {comp_id}:{atom_id} did not match with any atom in CCD, {_ref_atom_ids}\n") - return False + return False, None, None def __detectMethylProtonFromAtomNomenclature(self, comp_ids, atm_list): """ Detect methyl proton from atom nomenclature. @@ -1685,9 +1771,19 @@ def check_bmrb_cs_stat(atm_list): _list = [a for a in atm_list if a['comp_id'] == comp_id] ref_atom_ids = [a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList] + cc_rel_status = self.__ccU.lastChemCompDict['_chem_comp.pdbx_release_status'] + + if cc_rel_status == 'OBS' and '_chem_comp.pdbx_replaced_by' in self.__ccU.lastChemCompDict: + replaced_by = self.__ccU.lastChemCompDict['_chem_comp.pdbx_replaced_by'] + if replaced_by not in emptyValue and self.__ccU.updateChemCompDict(replaced_by): + print(f'[Warning] {comp_id} is replaced by {replaced_by}.') + + comp_id = replaced_by + + ref_atom_ids = [a[self.__ccU.ccaAtomId] for a in self.__ccU.lastAtomList] + cc_rel_status = self.__ccU.lastChemCompDict['_chem_comp.pdbx_release_status'] - if len(ref_atom_ids) == 0: - cc_rel_status = self.__ccU.lastChemCompDict['_chem_comp.pdbx_release_status'] + if len(ref_atom_ids) == 0 or cc_rel_status != 'REL': print(f'[Error] {comp_id} is not valid CCD ID, status code: {cc_rel_status}.') ret['error'] += 1 continue diff --git a/wwpdb/utils/nmr/bmrb_cs_stat/others.pkl b/wwpdb/utils/nmr/bmrb_cs_stat/others.pkl index 49d3dadab524066fd001bf5f07c4a88ea4c3244e..b3141de790e42f008e4ca601cca208fce4aaa3d7 100644 GIT binary patch delta 102037 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

tlyQF;4&H( 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 OspfbZzBqbL=l>5w4}cN? delta 102275 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 diff --git a/wwpdb/utils/nmr/mr/ParserListenerUtil.py b/wwpdb/utils/nmr/mr/ParserListenerUtil.py index bd379f29d..88d583f31 100644 --- a/wwpdb/utils/nmr/mr/ParserListenerUtil.py +++ b/wwpdb/utils/nmr/mr/ParserListenerUtil.py @@ -1826,12 +1826,16 @@ def translateToStdAtomName(atomId, refCompId=None, refAtomIdList=None, ccU=None, return "H2'1" if atomId == "H2''" and "H2'2" in refAtomIdList: # DCZ, THM return "H2'2" + if atomId == "H2''" and "HO2'" in refAtomIdList: # 5MC (DAOTHER-9313) + return "HO2'" if atomId == "H2''" and "H2'" in refAtomIdList: return "H2'" if atomId == "H2''''" and "H2''" in refAtomIdList: return "H2''" if atomId == "H2''''" and "H2'2" in refAtomIdList: # DCZ, THM return "H2'2" + if atomId == "H2''''" and "HO2'" in refAtomIdList: # 5MC (DAOTHER-9313) + return "HO2'" if atomId == "H2''1" and "H2'1" in refAtomIdList: # 4EN return "H2'1" if atomId == "H2''2" and "H2'2" in refAtomIdList: # 4EN @@ -1844,6 +1848,8 @@ def translateToStdAtomName(atomId, refCompId=None, refAtomIdList=None, ccU=None, return "H2'1" if atomId == "H2''" and "H2'2" in _refAtomIdList: # DCZ, THM return "H2'2" + if atomId == "H2''" and "HO2'" in _refAtomIdList: # 5MC (DAOTHER-9313) + return "HO2'" if atomId == "H2''" and "H2'" in _refAtomIdList: return "H2'" if atomId == "H2''''" and "H2''" in _refAtomIdList: diff --git a/wwpdb/utils/tests-nmr/test_BMRBChemShiftStat.py b/wwpdb/utils/tests-nmr/test_BMRBChemShiftStat.py index be808f75f..6a3df8ac4 100644 --- a/wwpdb/utils/tests-nmr/test_BMRBChemShiftStat.py +++ b/wwpdb/utils/tests-nmr/test_BMRBChemShiftStat.py @@ -57,9 +57,9 @@ def test_bb_atoms(self): self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('DA', excl_minor_atom=True), ["H1'", "H2'", "H2''", "H3'", "H4'", "H5'", "H5''"]) self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('A'), ["C1'", "C2'", "C3'", "C4'", "C5'", "H1'", "H2'", "H3'", "H4'", "H5'", "H5''", "HO2'", 'P']) self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('A', excl_minor_atom=True), ["C1'", "C2'", "C3'", "C4'", "C5'", "H1'", "H2'", "H3'", "H4'", "H5'", "H5''"]) - self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('5MC'), ["H1'", "H2'", "H3'", "H4'", "H5'", "H5''", 'P', "C5'", "C4'", "C3'", "C2'", "C1'", "HO2'"]) + self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('5MC'), ["H1'", "H2'", "HO2'", "H3'", "H4'", "H5'", "H5''", 'P', "C5'", "C4'", "C3'", "C2'", "C1'"]) self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('5MC', polypeptide_like=True), []) - self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('5MC', polynucleotide_like=True), ["H1'", "H2'", "H3'", "H4'", "H5'", "H5''", 'P', "C5'", "C4'", "C3'", "C2'", "C1'", "HO2'"]) + self.assertEqual(self.bmrb_cs_stat.getBackBoneAtoms('5MC', polynucleotide_like=True), ["H1'", "H2'", "HO2'", "H3'", "H4'", "H5'", "H5''", 'P', "C5'", "C4'", "C3'", "C2'", "C1'"]) def test_arom_atoms(self): self.assertEqual(self.bmrb_cs_stat.getAromaticAtoms('ALA'), []) @@ -167,6 +167,9 @@ def test_peptide_line(self): def test_atom_nomenclature(self): self.assertEqual(self.bmrb_cs_stat.testAtomNomenclatureOfLibrary(), True) + def test_doh_hn1(self): + self.assertEqual(self.bmrb_cs_stat.checkAtomNomenclature('HN1', 'DOH'), (True, 'BHD', 'H')) + if __name__ == '__main__': unittest.main()