std::vector<double> calcPEOE_VSA(const ROMol &mol, std::vector<double> *bins, bool force) { std::vector<double> lbins; if (!bins) { double blist[13] = {-.3, -.25, -.20, -.15, -.10, -.05, 0, .05, .10, .15, .20, .25, .30}; lbins.resize(13); std::copy(blist, blist + 13, lbins.begin()); } else { lbins.resize(bins->size()); std::copy(bins->begin(), bins->end(), lbins.begin()); } std::vector<double> res(lbins.size() + 1, 0); std::vector<double> vsaContribs(mol.getNumAtoms()); double tmp; getLabuteAtomContribs(mol, vsaContribs, tmp, true, force); std::vector<double> chgs(mol.getNumAtoms(), 0.0); computeGasteigerCharges(mol, chgs); assignContribsToBins(vsaContribs, chgs, lbins, res); return res; }
void computeGasteigerCharges(const ROMol &mol,int nIter, bool throwOnParamFailure) { std::vector<double> chgs(mol.getNumAtoms()); computeGasteigerCharges(mol,chgs,nIter,throwOnParamFailure); }