void OBAtomTyper::AssignHyb(OBMol &mol) { if (!_init) Init(); aromtyper.AssignAromaticFlags(mol); mol.SetHybridizationPerceived(); obErrorLog.ThrowError(__FUNCTION__, "Ran OpenBabel::AssignHybridization", obAuditMsg); OBAtom *atom; vector<OBAtom*>::iterator k; for (atom = mol.BeginAtom(k);atom;atom = mol.NextAtom(k)) atom->SetHyb(0); vector<vector<int> >::iterator j; vector<pair<OBSmartsPattern*,int> >::iterator i; for (i = _vinthyb.begin();i != _vinthyb.end();++i) if (i->first->Match(mol)) { _mlist = i->first->GetMapList(); for (j = _mlist.begin();j != _mlist.end();++j) mol.GetAtom((*j)[0])->SetHyb(i->second); } }