Release Notes

Release Highlights 2019.Oct

Spruce TK: A new toolkit for biomolecular structure preparation

The 2019.Oct release introduces Spruce TK. Spruce TK takes experimental biomolecular structure data in either PDB or mmCIF formats, and prepares the structures for use with downstream modeling applications, such as docking with FRED or HYBRID, pose prediction with POSIT, identifying favorable and unfavorable waters with SZMAP or free energy calculations using molecular dynamics simulations.

With Spruce TK, users can easily prepare proteins using either C++ or Python APIs (see OEMakeDesignUnits), where the output of the file is the recently developed OEDesignUnit class and is serialized to a new OEDU file format. The prepared system is componentized into molecular categories including protein, ligand, nucleic, solvent, and many other molecular types common to biomolecular experiments. By default, hydrogens are added to systems using a tautomer search for any ligand, cofactor, or other non-standard residue molecules. In addition, the system is split into distinct biological units, and all final design unit structures are superposed into the common frame of reference of a parent structure. For more details, see Spruce theory.

Spruce TK has been tested across a broad range of industry-relevant targets. It has been used in virtual screening and molecular dynamics simulations in Orion, as well as to prepare structures for loading into the MacroMolecular Data Service (MMDS).

OEFF TK: SMIRNOFF

The 2019.Oct release incorporates the SMIRNOFF small molecule force field from the Open Force Field Initiative into OEFF TK. The force field can handle almost all pharmaceutically relevant chemical space.

The SMIRNOFF force field differs from traditional force fields principally in the data representation of the chemistry. It uses extended SMARTS strings for parameters instead of atom types, greatly reducing the number of interdependent parameters. It currently adopts the functional form of the AMBER force field, but the Open Force Field Initiative is actively examining improvements to this. OEFF TK intends to include the most up-to-date version of the force field in its own releases whenever possible.

General Notices

  • This is the last release to support macOS 10.12. Full support for macOS 10.15 will be added in the next release.
  • This is the last release to support RHEL6. Full support for RHEL8 will be added in the next release.
  • The 2019.Oct release skips Java support for macOS. For Java support on RHEL6, please contact support@eyesopen.com.
  • A new search engine that provides better hits and shows results in a much cleaner format has been added to the documents.
  • The 2019.Oct release now uses SWIG 3.0.12 for generating C#, Java, and Python wrappers. C# and Python use SWIG’s built-in support for wrapping C++ std::vector and string types.

Detailed Release Notes

OEChem TK 2.3.0

New features (Preliminary)

New features

  • Two new classes, OEConfRMSDOptions and OEConfRMSD, have been added that set up OEConfRMSD calculations and provide fast RMSD calculation of conformers of the same molecule, respectively.
  • A new function, OEFastaToMol, has been added that converts a FASTA sequence into a molecule.
  • A new optional sorting argument has been added to the OEGetNearestNbrs function that allows returned atom pairs to be sorted based on distance.
  • OEIsAlphaCarbon has been deprecated. The OEIsCAlpha predicate should be used instead.
  • New OEUncolorMol overload functions have been added to OEMCMolBase. A new constant, OEUncolorStrategy::RemoveDimension, has been added that invalidates 3D coordinates and sets the dimension to 0 when uncoloring molecules.
  • Support has been added to OEReadMolecule that enables reading both CIF and mmCIF files.
  • Updates have been made to the OEFormat namespace to include new CIF and mmCIF formats. Corresponding updates have also been added to OEIFlavor and OEOFlavor.
  • Updates have been made to the OEResidueIndex namespace to include residue IDs for metals observed in PDB files.
  • The formal charge assignment for less common metals observed in PDB files has been expanded.
  • Updates have been made to the OEExprType namespace to allow for more fuzzy searches. For example, OEExprType::ElemMinHCount or OEExprType::ElemMinDegree can now be used to specify an atom’s minimum hydrogen count or minimum degree.
  • Changes have been made to the OEResidue class to support the mmCIF format. These changes include the following three new string member variables, with the appropriate getter and setter functions:
    • SequenceID captures the mmCIF field, label_seq_id, which is the sequential number of residues from 1.
    • ExtChainID captures the fact that the previous chainID in the auth_asym_id field can now have multiple characters. The OEResidue::GetChainID function now returns the first character of the ExtChainID variable, and OEResidue::SetChainID now overwrites and sets the ExtChainID.
    • SubChainID captures the label_asym_id field, which commonly seems to be a further subdividing of the auth_asym_id field.

Minor bug fixes

  • A bug that caused OEWriteMolReturnCode::Success to be returned even though an invalid output stream was used has been fixed.
  • A bug that caused broken perception after implicit hydrogen assignment in the OEAssignImplicitHydrogens and OEAssignMDLHydrogens functions has been fixed.
  • Handling of partially resonant nitrogen stereo perception in OE3DToAtomStereo and OE3DToInternalStereo has been improved.
  • An issue that caused OEIsCTerminalAtom to misperceive a minor number of C-terminal atoms has been fixed.
  • Unpaired interactions are no longer triggered on ligands due to nearby water molecules. Similarly, water molecules can no longer present as having unpaired interactions.

Python-specific changes

Java-specific changes

Documentation changes

OEBio TK 2.3.0

New features

Minor bug fixes

  • Perception of hydrogen bonds involving sulfur and anions in OEPerceiveInteractionHints has been improved.
  • The precedence of OEInteractionHint perception has been improved. Chelation interactions now take precedence over charge-charge interactions.
  • A check has been added to the OEPlaceHydrogens function that causes it to exit early if two heavy atoms are within 0.5A of each other, since this is considered to be bad input and causes unspecified behavior.

OESystem TK 2.3.0

New features

  • The performance of OEGetDataType, especially on Windows, has been improved. OEGetDataType is now at least 500X faster when used with a single thread and about 2X faster with many simultaneous threads on Windows.
  • A new method, OEBitVector::CountRangeBits, has been added that identifies the number of bits that are set to 1 in the given bit range.
  • A new class, OEConsoleProgressTracer, has been added that tracks the current progress of a task.
  • A new function, OEStringEquals, has been added that determines whether two strings are equivalent using a case-insensitive comparison.
  • A new function, OEGeom3DReflectCoord, has been added that reflects coordinates around a plane for a hydrogen atom.
  • A new function, OEBitIsPowerOf2, has been added that determines if a bitmask is a power of 2.

OEPlatform TK 2.3.0

New features

  • A new OEToolkitsGetRelease function has been added that displays the release name of the overall toolkit version being used.

OEGrid TK 1.6.4

  • Minor internal improvements have been made.

OEDepict TK 2.4.3

Minor bug fixes

Python-specific changes

OEDocking TK 1.4.1

New features

Major bug fixes

  • A rare crash that occurred during docking calculations in DockMultiConformerMolecule has been fixed.
  • OEPosit no longer fails to generate poses due to unspecified stereo in the input molecule.

Minor bug fixes

Documentation changes

  • Two new examples have been added in the sections, Using Multiple Receptors and Receptor Flexibility, that demonstrate new POSIT features for working with multiple receptors and for further refining generated poses, respectively.
  • Docking examples have been updated for better coding practices that check the return code status of docking and print out any errors.

FastROCS TK 1.10.1

New features

  • A new function, OEFastROCSGPUStatus, has been added that interrogates the status of the GPU and returns a code from the OEFastROCSReturnCode namespace. The return codes now allow for more specific error reporting of the GPU system.

Major bug fixes

Minor bug fixes

  • OEShapeDatabaseOptions::SetNumInertialStarts is no longer order-dependent when using alternative starts.
  • When running with Tversky similarity scoring, only a single warning about Tversky scores being greater than 1.0 will ever be thrown unless the debug error level is being used.

Grapheme TM TK 1.4.0

New features

Example of visualizing non-ideal hydrogen bonds (PDB: 1LEE)

  • A new overload of OEPrepareAlignedDepictionFrom3D has been added that generates 2D coordinates of a molecule driven by the 3D overlay of the shape query display object.

GraphSim TK 2.4.3

New features

Minor bug fixes

  • OEIsValidFPTypeString no longer throws an error and always return false if the given string cannot be interpreted.

Lexichem TK 2.7.0

  • Minor internal improvements have been made.

OEMedChem TK 1.1.1

New features

Documentation changes

MolProp TK 2.5.3

New features

Minor bug fixes

  • The XLogP calculation by the OEGetXLogPResult function for molecules with explicit hydrogens has been fixed.

Documentation changes

OEFF TK 2.1.0

New features

Major bug fixes

Documentation changes

Omega TK 2.9.1

New features

Major bug fixes

  • OEMacrocycleOmega::Build now generates conformer ensembles that are centered and aligned to each other, and with better deduplication.
  • An issue that occasionally caused knotted conformations of some complex molecules generated with OEOmega::Build has been fixed.

Minor bug fixes

Quacpac TK 2.0.2

New features (Preliminary)

New features

Shape TK 2.0.4

New features

Minor bug fixes

Spicoli TK 1.4.7

  • Minor internal improvements have been made.

Spruce TK 1.0.0

New features

  • The OEExtractBioUnits function has become a stable API. The final implementation includes an options class, OEBioUnitExtractionOptions, to control its behavior.

  • A new function, OEMakeDesignUnits, has been added that generates OEDesignUnit from structures read from PDB or mmCIF files. The function takes a number of options to control its behavior; therefore, the following options classes have been defined:

    The OEMakeDesignUnits function also takes the OEStructureMetadata class as input. The OEStructureMetadata class holds experimental data if known and can be used to indicate which is the ligand, what the sequence of the protein is, and other relevant pieces of information.

  • The function OEMakeDesignUnits is a high-level function that works on the two intermediate functions, OEMakeBioDesignUnits and OEEnumerateSites, which can be run separately if intermediate results are desired. The high-level OEMakeDesignUnits function has a deduplication step built in; this function is highly recommended.

  • A new function, OEMakeDesignUnit, has been added that creates an OEDesignUnit.

  • A new function, OEProtonateDesignUnit, has been added that ensures that protons in an OEDesignUnit are optimized. The high-level function OEMakeDesignUnits calls this by default unless it is turned off in options.

  • The OEBuildSidechains function has been updated to allow building all possible clusters even if one fails due to clashes. The function still returns false in this case.

Major bug fixes

  • An issue in the OEExtractBioUnits function that caused a segfault due to an improper PDB header format has been fixed.
  • An issue in the alternate location expansion that left atoms on top of each other due to unconventional location definitions has been fixed.

Minor bug fixes

  • An issue with OECapTermini preventing caps from being built in some very specific instances has been fixed.
  • OEBuildSidechains no longer builds sidechains on packing residues.

Documentation changes

Szmap TK 1.4.6

  • Minor internal improvements have been made.

Szybki TK 2.1.0

New features

Minor bug fixes

Documentation changes

Zap TK 2.3.6

Python-specific changes

  • The runtime error that occurred when using OEMakeETGrid in Python has been fixed.