diff --git a/modules/conop/src/conop.cc b/modules/conop/src/conop.cc index 76273ce5f6612956bc5fd858a2634a306441161d..e21519d7cbbd22b05b4c318cfdc8b3af13da69c3 100644 --- a/modules/conop/src/conop.cc +++ b/modules/conop/src/conop.cc @@ -181,7 +181,7 @@ public: virtual bool VisitResidue(const mol::ResidueHandle& res) { String key=builder_->IdentifyResidue(res); - if (key=="UNK" && res.GetKey()!="UNK") { + if (key=="UNK" && res.GetKey()!="UNK" && res.GetKey()!="UNL") { unk_res_[res.GetKey()]+=1; } builder_->FillResidueProps(res); diff --git a/modules/io/src/mol/chemdict_parser.cc b/modules/io/src/mol/chemdict_parser.cc index 2668221bafab38c5f682497cbe416906c09756ad..4e52b087713971e27ce475f09db65efab63ff8ba 100644 --- a/modules/io/src/mol/chemdict_parser.cc +++ b/modules/io/src/mol/chemdict_parser.cc @@ -6,6 +6,10 @@ using namespace ost::conop; bool ChemdictParser::OnBeginData(const StringRef& data_name) { + if (data_name==StringRef("UNL",3)) { + compound_=CompoundPtr(); + return false; + } compound_.reset(new Compound(data_name.str())); compound_->SetDialect(dialect_); if (last_!=data_name[0]) { @@ -119,7 +123,7 @@ void ChemdictParser::OnDataItem(const StarDataItem& item) void ChemdictParser::OnEndData() { - if (insert_) { + if (insert_ && compound_) { if (compound_->GetAtomSpecs().empty()) { compound_->AddAtom(atom_); }