bool OEPrepareFastROCSMol(OEChem::OEMCMolBase &mol) bool OEPrepareFastROCSMol(OEChem::OEMCMolBase &mol, const OEShape::OEColorForceField &cff)
Prepares the molecule
mol to improve the performance of loading
the molecule into memory as an OEShapeDatabase
object from an
OEFormat::OEB file. The following
steps are taken to improve the performance of
OEShapeDatabase::Open by as much as 10-fold:
Sets the energy of each conformer to
0.0to avoid writing it to OEB.
Suppresses hydrogens and reorders reference conformers for compression.
Pre-calculates color atoms.
Pre-calculates self-color and self-shape terms for all conformers.
It is recommended to call
the oemolostream before writing out to
OEB. This will store conformers in “PRE-compressed” form
therefore alleviating the need to Gzip the
OEB file and
consequently improving the performance of
In general, calling
OEPRECompress will result in a smaller
file than the default
OEB.GZ output from OMEGA.
OEB file size is of chief concern a further reduction in
file size can be achieved by using an
OEMCMolType::HalfFloatCartesian molecule, which
stores reference coordinates and torsions in half floating
point precision (16-bit). The following code snippet demonstrates
how to cast the resultant molecule from
to use half precision:
OEPrepareFastROCSMol(mol); OEMol halfMol(mol, OEMCMolType::HalfFloatCartesian); OEWriteMolecule(ofs, halfMol);
OEPrepareFastROCSMol(mol) halfMol = OEMol(mol, OEMCMolType_HalfFloatCartesian) OEWriteMolecule(ofs, halfMol)
16-bit floating point will give a file size saving of approximately 12% with a tradeoff of about 7% more performance when loading the OEB from disk into memory.