OESliceEnsemble¶
bool OESliceEnsemble(OEChem::OEMCMolBase &mol, double rms=OESliceEnsembleDefaults::RMS,
double ewindow=OESliceEnsembleDefaults::EWindow,
unsigned maxconfs=OESliceEnsembleDefaults::MaxConfs)
bool OESliceEnsemble(OEChem::OEMCMolBase &mol, const OESliceEnsembleOptions& options)
Reduces the number of conformers in the input mol
using the
OMEGA deduplication algorithm. This allows for
OEOmega to generate a very large ensemble with
much looser deduplication parameters, and then to “slice” that
ensemble of conformations by various different parameters after the
fact.
The default values for the first overlad of the function are picked from the
OESliceEnsembleDefaults
namespace.
Conformer slicing proceeds in the following order:
Slice by energy window. Decreasing this value will result in fewer conformers. For slicing by energy, the algorithm assumes that the energies for each conformer has been pre-calculated and set as the energy property of the conformer using the
OEMolBase::SetEnergy
method. Conformer generation using OEOmega, sets this property by default.Slice by RMS. Increasing this value will result in fewer conformers.
Slice by maximum number of conformers. Decreasing this value will result in fewer conformers.
Note
If the same energy window and RMS values are being chosen as the
defaults being used in the previous OEOmega
calculation, it will be faster to just delete conformers
directly with OEMCMolBase::DeleteConf
. This
function is really intended to be run whenever the RMS has
changed, or the conformer geometry itself has changed. As RMS
deduplication is the expensive O(N^2)
problem that requires
many “tricks” to perform very fast.