Version 1.8.0¶
OEChem 1.8.0¶
New features¶
OERMSD
and its many related overloaded functions have been optimized using recent algorithms from the literature. The algorithm now solves a quaternion-based characteristic polynomial (Theobald-2005). For typical cases, this new algorithm runs 3-5 times faster than the prior algorithm for calculating either an optimum RMSD with or without an overlay transformation.
C++ comparison operators (=, !=, <, <=, >, >=) have been created for OEResidue objects, allowing OEResidues to be compared to each other directly, used for sorting, and as keys in a std::map.
A new PDB input flavor,
OEIFlavor::PDB::SecStruct
has been created, to control perception of protein secondary structure from PDB files. This flavor is on by default when usingOEReadMolecule
. When this flavor is on, secondary structure is automatically perceived usingOEPerceiveSecondaryStructure
. Otherwise, secondary structure information is taken from HELIX and SHEET records in a PDB file.
Major bug fixes¶
OEAssignAromaticFlags
performance is significantly improved for molecules with a large number of rings, such as buckyballs. SinceOEAssignAromaticFlags
is called when reading from every file format OEChem supports this solves problems where OEChem would appear to hang indefinitely trying to read certain molecules.OEAssignAromaticFlags
will now automatically adjust the maximum path considered for aromaticity perception based upon the following heuristics:If a molecule has more than 15 rings, than the maximum path considered for aromaticity is 50.
If a molecule has more than 30 rings and is potentially a buckyball, than the maximum path considered for aromaticity is 30.
In the case of buckyballs and other fused ring systems of 5 and 6 membered rings, this change has no effect other than to significantly improve the speed of the perception.
Isomeric canonical smiles improved in the following ways:
Performance improvement to isomeric canonical smiles generation by not performing the more expensive isomeric canonical smiles generation on disconnected components that do not contain stereo information.
Very complex ring system corner case fixed that would cause isomeric canonical smiles generation to run for longer than was required leading to slightly different isomeric canonical smiles.
Minor bug fixes¶
OEBuildMDLQueryExpressions
fixed to properly evaluate expressions with zero charge as a valid atom property.OEMDLStereoFromBondStereo
no longer throws a spurious platform dependent warning about ‘’’Stereochemistry corrected on atom number # of #’’’ when the 2D atom coordinates around a tetrahedral center were all 90 degrees from each other.OEParseSmiles
no longer crashes when passed aNULL
pointer as a string.oemolistream::GetReadFailureCt
now returns a non-garbage number. The internal counter was not always properly initialized to0
, requiring the user to first calloemolistream::ResetReadFailureCt
to get meaningful results.OEAssignAromaticFlags
now resets all atom aromaticity flags tofalse
if no rings are found in the molecule.oemolistream::seek
andoemolistream::tell
now works as expected forMOL2
files. This was accomplished by makingOEReadMol2File
robust enough to not care whether@<TRIPOS>MOLECULE
was encountered, and continue to read the rest of the molecule regardless of its existence. Additional checks are now done on subsequent lines to ensure the file is indeed in theMOL2
format.OEResidueHydrogens
has been fixed to remove a possible buffer overflow.OEResidueHydrogens
now preserves assigned atom names for UNL residues.OEAltLocationFactory constructors now correctly processes the value of the constructor option
OEAltLocFactOption::TrustInputBonds
rather than always trusting input bonds.
OEBio 1.8.0¶
New features¶
Several new functions have been added for the perception and handling of protein secondary structural elements:
Sheets, helices, and turns are perceived using the method of Kabsch & Sander 1983, and are stored in atoms’ OEResidue records. Secondary structure perception is performed by default when reading PDB files, but can be controlled with a new PDB input flavor,
OEIFlavor::PDB::SecStruct
.
OEGrid 1.4.0¶
OESystem 1.8.0¶
Minor bug fixes¶
OEColorGradientBase::GetColorAt
fixed to correctly round color components after interpolation.OESystem::OEGeom3DGetOverlayRotTrans renamed from
OEGeomGetOverlayRotTrans
and argument order changed to mimic other 3D geometry functions.The following OEColor functions and methods will automatically clamp color values to the range [0,255] and [0.0, 1.0] for integers and floating point numbers respectively:
A warning will be thrown to
OEThrow
if a clamping occurs.Valgrind warning silenced caused by mismatching
new []
anddelete
in OEChem’s small object memory allocator. The properdelete []
is now used though no real issue was observed by this bug in production.OEInterface no longer returns duplicate and confusing error messages by properly respecting the
error_level
argument in all failure conditions instead of usingOEThrow.Error
.operator-=
andoperator+=
now function properly for negative numbers for OEPredIter and OEConcatIter.
OEPlatform 1.8.0¶
New features¶
OEPlatform::OEMallocaPtr::IsValid
added to provide a more straightforward way of testing whether the held pointer isNULL
.
Major bug fixes¶
OEThreadLocal will now properly destroy thread local variables upon thread termination for Visual Studio 2005 and later.
oeostream::operator<<
fixed to not crash when writing out adouble
that needs more than 80 characters to fully represent it.OEPlatform::oeistream::pushline
method removed as it was a hack to implementMOL2
file reading since the molecule delimiter comes at the beginning of the next molecule.oeistream::getline
was the only other oeistream method that was aware of apushline
call. See the release note about the improvements toOEReadMol2File
that justify the removal of this method.
Minor bug fixes¶
OEGetIPAddress
should be more robust for grabbing the IP address, not returning the loopback interface or inactive interfaces.OEDirectoryScan fixed to actually work on Windows.
OEThread no longer has a copy constructor or
operator=
as these were dangerous and undefined.
Documentation changes¶
The following chapters have been updated to new 2D depictions using the OEDepict 2.x library:
Ring Perception chapter
Aromaticity Perception chapter
Connectivity Perception chapter
Stereochemistry Perception chapter
Pattern Matching chapter
Design Decisions chapter
Periodic Table Functions chapter
OE3DToInternalStereo
documentation clarified to specify how it behaves in the absence of 3D coordinates.Substructure Search section fixed to more accurately reflect that subgraph uniqueness does not actually consider differences in matched bonds.