- A new functor class, OESimilarByRMSD, has been added that checks similarity between a pair of conformers based on RMSD.
Major bug fixes¶
- On Windows, a defect that caused a crash in OEReadMolecule for OEB format or OEReadOEBFile when processing large amounts of OEFormat::SDF or OEFormat::PDB data has been fixed.
- A crash that occurred when explicitly calling oemolostream::Setgz after opening a file that was implicitly gzipped has been fixed.
- Water hydrogens created by OEAddExplicitHydrogens had previously been assigned the incorrect names "H 2" and "H 3". This has been corrected to give these hydrogens the expected names "H1" and "H2". The PDB atom indices OEChem::OEPDBAtomName::H1 and OEChem::OEPDBAtomName::H2 can be used to refer to them. The constant OEChem::OEPDBAtomName::H has been deprecated.
Minor bug fixes¶
- The algorithm used by the OEPerceiveBondOrders function for detecting sp2 hybridized planar ring systems has been improved.
- For certain complex ring systems, the function OECreateSmiString previously attempted to write a SMILES with more than 99 ring closures and output an invalid SMILES. It now throws a warning and returns an empty string.
- If the function OECreateSmiString cannot generate a valid SMILES for a molecule, a molecule title will no longer be output.
- When extracting ring templates for depiction, the OE2DRingDictionary class’s normalization process no longer rejects long or short bonds. This allows the creation of non-regular ring templates.
- The OECenter overload for OEMCMolBase now optionally accepts an array which, when present, returns the translations applied for each conformer during the centering operation. The additional overload does not affect any existing usage.
- The OESymmetryNumber overload that works with OEMCMolBase had previously not properly calculated the symmetry numbers for all conformers. This has been fixed.
- The Java verify script has been updated to correctly identify a Szybki TK license.
- The Java verify script has been updated to return an error status if there was a problem when generating a subset jar.
- The Python-based C# verify script has been modified to run correctly with either Python 2 or Python 3.
- A new scoring system, MMFF-NIE (“MMFF Neighbor Interaction Energies”), has been added to improve optimizing hydrogen bonding networks and avoiding clashes in the function OEPlaceHydrogens. This physics-based scoring system includes Coulombic and Van der Waals terms from MMFF94, including MMFF partial charges. Interactions are scored between moveable functional groups (see OEPlaceHydrogensMoverClass) as well as between moveable functional groups and non-moving neighboring background atoms. The optimizer has also been improved to be much more memory-efficient.
- OEPlaceHydrogens now samples waters more densely by default. A new constant, OEPlaceHydrogensWaterProcessing::Focused, can be used to revert to the more limited sampling. Waters are processed individually, in order, starting at the molecular surface and moving outward, after all other moveable functional groups have been optimized.
- OEPlaceHydrogens now detects bad clashes more accurately.
- OEPlaceHydrogens now deprotonates certain acidic groups (e.g., SH) in the presence of a metal. In addition, imidazoles can now be doubly deprotonated when between two metals. A new constant, OEPlaceHydrogensMoverClass::AroN, has been added to describe aromatic nitrogens that can be deprotonated by metals.
- OEPlaceHydrogens now recognizes neutral carboxylic acids. Hydrogen positions are sampled on both oxygens.
- OEPlaceHydrogens now includes alternate location codes in atom descriptions.
- Two new methods, OEPlaceHydrogensOptions::SetMaxSubstateCutoff and OEPlaceHydrogensOptions::GetMaxSubstateCutoff, have been added to control how many substates the optimizer will consider in a single step. This prevents calculations from running long because of overly dense networks.
- Class OEPlaceHydrogensOptions objects can now be compared for equivalence and non-equivalence.
Minor bug fixes¶
- Previously, OEPlaceHydrogens was limited to processing 1,024 moveable functional groups. This limitation has been removed.
- OEPlaceHydrogens has been improved for adding explicit hydrogens to molecules with multiple alternate locations when OEPlaceHydrogensOptions::SetAltsMustBeCompatible is set to true, issuing a warning when it fails rather than halting.
- A description of the OEPlaceHydrogens scoring system MMFF-NIE in the documentation for OEPlaceHydrogensDetails::Describe has been added and includes a link from the Protein Preparation example.
- The Preparing a Protein example has been modified to cover the expanded range of options in water processing as well as the maximum number of optimization substates. It also now repairs bonding mistakes when the command line option -alt compare is used to retain all alternates by calling the method OEAltLocationFactory::GetSourceMol. This is a recommended approach for other workflows that read OEFormat::PDB files and retain all alternate location atoms.
- The SWIG Java wrapper no longer creates finalizers for OpenEye objects that do not own memory: OEBase, OEAtomBase, OEBondBase, OEConfBase, and OEGroupBase. Previously, the SWIG wrapper created empty finalizers, which resulted in garbage collection bottlenecks for processes that used a lot of objects (e.g., looping over atoms and bonds in a protein). This fix improves overall throughput for Java toolkit programs.
Minor bug fixes¶
- Documentation for the public 2D and 3D geometry functions has been improved.