diff --git a/modules/conop/src/compound_lib_base.cc b/modules/conop/src/compound_lib_base.cc index 708c630bbc107af4032711ebb9b84204fb2f668a..7fbb5520de05811568739c544faeb4402c976aef 100644 --- a/modules/conop/src/compound_lib_base.cc +++ b/modules/conop/src/compound_lib_base.cc @@ -5,23 +5,20 @@ namespace ost { namespace conop { bool CompoundLibBase::IsResidueComplete(const ost::mol::ResidueHandle& res, bool check_hydrogens, Compound::Dialect dialect) const{ CompoundPtr compound = this->FindCompound(res.GetName(), dialect); - AtomSpecList a_spec = compound->GetAtomSpecs(); for(AtomSpecList::const_iterator it=a_spec.begin(); it!=a_spec.end();++it){ - if(it->element=="H" || it->element=="D"){ - if(check_hydrogens){ - if(!res.FindAtom(it->name).IsValid()){ - return false; - } - } - } - else{ - if(!res.FindAtom(it->name).IsValid()){ - return false; - } - } + + if (it->is_leaving) continue; + + if((it->element=="H" || it->element=="D") && (!check_hydrogens)) continue; + + if(res.FindAtom(it->name).IsValid() || res.FindAtom(it->alt_name)) continue; + + return false; + } + return true; }