예제 #1
0
파일: MolSurf.cpp 프로젝트: ASKCOS/rdkit
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;
}
예제 #2
0
 void computeGasteigerCharges(const ROMol &mol,int nIter, bool throwOnParamFailure) {
   std::vector<double> chgs(mol.getNumAtoms());
   computeGasteigerCharges(mol,chgs,nIter,throwOnParamFailure);
 }
예제 #3
0
 void computeGasteigerCharges(const ROMol *mol,int nIter, bool throwOnParamFailure) {
   PRECONDITION(mol,"bad molecule");
   computeGasteigerCharges(*mol,nIter,throwOnParamFailure);
 }
예제 #4
0
void ComputeGasteigerCharges(const ROMol *mol, int nIter = 12,
                             bool throwOnParamFailure = false) {
  computeGasteigerCharges(mol, nIter, throwOnParamFailure);
}