diff --git a/wwpdb/utils/nmr/mr/AriaMRParserListener.py b/wwpdb/utils/nmr/mr/AriaMRParserListener.py index 025596323..6a7076e20 100644 --- a/wwpdb/utils/nmr/mr/AriaMRParserListener.py +++ b/wwpdb/utils/nmr/mr/AriaMRParserListener.py @@ -396,7 +396,8 @@ def exitAria_mr(self, ctx: AriaMRParser.Aria_mrContext): # pylint: disable=unus trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -553,7 +554,7 @@ def exitAria_mr(self, ctx: AriaMRParser.Aria_mrContext): # pylint: disable=unus del self.reasonsForReParsing['local_seq_scheme'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] finally: @@ -869,6 +870,18 @@ def assignCoordPolymerSequence(self, seqId, compId, atomId): preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if self.__mrAtomNameMapping is not None and compId not in monDict3: seqId, compId, _ = retrieveAtomIdentFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) @@ -1153,6 +1166,18 @@ def assignCoordPolymerSequenceWithChainId(self, refChainId, seqId, compId, atomI preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if self.__mrAtomNameMapping is not None and compId not in monDict3: seqId, compId, _ = retrieveAtomIdentFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) @@ -1501,6 +1526,17 @@ def selectCoordAtoms(self, chainAssign, seqId, compId, atomId, allowAmbig=True, _compId = compId _atomId = atomId + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = znSeqId + if self.__mrAtomNameMapping is not None and compId not in monDict3: _atomId = retrieveAtomIdFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) diff --git a/wwpdb/utils/nmr/mr/BiosymMRParserListener.py b/wwpdb/utils/nmr/mr/BiosymMRParserListener.py index 9857e64f3..70bf90d5b 100644 --- a/wwpdb/utils/nmr/mr/BiosymMRParserListener.py +++ b/wwpdb/utils/nmr/mr/BiosymMRParserListener.py @@ -405,7 +405,8 @@ def exitBiosym_mr(self, ctx: BiosymMRParser.Biosym_mrContext): # pylint: disabl trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -562,7 +563,7 @@ def exitBiosym_mr(self, ctx: BiosymMRParser.Biosym_mrContext): # pylint: disabl del self.reasonsForReParsing['local_seq_scheme'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] finally: @@ -1003,6 +1004,18 @@ def assignCoordPolymerSequence(self, refChainId, seqId, compId, atomId): preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if refChainId is not None: if any(ps for ps in self.__polySeq if ps['auth_chain_id'] == refChainId): if refChainId not in self.__chainNumberDict: @@ -1347,6 +1360,17 @@ def selectCoordAtoms(self, chainAssign, seqId, compId, atomId, allowAmbig=True, _compId = compId _atomId = atomId + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = znSeqId + if self.__mrAtomNameMapping is not None and compId not in monDict3: _atomId = retrieveAtomIdFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) diff --git a/wwpdb/utils/nmr/mr/CharmmMRParserListener.py b/wwpdb/utils/nmr/mr/CharmmMRParserListener.py index 81fb01cd0..960d663a3 100644 --- a/wwpdb/utils/nmr/mr/CharmmMRParserListener.py +++ b/wwpdb/utils/nmr/mr/CharmmMRParserListener.py @@ -521,7 +521,8 @@ def exitCharmm_mr(self, ctx: CharmmMRParser.Charmm_mrContext): # pylint: disabl trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -732,7 +733,7 @@ def exitCharmm_mr(self, ctx: CharmmMRParser.Charmm_mrContext): # pylint: disabl del self.reasonsForReParsing['np_seq_id_remap'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] if 'global_sequence_offset' in self.reasonsForReParsing: diff --git a/wwpdb/utils/nmr/mr/CnsMRParserListener.py b/wwpdb/utils/nmr/mr/CnsMRParserListener.py index 314fcd921..cd03bf1c8 100644 --- a/wwpdb/utils/nmr/mr/CnsMRParserListener.py +++ b/wwpdb/utils/nmr/mr/CnsMRParserListener.py @@ -655,7 +655,8 @@ def exitCns_mr(self, ctx: CnsMRParser.Cns_mrContext): # pylint: disable=unused- trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -866,7 +867,7 @@ def exitCns_mr(self, ctx: CnsMRParser.Cns_mrContext): # pylint: disable=unused- del self.reasonsForReParsing['np_seq_id_remap'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] if 'global_sequence_offset' in self.reasonsForReParsing: diff --git a/wwpdb/utils/nmr/mr/CyanaMRParserListener.py b/wwpdb/utils/nmr/mr/CyanaMRParserListener.py index 93b22e9ba..0c098c737 100644 --- a/wwpdb/utils/nmr/mr/CyanaMRParserListener.py +++ b/wwpdb/utils/nmr/mr/CyanaMRParserListener.py @@ -548,7 +548,8 @@ def exitCyana_mr(self, ctx: CyanaMRParser.Cyana_mrContext): # pylint: disable=u trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -711,7 +712,7 @@ def exitCyana_mr(self, ctx: CyanaMRParser.Cyana_mrContext): # pylint: disable=u if 'chain_seq_id_remap' not in self.reasonsForReParsing: self.reasonsForReParsing['chain_seq_id_remap'] = seqIdRemapFailed - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f): + if self.__reasons is None and any(f for f in self.__f if '[Atom not found]' in f): if len(self.unambigAtomNameMapping) > 0: if 'unambig_atom_id_remap' not in self.reasonsForReParsing: self.reasonsForReParsing['unambig_atom_id_remap'] = self.unambigAtomNameMapping @@ -734,7 +735,7 @@ def exitCyana_mr(self, ctx: CyanaMRParser.Cyana_mrContext): # pylint: disable=u del self.reasonsForReParsing['local_seq_scheme'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] if self.__remediate: @@ -2073,6 +2074,18 @@ def assignCoordPolymerSequence(self, seqId, compId, atomId): preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if self.__mrAtomNameMapping is not None and compId not in monDict3: seqId, compId, _ = retrieveAtomIdentFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) @@ -2371,6 +2384,18 @@ def assignCoordPolymerSequenceWithChainId(self, refChainId, seqId, compId, atomI preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if self.__mrAtomNameMapping is not None and compId not in monDict3: seqId, compId, _ = retrieveAtomIdentFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) @@ -3129,6 +3154,17 @@ def selectCoordAtoms(self, chainAssign, seqId, compId, atomId, allowAmbig=True, if compId is not None: + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = znSeqId + if self.__mrAtomNameMapping is not None and compId not in monDict3: _atomId = retrieveAtomIdFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) diff --git a/wwpdb/utils/nmr/mr/DynamoMRParserListener.py b/wwpdb/utils/nmr/mr/DynamoMRParserListener.py index 93e14180b..8b4e75dce 100644 --- a/wwpdb/utils/nmr/mr/DynamoMRParserListener.py +++ b/wwpdb/utils/nmr/mr/DynamoMRParserListener.py @@ -449,7 +449,8 @@ def exitDynamo_mr(self, ctx: DynamoMRParser.Dynamo_mrContext): # pylint: disabl trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -606,7 +607,7 @@ def exitDynamo_mr(self, ctx: DynamoMRParser.Dynamo_mrContext): # pylint: disabl del self.reasonsForReParsing['local_seq_scheme'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] finally: @@ -1324,6 +1325,18 @@ def assignCoordPolymerSequence(self, refChainId, seqId, compId, atomId, index=No preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if self.__mrAtomNameMapping is not None and compId not in monDict3: seqId, compId, _ = retrieveAtomIdentFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) @@ -1665,6 +1678,17 @@ def selectCoordAtoms(self, chainAssign, seqId, compId, atomId, allowAmbig=True, _compId = compId _atomId = atomId + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = znSeqId + if self.__mrAtomNameMapping is not None and compId not in monDict3: _atomId = retrieveAtomIdFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) diff --git a/wwpdb/utils/nmr/mr/IsdMRParserListener.py b/wwpdb/utils/nmr/mr/IsdMRParserListener.py index 9ce87a374..639884869 100644 --- a/wwpdb/utils/nmr/mr/IsdMRParserListener.py +++ b/wwpdb/utils/nmr/mr/IsdMRParserListener.py @@ -379,7 +379,8 @@ def exitIsd_mr(self, ctx: IsdMRParser.Isd_mrContext): # pylint: disable=unused- trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -536,7 +537,7 @@ def exitIsd_mr(self, ctx: IsdMRParser.Isd_mrContext): # pylint: disable=unused- del self.reasonsForReParsing['local_seq_scheme'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] finally: @@ -831,6 +832,18 @@ def assignCoordPolymerSequence(self, seqId, compId, atomId): preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if self.__mrAtomNameMapping is not None and compId not in monDict3: seqId, compId, _ = retrieveAtomIdentFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) @@ -1111,6 +1124,17 @@ def selectCoordAtoms(self, chainAssign, seqId, compId, atomId, allowAmbig=True, _compId = compId _atomId = atomId + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = znSeqId + if self.__mrAtomNameMapping is not None and compId not in monDict3: _atomId = retrieveAtomIdFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) diff --git a/wwpdb/utils/nmr/mr/RosettaMRParserListener.py b/wwpdb/utils/nmr/mr/RosettaMRParserListener.py index d60135545..d59f40a6e 100644 --- a/wwpdb/utils/nmr/mr/RosettaMRParserListener.py +++ b/wwpdb/utils/nmr/mr/RosettaMRParserListener.py @@ -463,7 +463,8 @@ def exitRosetta_mr(self, ctx: RosettaMRParser.Rosetta_mrContext): # pylint: dis trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -642,7 +643,7 @@ def exitRosetta_mr(self, ctx: RosettaMRParser.Rosetta_mrContext): # pylint: dis del self.reasonsForReParsing['local_seq_scheme'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] if self.__remediate: diff --git a/wwpdb/utils/nmr/mr/SybylMRParserListener.py b/wwpdb/utils/nmr/mr/SybylMRParserListener.py index d66b4264b..7cb8b380a 100644 --- a/wwpdb/utils/nmr/mr/SybylMRParserListener.py +++ b/wwpdb/utils/nmr/mr/SybylMRParserListener.py @@ -379,7 +379,8 @@ def exitSybyl_mr(self, ctx: SybylMRParser.Sybyl_mrContext): # pylint: disable=u trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -536,7 +537,7 @@ def exitSybyl_mr(self, ctx: SybylMRParser.Sybyl_mrContext): # pylint: disable=u del self.reasonsForReParsing['local_seq_scheme'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] finally: @@ -837,6 +838,18 @@ def assignCoordPolymerSequence(self, seqId, compId, atomId): preferNonPoly = False + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = _seqId = znSeqId + preferNonPoly = True + if self.__mrAtomNameMapping is not None and compId not in monDict3: seqId, compId, _ = retrieveAtomIdentFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) @@ -1117,6 +1130,17 @@ def selectCoordAtoms(self, chainAssign, seqId, compId, atomId, allowAmbig=True, _compId = compId _atomId = atomId + if compId == 'CYSZ' and atomId == 'ZN' and self.__hasNonPoly: + znCount = 0 + znSeqId = None + for np in self.__nonPoly: + if np['comp_id'][0] == 'ZN': + znSeqId = np['auth_seq_id'][0] + znCount += 1 + if znCount == 1: + compId = _compId = 'ZN' + seqId = znSeqId + if self.__mrAtomNameMapping is not None and compId not in monDict3: _atomId = retrieveAtomIdFromMRMap(self.__mrAtomNameMapping, seqId, compId, atomId) diff --git a/wwpdb/utils/nmr/mr/XplorMRParserListener.py b/wwpdb/utils/nmr/mr/XplorMRParserListener.py index 64d48ec85..426b9e93e 100644 --- a/wwpdb/utils/nmr/mr/XplorMRParserListener.py +++ b/wwpdb/utils/nmr/mr/XplorMRParserListener.py @@ -775,7 +775,8 @@ def exitXplor_nih_mr(self, ctx: XplorMRParser.Xplor_nih_mrContext): # pylint: d trimSequenceAlignment(self.__seqAlign, self.__chainAssign) - if self.__reasons is None and any(f for f in self.__f if 'Atom not found' in f or 'Sequence mismatch' in f): + if self.__reasons is None and any(f for f in self.__f + if '[Atom not found]' in f or '[Sequence mismatch]' in f): seqIdRemap = [] @@ -986,7 +987,7 @@ def exitXplor_nih_mr(self, ctx: XplorMRParser.Xplor_nih_mrContext): # pylint: d del self.reasonsForReParsing['np_seq_id_remap'] if 'seq_id_remap' in self.reasonsForReParsing and 'non_poly_remap' in self.reasonsForReParsing: - if self.__reasons is None and not any(f for f in self.__f if 'Sequence mismatch' in f): + if self.__reasons is None and not any(f for f in self.__f if '[Sequence mismatch]' in f): del self.reasonsForReParsing['seq_id_remap'] if 'global_sequence_offset' in self.reasonsForReParsing: @@ -1002,7 +1003,7 @@ def exitXplor_nih_mr(self, ctx: XplorMRParser.Xplor_nih_mrContext): # pylint: d if 'global_sequence_offset' in self.reasonsForReParsing and 'local_seq_scheme' in self.reasonsForReParsing: del self.reasonsForReParsing['local_seq_scheme'] - if len(self.reasonsForReParsing) > 0 and not any(f for f in self.__f if 'Atom not found' in f): + if len(self.reasonsForReParsing) > 0 and not any(f for f in self.__f if '[Atom not found]' in f): self.reasonsForReParsing = {} finally: