Major bug fixes¶
- Fix cis/trans bond stereochemistry perception when reading MDL MOL and SD files via OEReadMDLFile. We were overly aggressive when marking double bonds in rings as cis vs. trans due to a missing call to OEFindRingAtomsAndBonds. We also no longer attempt to attribute E/Z stereochemistry to connection tables without coordinates, or when any of the relevant bond lengths are zero.
Minor bug fixes¶
- Accidentally OEChem*`s zmatrix handling functions were documented in the *OEChem documentation but were missing from the distributed list of header files. This oversight has been corrected and the classes OEChem::OECartesianToInternal and OEChem::OEInternalToCartesian and the functions OECalcCartesianCoord and OECalcInternalCoord are now publicly available.
- Handle (and optimize) the case where OECanonicalOrderAtoms or OECanonicalOrderBonds is called with less then two atoms.
- Fixes OEGetSmallestSubtree to correctly return the smallest set of atoms on either side of a given bond when the molecule contains disconnected components.
- Performance improvements to OEGraphMolParameter, to avoid using OEIsomericConfTest when loading single conformer molecules.
- Bug fix to DeleteConf that could occasionally result in that multi-conformer molecule’s active conformer being corrupted.
- Tweak to OEMDLPerceiveBondStereo to preferentially place the wedge or hash bond on the bond to an explicit hydrogen, for chiral stereo centers of degree three.
- Enhancements to OEMDLPerceiveParity to support chiral atoms with two heavy atom neighbors and an explicit hydrogen. These aren’t supported by MDL software (including ISIS/Draw) but this allows OEChem to convert X[N@H]Y to an MDL mol file and back to isomeric SMILES without loss of information.
- Improvements to OEMDLStereoFromParity to set OEChem‘s atomic chirality for the MDL stereo parity flag for both degree three and degree four atom stereo centers.
- Correct problem in OEChem::OEMiniAtom::Copy where duplicating an atom would preserve the explicit degree of the original, as returned by OEAtomBase.GetExplicitDegree.
- Fixes to both OEChem::OEMiniBond::SetOrder and OEChem::OEMiniBond::SetIntType that would incorrectly reset the aromaticity and in-ring flags of a bond as a side-effect.
- Miscellaneous fixes and improvements to OEChem::OEMiniMol::Copy.
- Fix to oemolostream.openstring to allow an oemolostream to be reused multiple times, rather than constructed and destructed for each use.
- OEPerceiveSymmetry would previously segmentation fault on some platforms if passed a molecule with no atoms. This routine has now been idiot-proofed.
- Maintenance updates to OEReadPDBFile to handle PDB files deposited at RCSB, up to July 2004. For example, correctly handling the hetero atoms of the NZQ residue of pdb1oj7.ent.
- A serious performance regression in OERMSD has been addressed. A change to OERMSD for OEChem 1.3 unexpectedly resulted in a significant drop in superposition speed. This has now been resolved and OERMSD is as fast as (or faster than) it was in OEChem 1.2.
- The string reference argument to OESetComment is now correctly marked as const. This value is never modified by this function.
- The sanity checking in OESetTorsion has been improved such that we now return false for dubious calls to that function. For example, when the first and four atom pointers refer to the same atom. Previously, we’d do nothing, but not indicate a failure with the return value.
- Improvements to match limit test in OESubSearch that prevent excessive run-times for pathological substructure search patterns. Previously, substructure searching of *.*.*.* wouldn’t honor the match limit setting, and spew multiple match limit reached warnings.
- Enhancement to OEWritePDBFile to allow it to honor the OEOFlavor.PDB.RADIUS flag to write an atom’s radius in the PDB occupancy field, even when writing a molecule without residue information.
- Better handling of out of range coordinates in OEWriteMDLFile, OEWritePDBFile and OEWriteMacroModelFile. Previously, a Cartesian coordinate larger than these file format’s fixed width fields would corrupt the following fields on the same line.
Minor bug fixes¶
- A fix to the function OECheckHelp that prevents displaying on-line help for HIDDEN command line interface options.
- Fixed a bug in OEInterface.GetInterface that would fail to find the correct interface by name.
- Correct the return value for OEInterface.DeleteInterface. We now return false if we failed to delete the given interface.
- Fixed an off-by-one error with the OEPredVectorPtrIter::ToLast method on some kinds of iterators (specifically, OESystem::OEPredVectorPtrIter s).