double OERMSD(const OEMolBase &ref, const OEMolBase &fit, bool automorph = true, bool heavyOnly = true, bool overlay = false, double *rot = 0, double *trans = 0) bool OERMSD(const OEMolBase &ref, const OEMCMolBase &fit, double *rmsds, bool automorph = true, bool heavyOnly = true, bool overlay = false, double *rot = 0, double *trans = 0) bool OERMSD(const OEMCMolBase &ref, const OEMCMolBase &fit, double *rmsds, bool automorph = true, bool heavyOnly = true, bool overlay = false, double *rot = 0, double *trans = 0)
Functions to calculate the root mean squared deviation between two molecules.
This function is overloaded for comparisions of either OEMolBases or
OEMCMolBases as either the reference or fit molecule. For the OEMolBase vs
OEMolBase comparison, the RMSD is the return value. For the other two cases,
the RMSDs are returned in the rmsds
array. The rmsds
array
passed to this function should be of length fit.GetMaxConfIdx()
for the
OEMolBase vs OEMCMolBase overload and
ref.GetMaxConfIdx()*fit.GetMaxConfIdx()
for the OEMCMolBase vs
OEMCMolBase overload. The automorph flag indicates whether automorphisms
should be taken into account during the RMSD calculation. Automorphisms are
the symmetry related transformations of a molecule which can result in
anamolously high RMSDs if not properly treated. For instance, t-butyl-benzene
has a three-fold automorphism around the t-butyl group and a two-fold
automorphism around the benzene ring. The heavyOnly flag indicates whether
only heavy atoms should be considered or hydrogen atoms should be considered as
well. It is strongly recommended that one should consider carefully before
setting the automorph
flag to true and the heavyOnly
flag to
false. The overlay
, rot
, and trans
arguments are
identical to those described in the preceeding section.