This is a new release of the OpenEye Toolkits with versions of the following libraries:
There are two major additions to the OpenEye toolkit suite with this release:
A toolkit for doing 2D molecule similarity. The methods currently implemented are:
- Path based fingerprints
- MACCS key fingerprints
A toolkit derived from OpenEye’s FILTER technology. This toolkit is useful for calculating an extensive list 2D molecular properties and building custom filters around these properties.
The version number of MolProp TK will track with the FILTER application to indicate similarities.
This release of OEChem introduces many bug fixes and new features provided they didn’t break source-level compatibility with 1.7.0.
This release completes the transition from the old LaTeX based documentation system to the new reStructuredText based system. This includes better support for Python and Java in the manuals as separate manuals for every library.
JDK1.5 would sometimes crash while loading the 1.7.0 libraries. This bug was introduced in 1.7.0 with the change to make all OpenEye library memory allocation use memory from the Java heap. However, JDK1.5 has a known bug http://bugs.sun.com/view_bug.do?bug_id=6253386 which doesn’t allow accessing the JVM during library initialization. Therefore, we now detect when the OpenEye libraries are being loaded by JDK1.5 and turn off Java heap allocation during library initialization. The amount of memory allocated during library initialization is usually negligible, so this shouldn’t allow programs to exceed the Java heap restrictions very much.
This fix introduces a rare corner case that could cause the OpenEye libraries to leak memory. It will only occur if the following sequence of events occurs:
Race Condition Causing Memory Leak Thread 1 Thread 2 Load OEChem Allocate OEChem objects Start loading another OpenEye library (e.g. OEDepict) Deallocate OEChem objects This thread is terminated causing the OEChem objects to leak Finish loading library
If this occurs OEChem will throw the following warning:
Leaking memory (0x00000000) because OEUseJavaHeap is false Contact OpenEye support if this message is seen
None of this is possible in JDK1.6.
OEIter.Target and OEIter.next will now raise NoSuchElementException to better adhere to the Iterable interface.
Quacpac: Added support for writing a custom OETautomerMolFunction or OETyperMolFunction in Java by deriving from the base class.