Subsections
34.4 OEChem 1.5.0
OEChem 1.5.0 is a new release including many major and minor bug fixes
along with several new features. This is also a continuation of a
complete release of all OpenEye toolkits as a consolidated set so that
there are no chances of incompatibilities between libraries.
Note, that in this release the directory structure has been changed to
allow multiple versions of the toolkits to be installed in the same
directory tree without conflicts. From this release on, all C++
releases will be under the openeye/toolkits main directory. There is
then a directory specific to the version of the release and then below
that, directories for each architecture/compiler combination. To
simplify end user Makefiles, ``openeye/toolkits/lib'',
``openeye/toolkits/include'', and ``openeye/toolkits/examples'' are
all symlinks to the specific last version and architecture that was
installed.
New users should look in ``openeye/toolkits/examples'' for all the
examples. Existing users updating existing Makefiles should change
their include directory from "openeye/include" to
``openeye/toolkits/include''. As well, existing Makefiles should
change the library directory from ``openeye/lib'' to
``openeye/toolkits/lib''.
- OEChem now has a 2D similarity implementation using the Lingos
method of similarity. Lingos compares Isomeric SMILES strings
instead of pre-computed fingerprints. This combination leads to very
rapid 2D similarity calculation without any upfront cost to
calculate fingerprints and without any storage requirements to store
fingerprints.
- MMFF94 charges are now avialable in OEChem. While we recommend
AM1-BCC charges as the best available charge model, having MMFF94
charges available at the OEChem level means that decent charges are
available to all toolkit users.
- In OEChem 1.2, there was an alternate implementation of MCS that
used a fast, approximate method for determining the MCS. While it is
less than exhaustive, the speed does have some appealing uses. In
OEChem 1.5, we've restored this older algorithm and now both are
available.
namespace OEMCSType
{
static const unsigned int Exhaustive = 0;
static const unsigned int Approximate = 1;
static const unsigned int Default = Exhaustive;
}
OEMCSType_Exhaustive implies the current, exhaustive algorithm from
OEChem 1.3 and later, while OEMCSType_Approximate implements the
older, fast but approximate algorithm.
- The ability to get the license expiration date when calling
OEChemIsLicensed has been added.
- Molecules (OEMol, OEGraphMol) can now be attached to an existing
OEBase as generic data and they will be written to OEB and read back
in. Additional support for attaching grids and surfaces to
molecules has been added to Grid and Spicoli.
- There is a new retain Isotope flag to OESuppressHydrogens. If
false, [2H] and [3H] will also be removed by this call. By default,
this is true so that the current behavior of OESuppressHydrogens is
identical to the previous version.
- The OEChem CDX file reader can now Kekulize aromatic (single)
bonds in the input ChemDraw file. It switches the internal bond
order processing to use the bond's integer type field, and then
calls "OEKekulize" to do all of the heavy lifting.
- Tweaks to the algorithm used for determining which bond(s)
around a stereocenter should bear a wedge or a hash. The bug fixed
here includes an example where all three neighbors are
stereocenters, but two are in a ring and one isn't.
- There are new versions of OEIsReadable and OEIsWriteable that
take a filename directly.
- More exceptional atom naming support for the PDB residues CO6
(pdb2ii5), SFC (pdb2gce), RFC (pdb2gce), MRR (pdb2gci), MRS
(pdb2gd0), FSM (pdb2cgy) and YE1 (pdb2np9) has been added.
- The Bondi VdW radii tables have been completely updated and
fixed. Additionally, any element not covered by the original Bondi
paper is assigned a radius of 2.0 Angstroms.
- Corrected a serious glitch in the OEChem SMILES parser, where
"[X-2]" would be incorrectly interpreted as "[X+2]". This bug was
an unintentional side-effect of the recent changes to warn about
"[X+0]" and "[X-0]" when the parser is in strict mode.
- Fixed a bug in Kekulization of very large molecules. Almost all
small molecules continue to use the faster light-weight method, but
we avoid exponential behavior for the large non-Kekulizable cases.
- Fixed a bug dealing with the semantics of wedge/hash bonds when
the thin end is on a terminal atom. Clearly, in such cases the
author probably intended to specify some aspect of the chirality of
the atom at the other end of the bond. First, when drawing such
structures into MDL's ISIS/Draw, it does not percieve specified
chirality at the thick end of a wedge/hash bond from a hydrogen.
However, this patch adds support for conveniently handling this case
via OEMDLHasIncorrectBondStereo and OEMDLCorrectBondStereo, which
notices this case, and either inverts the sense of the bond if the
other end has explicit degree three or four, or removes the ignored
"wedge/hash" bond annotation.
- Bug-fix improvement to CorrectMDLBondStereo such that whenever
we introduce a new wedge/hash bond (on a previously unmarked bond),
we now ensure that the we correctly set the thin end on the
appropriate chiral atom.
- Fixed a bug in OEB reading/writing that makes sure that any
unknown tags are simply passed from input to output without loss.
- Fixed a bug in reactions where the final valence was being
computed incorrectly, such that the bond orders aren't modified directly
until after valence correction is applied.
- Tweaked the way the SMILES parser calculates implicit hydrogen
counts on unbracketed aromatic atoms in SMILES strings. This fixes
"Scc" and "S1cccc1".
- OEParseCommandLine now lists the legal and illegal values for a
parameter if the user specifies an invalid value for the parameter.
- Fixed a bug where a warning was issued when writing >999 atoms
to a V3000 MOL file. V3000 MOL files can contain >999 atoms, unlike
V2000 files.
- Fixed a bug where round-off differences between Windows and
Linux could result in stereo perception differences for 2D
coordinates with angles very nearly equal to 180 degrees.
- Corrected the atomic number perception in the PDB file reader
for the residues "G5P", "COK" and "COZ" (from the recently added PDB
files pdb2f35, pdb2ges and pdb2g2z).
- Added residue perception support for the non-standard amino
acids "LYZ" and "MEN", which denote 5-hydroxylysine and
N-methylasparagine.
- Fixed a bug where OEGetHybridization() failed to classify the
sulfur in C=S as sp2 hybridized.
- Completed the coverage of the MDL valence model to all atoms to
handle charges less than or equal -2, or greater than or equal to
+2. Many of the common cases of these strange charge states were
already handled.
- The generic data reader now calls AddData instead of SetData.
This means that mutiple objects with the same tag can be handled
appropriately.
- Added checks to prevent division-by-zero in several geometry
routines in OEMath.
- OESetComment now safer to either a NULL pointer for the comment
or a NULL pointer for the OEAtomBase.
- Fixed copy constructor and assignment operator for OECoordArray.