Version 2.2.0¶
OEChem TK 2.2.0¶
New features¶
Atom and bond expressions of query molecules have been optimized for substructure search. The graphs below show the performance improvement since the 2018.Oct release. Optimization has been turned on for both MDL queries and SMARTS patterns and can be controlled by the following options:
OESmartsParseOpts_Optimize
when using theOEParseSmarts
functionOEMDLQueryOpts_Optimize
when using theOEReadMDLQueryFile
function
¶ ¶ A new
OEFormat_OEZ
compressed binary format has been added with the.oez
extension. This file format only supports multi-conformer molecules derived from the OEMCMolBase class. Each molecule is individually compressed in the file using the Zstandard compression algorithm. See the Compressed Input and Output section for more details.Note
This new file format is not backwards compatible. OpenEye applications and toolkits released before April 2019 will not be able to read or write this file format.
An OEBitVector object now can be attached as generic data to any OEBase object. Its derived classes now round-trip through the OEB format.
Multi-conformer molecule overloads have been added to the following existing APIs:
New input flavors,
OEIFlavor_MDL_SuppressEmptyMolSkip
,OEIFlavor_SDF_SuppressEmptyMolSkip
, andOEIFlavor_RDF_SuppressEmptyMolSkip
, have been added to the MDL formats to allow returning empty molecule records. This allows the SD data to be recovered from these records.New output flavors,
OEOFlavor_MDL_SuppressTimestamps
andOEOFlavor_SDF_SuppressTimestamps
, have been added to the MDL formats to explicitly suppress timestamps in the file header. This is convenient for generating diffable test files.A new
OEResidueToString
function has been added to convert an OEResidue object into string representation.The following new classes have been added to provide alternative ways to access tagged property data in molecules:
New predicates, OEIsValidAtomValence and OEIsValidMDLAtomValence, have been added to provide the ability to loop over atoms that satisfy the OpenEye and MDL valence model requirements, respectively.
The
OEMolBase.NewGroup
method now also takes an OEAtomBondSet object.New
OECheckAtomValence
andOECheckAtomValences
functions have been added that check if an atom or all atoms of a molecule have valid valences.A new
OELibraryGen.NumPossibleProducts
method has been added that returns the number of possible products that can be generated.New
OEClearSDData
andOEClearPDBData
function overloads have been added to clear SD or PDB data of multi-conformer molecules.A new
OEShortestPath
overload function has been added that disallows traversing excluded bonds in the path.A new
OEAtomBondSet.GetParent
method has been added.A new
OEGetResidueIndexFromCode
function has been added.The
OEPDBOrderAtoms
function has been updated to take an argument that preserves the PDB residue order. It defaults tofalse
to preserve backwards compatibility.
Major bug fixes¶
The number of cases where round-tripping to MDL file format results in stereo information loss has been significantly reduced.
Minor bug fixes¶
High-level SMILES readers such as
OESmilesToMol
andOEReadMolecule
now clear cis/trans bond specifications on bonds in small rings (less than 7 members).The
oemolistream.open
andoemolostream.open
methods now correctly set the formats forgz
filenames.A bug that caused a crash when an invalid oemolostream is finalized has been fixed.
oemolistream.Setgz
andoemolostream.Setgz
methods are now a no-op if the state of the stream is unchanged.An issue that caused the JSON writer to crash with user-specified cis/trans stereo has been fixed.
The MDL V3000 reader has been fixed and no longer marks “either” double bonds with cis/trans parity.
The MDL V2000 reader has been fixed and no longer adds “either” double marks to chiral but unspecified cis/trans double bonds.
OESubsetMol
no longer crashes when breaking and adding multiple R-groups to the same atoms.Cobalt ions are now assigned a formal charge when being read from the PDB file.
Python-specific changes¶
The
__str__
method of the OEResidue class now invokes the newOEResidueToString
function.The
OEMolDatabase.GetMoleculeString
method has been fixed and now returnsbytes
.
Documentation changes¶
New code snippets have been added to the
Substructure Search
section to show how to reconstruct matches for the original molecule.A new Split molecule file example has been added.
New code snippets have been added to the
OEChemIsLicensed
function.
OEBio TK 2.2.0¶
New features¶
A new
OEIsCTerminalAtom
predicate has been added to identify the C-terminal atom(s) in a protein structure.A new
OEIsNTerminalAtom
predicate has been added to identify the N-terminal atom(s) in a protein structure.A new OEAtomMatchResidue predicate has been added to identify residue atoms by RegEx.
New
OEGetResidueAtom
functions have been added to provide easy access for specific residue atoms.The
OEIsBackboneAtom
predicate has been updated to take an optional argument to consider the terminal oxygen atom (OXT) as part of the backbone.The
OEIsWater
predicate has been updated to take two optional arguments:to match hydrogen atoms in water molecules
to match the water ions \(OH^{-}\) and \(H_{3}O^{+}\)
A new
OEIsStandardProteinResidue
overload that takes an atom has been added.
New features (Preliminary)¶
The following preliminary APIs have been added to handle design units:
The above classes and functions are currently used by Spruce TK for protein handling.
Minor bug fixes¶
The
OEPlaceHydrogens
function has been improved:The
OEPlaceHydrogensMoverClass_NH2
mover perception has been updated.The
OEPlaceHydrogensMoverClass_COOH
mover perception has been updated to only mark the atoms involved in the mover.
Java-specific changes¶
The Java example in the Splitting a Macro-molecular Complex Efficiently and Flexibly section has been fixed.
Documentation changes¶
A new Interaction Perception chapter has been added.
Code snippets have been added to the
OESetCrystalSymmetry
andOEGetCrystalSymmetry
functions.
OESystem TK 2.2.0¶
Minor bug fixes¶
The
OEMakeMolecularGaussianGrid
function now returnsfalse
for an empty molecule.New code snippets have been added to the
OEThrow
class to demonstrate how to redirect warning and error messages to a file.
OEPlatform TK 2.2.0¶
New features¶
The following APIs have been rewritten using standard C++11 classes:
OEMutex now uses std::mutex.
OETryMutex now uses std::try_lock.
OELock and OELockSpinlock now use std::lock_guard.
Minor bug fixes¶
The
OEAddLicenseFromHttp
function available in the wrapped languages (Python, Java, and C#) now accepts HTTP responses with atext/plain; charset=utf-8
content type.
OEGrid TK 1.6.3¶
Minor bug fixes¶
The
OEReadMTZ
function has been updated to read CCP4 alternative space group numbers (e.g., 4005).OEReadGrid
no longer loses its title beyond the first blank space.A potential memory corruption issue with Gaussian volume calculation has been fixed.