• Docs »
  • Release Notes

Release Notes

Release Highlights 2018.Feb

GraphSim TK: GPU-Accelerated Fast Fingerprint Similarity Searches

GraphSim TK now supports CUDA for even faster fingerprint searching, allowing users to perform molecular similarity calculations up to 200x faster than the in-memory fast fingerprint mode (see the NxN similarity score calculations graph below).

CUDA mode involves preloading all fingerprints into GPU memory prior to performing similarity calculations. Searches are limited by GPU memory availability and will fall back to the memory-mapped CPU mode if the entire set of fingerprints cannot be preloaded into the GPU memory. Despite this limitation, this represents the fastest way to perform similarity searches.

The most effective way to use CUDA fingerprint searches is to perform multiple searches with a pre-loaded database on a dedicated GPU machine. If CUDA mode is selected but a GPU is not present on the system, the search will simply fall back to memory-mapped mode.

The new OEFastFPDatabase.GetHistogram method performs an NxN search of a database and returns a histogram of scores. This is valuable information for understanding the diversity of a database without consuming excess disk space. Using OEFastFPDatabase.GetHistogram in CUDA mode will afford 2.5 billion searches per second (benchmarked on an AWS P3 instance - NVIDIA Tesla V100) compared with 12.5 million searches per second when using memory-mapped mode on the CPU.

Performance of an NxN similarity score calculation Performance of a fingerprint search (load time not included)
../../_images/Performance-ScoreHistogram-CPU-GPU.png
  • 16M 4096-bit long tree fingerprints = 8GB data
  • CPU benchmarked on m4.10xlarge AWS instance (single threaded)
  • GPU benchmarked on p3.8xlarge AWS instance
  • In-memory timings are extrapolated from shorter runs
../../_images/Performance-SimilaritySearch-CPU-GPU.png
  • 128M 4096-bit long tree fingerprints = 64GB data
  • retrieving the 10 most similar molecules
  • CPU benchmarked on m4.10xlarge AWS instance (single threaded)
  • GPU benchmarked on p3.8xlarge AWS instance

See the GraphSim TK Examples chapter of the OEGraphSim TK documentation for more information and examples using the new OEFastFPDatabase class.

Grapheme TK : Unpaired Interaction Map

Grapheme TK now includes the ability to generate unpaired interaction maps (see the example below). An unpaired interaction map provides a complementary view to the more common active site interaction depiction. While the interaction map (on the right) depicts interactions between the ligand and protein, the unpaired map (on the left) illustrates interactions that could contribute to binding but are not formed in the complex. Together, these two maps of the protein-ligand binding site provide insights into protein-ligand interactions and communicate complex 3D structural results in a directly actionable way.

In the unpaired interaction map, different linker types are used to mark unpaired acceptor and donor hydrogen bond interactions (see the figure on the left). Note that since these interactions are unpaired, the direction of the linkers has no real spatial meaning. Ligand linkers are directed away from the ligand, while protein linkers are directed towards the ligand.

The geometric parameters used to perceive unpaired interactions are customizable to fit user needs.

Unpaired interaction map (left) and active site depiction (right) generated after hydrogen placement (PDB: 1BR6)

Conda Packages for Python

The 2018.Feb release is the first release to fully support Conda packages for Python toolkits on all supported platforms. The toolkits are available as a package named openeye-toolkits in the openeye Conda channel on the default conda.anaconda.org server. Versions are available for Python 3.5 and higher on Windows and Python 3.4 and higher on Linux and macOS. On Linux and macOS, users can install the toolkits into a Conda Python environment with conda install -c openeye openeye-toolkits. On Windows, Anaconda Navigator is a convenient way to manage Conda packages.

See Python Installation for more information.

General Notices

  • All OpenEye Toolkit Python code examples now follow the PEP8 standard.
  • The 2018.Feb release fully supports macOS High Sierra 10.13.
  • mac OS 10.10 is no longer supported.

Detailed Release Notes

OEChem TK 2.1.4

New features

Major bug fixes

  • The OEReadMolFromString and OEWriteMolToString functions use internal buffers for the encoding or decoding of molecules from bytes. Previously, depending on library load order, internal buffers could be initialized without the complete set of binary input/output handlers. This could result in the loss of custom datatypes when translating to or from bytes. These internal buffers now are updated during subsequent loads of OpenEye libraries to ensure that the complete set of custom datatypes is handled correctly.
  • The implementations of OEDBMol and OEMiniMol have been corrected to avoid a potential crash after an OEMolBase.Compress and OEMolBase.UnCompress call sequence when the molecule contains OEGroupBase objects (e.g., reaction component information or V3000 enhanced stereo information). While the OEMiniMol supports OEGroupBase objects, it cannot save and restore following OEMolBase.Compress and OEMolBase.UnCompress calls, so this class must never be used if OEGroupBase information is to be maintained. The OEDBMol implementation is the preferred class for low memory footprint applications when OEGroupBase may be present.
  • When writing a 2D molecule with explicit hydrogens to an MDL file, the coordinates of the stereo hydrogens are now reassigned by calling the OESet2DHydrogenGeom function if they are identical to their parent heavy atom coordinates. This ensures that reinterpretation of the MDL file does not inadvertently flip stereo configurations.

Minor bug fixes

  • The algorithm used by OEGenerate2DCoordinates to detect and resolve atom clashes when generating 2D coordinates has been improved.
  • When calling the OERMSD function for a multi conformer fit molecule, the returned RMSD array will now have a -1.0 value for conformation indices that are not valid for the fit molecule.
  • The OEAssignAromaticFlags function now limits the search path to 30 bonds when the bond/atom ratio is higher than 1.3. As a result, buckyball-like molecules can be processed in reasonable time.

C++-specific changes

  • A deprecated overload of the OEPRECompress function, OEPRECompress(OEMol &, const OEMCMolBase &), has been removed from the C++ API. OEPrepareFastROCSMol should now be used to create molecules optimized for ROCS-type calculations. The documentation has been updated to reflect this change.

Python-specific changes

  • Two new overload functions, OEReadMolFromBytes and OEWriteMolToBytes, have been added to specify input or output flavors from the OEIFlavor and OEOFlavor namespaces.
  • A crash in the Python interpreter due to malformed UTF-8 input character sequences has been fixed.
  • Binary data now can be safely attached to objects as generic data without being truncated at a \0 character.

Java-specific changes

  • Two new overload functions, OEReadMolFromByteArray and OEWriteMolToByteArray, have been added to specify input or output flavors from the OEIFlavor and OEOFlavor namespaces.

C#-specific changes

  • Two new overload functions, OEReadMolFromBytes and OEWriteMolToBytes, have been added to specify input or output flavors from the OEIFlavor and OEOFlavor namespaces.
  • A minor issue with the C# verify.py script that caused the validation to halt if one or more toolkit licenses was missing from the active license file has been fixed.

OESystem TK 2.1.4

Minor bug fixes

OEBio TK 2.1.4

New features

Minor bug fixes

OEDepict TK 2.4.0

New features

Java-specific changes

  • The API for marking up SVG images is now fully supported in Java (see the list above).

C#-specific changes

  • The API for marking up SVG images is now fully supported in C# (see the list above).

OEDocking TK 1.3.6

New features

  • Language-specific functions have been added to export receptors to bytes and read receptors from bytes.

For Python, see OEReadReceptorFromBytes and OEWriteReceptorToBytes.

FastROCS TK 1.8.4

New features

  • A new Python example script, BestShapeOverlayMultiConfQuery.py, has been added to perform a query search for every conformer of the query molecule and save the sorted results sequentially in a single file for each query molecule.

Minor bug fixes

  • A small modification has been made to ShapeDatabaseServer.py to reduce the number of server-related messages when running a query search via the client/proxy interface.

GraphemeTM TK 1.3.5

New features

  • A new function, OERenderUnpairedInteractionMap, has been added to visualize clash and unpaired interactions.

    Examples of visualizing clash and unpaired interactions
    PDB: 1S2A PDB: 3K6L
  • OERenderActiveSite now depicts covalent and cation-pi interactions.

    Examples of depicting covalent and cation-pi interactions
    PDB: 5WQX PDB: 3ARW
  • The style for depicting stacking interactions has been simplified.

    Examples of stacking interaction depiction
      T-stacking Pi-stacking
    2017.Oct ../../_images/complex2img-stacking-t-2017-Oct1.png ../../_images/complex2img-stacking-pi-2017-Oct1.png
    2018.Feb ../../_images/complex2img-stacking-t-2018-Feb1.png ../../_images/complex2img-stacking-pi-2018-Feb1.png
  • The color scheme used to visualize interaction types when depicting protein-ligand interactions has been updated to accommodate the two new interaction types.

    ../../_images/DrawActiveSiteLegend_2018_Feb1.png

    New interactions color scheme

  • A new method, OE2DActiveSiteDisplay.IsValid, has been added that is checked by all Grapheme TK API points.

  • The OEResidueSVGStandardMarkup class now takes a separator option.

  • The following API, introduced in the 2017.Jun release for marking up residue circles in SVG images generated by the OERenderActiveSite function, is no longer preliminary and is now also available in both Java and C#:

Minor bug fixes

  • The algorithm used by the OE2DActiveSiteDisplay function to scale and position residues around ligands has been improved.
  • OERenderActiveSite is now able to generate images when some ligand atoms have identical 2D coordinates.
  • OERenderActiveSite now throws a warning if an interaction cannot be rendered.

Java-specific changes

  • The API for marking up residues in SVG images is now fully supported in Java (see the list above).

C#-specific changes

  • The API for marking up residues in SVG images is now fully supported in C# (see the list above).

GraphSim TK 2.4.0

New features

Lexichem TK 2.6.5

Minor bug fixes

  • The name-to-structure conversion for amino acids has been improved.
  • Recognition of several additional unnatural amino acids has been added.
  • Problems with stereo handling and substituent numbering of some unnatural amino acids have been corrected.

Documentation changes

  • Example documentation has been updated and a -debug flag has been added to the mol2nam and nam2mol examples.

OEMedChem TK 1.0.6

New features

Minor bug fixes

  • An issue with hydrogen atoms on input molecules used with OEApplyChEMBL18SolubilityTransforms has been fixed. This function is now tolerant of explicit hydrogen atoms on the input molecule.

MolProp TK 2.5.0

Bug fixes

  • The aminal and hemiaminal SMARTS rules have been modified to be slightly more general. Both rules now match 1,1-diamines as well as hydroxyl amines.

OEFF TK 2.0.2

  • Minor internal improvements have been made.

Omega TK 2.7.0

  • Minor internal improvements have been made.

Quacpac TK 1.9.3

New features

  • A new class, OEAM1, has been added to provide AM1-like semi-empirical method functionality.
  • A new class, OEAM1Options, has been added to set up OEAM1 calculation options.
  • A new class, OEAM1Results, has been added to obtain OEAM1 calculation results.
  • The class OETautomerOptions now exposes settings to allow control of Kekule results, clearing of coordinates, and the degree of carbon hybridization.

Documentation changes

  • An example that displays obtaining Wiberg bond orders from an AM1 calculation has been added.

Shape TK 2.0.1

New features

Minor bug fixes

  • An issue related to Shape TK requiring a case license has been fixed.
  • An issue related to overlay optimization when an OEShapeQuery class with only Gaussians as the reference has been fixed.
  • An unnecessary warning that occurred when an OEColorForceField was initialized with OEColorFFType_Custom has been removed.
  • A SMARTS definition in ImplicitMillsDean that incorrectly defined an anion on the central carbon of a malate-like molecule with no hydrogen has been fixed.

Documentation changes

  • The hermite-tanimoto example in both C++ and Python has been modified to move the fit molecule to the overlaid position.
  • A Python example for performing best overlay calculations using multithreading has been added.

Spicoli TK 1.4.4

  • Minor internal improvements have been made.

Spruce TK 0.9.0

New features

Spruce TK has a limited API that is in a preliminary state until the 2018.Oct release. The currently available classes in the API are OESecondaryStructureSuperposition, OEStructuralSuperposition, and OESuperpositionOptions. The currently available functions are OEExtractBioUnitsFromRef and OEExtractBioUnitsFromPDBRemarks.

Szmap TK 1.4.3

  • Minor internal improvements have been made.

Szybki TK 2.0.2

New features

Minor bug fixes

  • An issue related to Szybki TK losing information about already perceived protein residues has been fixed.
  • Previously, highly clashed protein-ligand systems that were often a result of docking were not automatically relaxed when using the default OEOptType_BFGS optimization method. Users had to explicitly use the OEOptType_SD_BFGS method. Now, a clash that exceeds 1e6 (kcal/mol)/A on a gradient norm is detected and 5 steps of steepest descent optimization are automatically applied before the BFGS optimizer is run.

Zap TK 2.3.3

  • Minor internal improvements have been made.