This commit is contained in:
Greg Landrum
2015-08-04 18:08:30 +02:00
3 changed files with 11 additions and 8 deletions

View File

@@ -419,7 +419,6 @@ namespace RDKit{
unsigned int nAts=mol.getNumAtoms();
double *dMat = new double[nAts*nAts];
sptr.reset(dMat);
for(unsigned int i=0;i<nAts;++i){
if(useAtomWts){
@@ -434,7 +433,10 @@ namespace RDKit{
}
}
if(propName!="") mol.setProp(propName,sptr,true);
if(propName!=""){
sptr.reset(dMat);
mol.setProp(propName,sptr,true);
}
return dMat;
}
} // end of namespace MolOps

View File

@@ -133,7 +133,7 @@ namespace RDKit {
};
MolHistogram::MolHistogram(const ROMol &mol, const double *dmat) :
MolHistogram::MolHistogram(const ROMol &mol, const double *dmat, bool cleanupDmat) :
d_h(boost::extents[mol.getNumHeavyAtoms()][O3_MAX_H_BINS]) {
PRECONDITION(dmat,"empty distance matrix");
unsigned int nAtoms = mol.getNumAtoms();
@@ -155,6 +155,7 @@ namespace RDKit {
}
++y;
}
if(cleanupDmat) delete [] dmat;
}
@@ -835,9 +836,9 @@ namespace RDKit {
}
else {
refHist = (extRefHist ? extRefHist
: new MolHistogram(refMol, MolOps::get3DDistanceMat(refMol, refCid, false, false, "")));
: new MolHistogram(refMol, MolOps::get3DDistanceMat(refMol, refCid, false, false, ""),true));
prbHist = (extPrbHist ? extPrbHist
: new MolHistogram(prbMol, MolOps::get3DDistanceMat(prbMol, prbCid, false, false, "")));
: new MolHistogram(prbMol, MolOps::get3DDistanceMat(prbMol, prbCid, false, false, ""),true));
lap = (extLAP ? extLAP : new LAP(largestNHeavyAtoms));
lap->computeCostMatrix(prbMol, *prbHist,
refMol, *refHist, o3aConstraintVect, costFunc, data);
@@ -1025,9 +1026,9 @@ namespace RDKit {
LAP *lap = NULL;
if (!local) {
refHist = (extRefHist ? extRefHist
: new MolHistogram(refMol, MolOps::get3DDistanceMat(refMol, refCid, false, false, "")));
: new MolHistogram(refMol, MolOps::get3DDistanceMat(refMol, refCid, false, false, ""),true));
prbHist = (extPrbHist ? extPrbHist
: new MolHistogram(prbMol, MolOps::get3DDistanceMat(prbMol, prbCid, false, false, "")));
: new MolHistogram(prbMol, MolOps::get3DDistanceMat(prbMol, prbCid, false, false, ""),true));
lap = (extLAP ? extLAP : new LAP(largestNHeavyAtoms));
}
for (l = 0, score[0] = 0.0;

View File

@@ -131,7 +131,7 @@ namespace RDKit {
class MolHistogram {
public:
MolHistogram(const ROMol &mol, const double *dmat);
MolHistogram(const ROMol &mol, const double *dmat, bool cleanupDmat=false);
~MolHistogram() {};
inline int get(const unsigned int y, const unsigned int x) const {
PRECONDITION(y < d_h.shape()[0], "Invalid index on MolHistogram");