Version 1.7.2¶
OEChem 1.7.2¶
OEPDBIFlag,OEPDBOFlag,OEMDLOFlag,OEMOPACFlagconstants namespaces are deprecated.
New features¶
OEReadMDLQueryFilenow sets the title of the query molecule.OEChem now recognizes the MDL “wavy” bond. An OEBondBase can be queried for its stereo type by querying its generic data for the
OEProperty_BondStereotag. The returnedunsigned intwill be from theOEBondStereonamespace.OEChem now supports MDL query file R group definitions. These are lines starting with
M RGP. The R group is represented as a OEQAtomBase with amap indexthe same as the R group number in the file.OEChem will now correct amidine and guanidinium functional groups where the bonds between C and N are marked as aromatic in MOL2 files.
Significant performance improvement to reading single-conformer molecules from OEB files. Other minor performance improvements were made to OEB as well (including multi-conformer molecules). This speeds up
OEDBMolcompression and uncompression as well.Removed
OECopyHistoryfunction.OEChem::OEReadHeaderis now smart enough to read the header into the OEHeader history if it is already populated with another header’s information.oemolthreadsnow support reading and writing OEHeader objects.Added the
oemolthreadbase.PeekMolmethod.
Support for the copy module interface (__copy__ and __deepcopy__) for objects that inherit from OEBase. This makes OEChem molecules behave a little more pythonic allowing the user to care a little less that they are C++ based objects.
Added support for
OEBase.GetData. This improves the ability to useOEBase.AddDataandOEBase.GetDataIterfrom python.Added partial support for
OEBase.AddDatain python. Only primitive data types will work. More complex data types (Molecules, Surfaces, etc) will fall back toOEBase.SetData.OESmartsLexReplaceis now properly wrapped for python.Added OEChem::OEAtomArray and OEChem::OEBondArray classes (similar to OEChem::OEFloatArray) for dealing with arrays of atom and bond pointers from python.
Fixed an inconsistency of using
OEIter.Target. Prior to 1.7.1 ifTargetwas used inside a python iteration theTargetwould point to the next item in the iterator, not the current one. Therefore, the following assertion always holds:atomiter = mol.GetAtoms() for atom in atomiter: assert atom == atomiter.Target()
This fix was implemented to support lazy iterators as returned by the new alternate location utilities:
OEAltLocationFactory.GetGroupsandOEAltGroup.GetLocations.Note
Since the fix was implemented as a reimplementation of the
OEIter.__iter__method to make it return a python generator instead of the iterator object itself there is now a slight difference in the above code snippet and the alternative way of using theOEIter.nextpython iteration protocol as shown in the following code:atomiter = mol.GetAtoms() try: while True: atom = atomiter.next() assert atom != atomiter.Target() except StopIteration: pass
This previous code snippet will behave the same in 1.7.0 and 1.7.1. However, note that now
OEIter.Targetreturns the next item in the iterator. This is fundamentally howOEIter.nextis required to work.We could have not provided
OEIter.nextat all since the only requirement for python iteration is the__iter__method. However, we choose to leave aOEIter.nextimplementation in order to not break code that was written like the following:atomiter = mol.GetAtoms() atom = atomiter.next() # grab the first atom
Major bug fixes¶
Fixed a
OEReadMDLQueryFilesegmentation fault when perceiving aromaticity with spirane rings containing generic atoms.Fixed a bug where atom parity was ignored when reading a 3D MOL file.
Fixed a memory leak when initializing an OEMCSSearch with its
constructor. The workaround in 1.7.0 is to use theOEMCSSearch.Initmethod instead.Fixed a memory leak with OEMCSSearch when
OEMCSSearch.SetMaxMatcheswas set to a number lower than the total number of matches found.Fixed memory leak when creating and destroying multiple OELingoSim objects.
Some
OEOFlavor_PDBflavor combinations would generate corrupt data.OESmilesAtomCountnow includes atoms of the form[#6]in its count.Fixed a bug where map indices on explicit hydrogens would be ignored when generating SMILES. For example,
[CH]would get generated even if the hydrogen had a map index specified. Now[H:1][C]will be generated.
The feature added in 1.7.0 of retrieving a python dictionary of the contents of an OEBase with the
OEBase.GetDatamethod was leaking memory. This has been fixed in this release.
Minor bug fixes¶
Energy set on an OEGraphMol using
OEMolBase.SetEnergywould not get written out to OEB files. Energy data will now round-trip through the OEB format.Automatic conformer combining through the
oemolistream.SetConfTestinterface will now combine separate single-conformer molecules in an OEB into a multi-conformer molecule similar to the other file formats OEChem supports for that behavior (MOL2, SDF, etc).OEPerceiveBondOrdersis more stable to pre-existing bond orders on the molecule.Rare non-deterministic bug fixed for sulfur monoxide bug in
OEPerceiveBondOrders.OEChem now recognizes the
DUresidue name and the mythicalDTresidue which is synonym for `` T``.The new overload of
OEIsReadableto take a string would returntrueif there was no periods (‘.’) in the string and the string began with a readable file extension, for example, “MDL-FOO”.Fixed a bug when OELibraryGen failed to generated products with correct Kekulé-form.
OESystem 1.7.2¶
New features¶
Added the
OEGetBitCountsfunction to efficiently get certain bit counts when comparing two OEBitVector objects. This function is useful for implementing custom fingerprint similarity measures.Added the
OEBitVector.SetDatamethod to allow a rapid method of initializing an OEBitVector with binary data.Added
OEErrorHandler.Verbosemethod to sendOEErrorLevel_Verboselevel messages.Added
OESystem::OEHeader::operator boolto test whether the OEHeader has any data in it.Added
OEBoundedBuffer.PeekandOEProtectedBuffer.Peekmethods.Optimized writing generic data attached to an OEBase. This optimized
OEDBMol::Compress.Minor optimization to a common OEChem iterator.
Major bug fixes¶
Fixed a memory leak with
OEConstIter.
Minor bug fixes¶
Renamed the
OEMakeFPfunction toOEParseHexto be more explicit about what is does.Valgrind would throw warnings about a change made in 1.7.0 for thread safety issues. Though this was not a true memory leak the code has been slightly changed to silence this warning.
Fixed an exponential growth bug when adding history to an OEHeader.
Assignment operators for OEMultiGrid now properly copy the titles of the subgrids.
OEPlatform 1.7.2¶
New features¶
Added the
OESetLicenseFilefunction to allow dynamically setting which OpenEye license file to use.Added the
OEGetCurrentWorkingDirectoryfunction to return the current working directory for the process.Optimized
oeigzstream.seekto only rewind the stream if seeking backwards. Therefore, the optimal way to seek in a gzipped file is in increasingoefpos_torder.Optimized
oeisstream.getbuffer.Optimized
oeosstream.clear.
Minor bug fixes¶
Revised the
oestream.lengthandoestream.sizedocumentation to be more accurate.oefpos_tnow works for files greater than 4GB on 64-bit windows.Fixed an infinite loop that would occur from the following code:
oeosstream sfs; sfs.open("foobar"); sfs.write("blah");
oeosstream.openwill returnfalse. Ignoring thefalsereturn value would causeoeosstream.writeto loop indefinitely.
OEBio 1.7.2¶
New features¶
Introduced new OEBio classes to manage alternate locations in protein data bank structures along with a new PDB input flavor
OEIFlavor_PDB_ALTLOCto retain alternate location atoms on input.See also
Major bug fixes¶
The crystal symmetry routines were broken in the 1.7.0 release by a corrupted matrix.
When reading symmetry from external sources (i.e. PDB files or maps) a warning is thrown when reading out of date space groups rather than fail to read symmetry.
Setting space groups will fail unless the most current space group constraints are used.
Added the following space group aliases for older style space groups.
I 1 2 1 -> C 1 2 1 P 1- -> P -1
OEGrid 1.3.3¶
New features¶
OEMakeGridFromCenterAndExtentsadded for a grid of an arbitrary template type.
Major bug fixes¶
Fixed a rare crash in
OEMakeRegularGridthat was caused by floating point round-off error.