Version 1.7.5¶
OEChem 1.7.5¶
Documentation changes¶
Generic Data handling chapter added.
All the
OEChem
examples have been overhauled. Several examples have been removed, new ones have been created and all the examples (across all the languages we support) have been reviewed to bring them up to a similar standard. For the details of example toolkit scripts see the examples summary chapter. Source code is also included in the documentation.
New features¶
OEAtomBondSet container added.
OEIsAtomHybridization functor added.
OEBase.GetDataIter
that takes an unsigned integer added for convenience.OEIsMember and OEIsMemberPtr can now be initialized with an OEIterBase pointer.
OEParseSmiles
function will now ignore extra leading spaces in non-strict mode.OELibraryGen.SetTitleSeparator
will now store an internal copy of the string, fixing issues in wrapped languages.OEIs3DFormat
function added as a convenience function for the user to determine whether a file format supports 3D coordinates.OEMolBase.Clear
can now be called on a compressed DBMol and DBMCMol to wipe out the molecule entirely.OEIsNonRingAtomDoubleBondedToRing functor added to detect atoms double bonded to a ring. Most users consider atoms double bonded to a ring system as part of the “scaffold”.
MiniMols can now store coordinates, energy, and dimension. These are stored as generic data, so not particularly “mini”. Just meant to allow MiniMols to be used as a more general purpose molecule implementation.
Safety precautions to prevent corrupted molecules from being written were placed into the OEB writer for rotor-offset-compressed molecules. These molecules should not be modified, and definitely should not be written if they were modified.
Both old format and new format PDB hydrogen atom names are now supported. The new PDB naming format is used when new H atom names are assigned. The call
OEResidueHydrogens
now supports an option to control which style of H atom names is assigned.Four new residue types have been defined:
OEResidueIndex_NHE
(carboxy-terminal amine)OEResidueIndex_NME
(carboxy-terminal methyl amine)OEResidueIndex_CIP
(AmberFF’s +1 ion)OEResidueIndex_CIM
(AmberFF’s -1 ion).
The Python global interpreter lock will be released when calling
Compress
andUnCompress
on a molecule. Since these are relatively expensive methods this should improve the performance of multi-threaded python applications.
Major bug fixes¶
Fixed memory leak in
OEMolBase.SetCoords
when taking a Python sequence or dictionary.OEMolBase.SetCoords
will also throw a Python exception if the object passed does not conform to what is expected.
Fixed a crash in the OEB writer that occurred when very large values were set for the map index or isotope atom properties.
Fixed a bug with parity bits in SDF files. This would occur if
OEPerceiveChiral
was called with an aromaticity model other than MDL before the molecule was written. The SDF writer now makes sure to re-perceive chirality based upon the MDL aromaticity model to get the correct parity bits.Fixed a memory leak that would occur when reusing a oemolistream for many different files under certain circumstances.
OEMol.operator=
fixed to not duplicate SD data when being assigned from an OEGraphMol.The FASTA reader now assigns the proper stereochemistry to the molecules it produces.
The function
OEPerceiveResidues
now respects the following data preservation flags:OEPreserveResInfo_Occupancy
,OEPreserveResInfo_BFactor
, andOEPreserveResInfo_FragmentNumber
both individually and implicitly as part of the flag:OEPreserveResInfo_All
. Using the flagOEPreserveResInfo_SerialNumber
will leave only the serial number of new atoms altered.
Minor bug fixes¶
OELibraryGen fixed when explicitly defined bonds on the reactant side are not set correctly. This used to generate products with incorrect valence.
OEMiniMol::Sweep() fixed to properly re-index atoms and bonds after some atoms and bonds were deleted.
OEKekulize
will now fail if the integer bond types are set correctly, i.e., not between1
and5
inclusive.OEOFlavor_Generic_Default
will now be consistent in molstreams for all flavors. TheOEIsWriteable
function that takes a format and a flavor will now check the generic and specific flavor bits separately.OERMSD
fixed when dealing with multi-conformer molecules with suppressed hydrogen atoms.OERMSD
will now check whether the associated OEMatchBase actually belongs to the molecule being passed in.OEParseSmiles
fixed to not crash when parsing empty strings in strict mode.OELibraryGen.GetTitleSeparator
method signature changed to return a string directly. The previous signature and function couldn’t operate and didn’t actually do anything.OESmartsLexReplace
fixed to not give incorrect SMARTS whenever a name appears twice in the bindings vector. Instead, the first pair is used, and a warning is thrown to indicate to the user about there being multiple pairs.OEIsHeavy is fixed to not return
true
for dummy atoms, that is, any atom with an atomic number of0
. OEIsHeavy will only returntrue
if the atomic number is greater than1
.oemolithread.openstring
crash fixed when used without a valid format being set.Atom names perceived for unknown ligand types (
OEResidueIndex_UNK
andOEResidueIndex_UNL
) are now constructed from the element name and an integer.OEAddExplicitHydrogens
is fixed to produce better hydrogen placement geometries when adding hydrogens to sp3 carbons where the carbon’s existing attachments vary significantly from ideal tetrahedral geometry.
OEFuzzVal
namespace constants now properly wrapped in Python. TheOEFuzzVal_True
andOEFuzzVal_False
constants would override the built in PythonTrue
andFalse
by redefining them to the integral values of1
and0
respectively. This wouldn’t cause any problems, in fact, Python 2.2 and previous versions used to defineTrue
andFalse
exactly this way.
OEBio 1.7.5¶
New features¶
New
OEAltLocationFactory.GetCurrentLocations
methods provide a way to determine which alternate locations are selected. A newOEAltLocationFactory.GetGroup
method is provided to convert from an OEAltLocation to an OEAltGroup.A new
OEGetRotamers
call that takes an OEResidue is now provided as a convenience.A new
OEExpandCrystalSymmetry
function expands the crystal symmetry of the source molecule into different conformers in the destination molecule.
Minor bug fixes¶
OERotamer is now properly wrapped in Python.
OEBio::OEHierResidue::GetOEResidue()
now returns a reference to a blank residue when the class is uninitialized instead of a reference to random memory.Adding
OESequenceAlignment.operator bool
method. An OESequenceAlignment object is considered invalid until its implementation is set. Both theOEWriteAlignment
and theOERMSD
functions checks whether the passed alignment is valid and throw a warning if it is not.
OEGrid 1.3.5¶
Minor bug fixes¶
OEGetCenterAndExtents
fixed to work on a OESkewGrid when it is regular grid, i.e. has no orientation.OEErrorHandler.SetOutputStream
performance significantly improved to avoid quadratic behavior in certain circumstances.OEWriteGrid
fixed to actually gzip the output if the file name ends in.gz
. Before it would just write the file in the specified format, but never gzip it.
OESystem 1.7.5¶
New features¶
OEErrorLevel_Default
has been changed fromOEErrorLevel_Verbose
toOEErrorLevel_Info
. This allowsOEThrow.Verbose
to be used for printing more information to the terminal, but it will only appear whenOEThrow.SetLevel
is called with theOEErrorLevel_Verbose
level. In the past, theOEErrorLevel_Verbose
level was essentially ignored since it was nearly the same asOEErrorLevel_Info
.OELinearColorGradient class added to interpolate colors between specified ranges. OEColorStop class added to initialize OELinearColorGradient objects.
OESystem::OEBkgrdGrey
added as a new color for using a light grey background of an image.OECopyBaseData
convenience function added for copying generic data.OEGetTag
heavily optimized for multi-threaded use.
Minor bug fixes¶
Fixed memory leak in OEArray (OEFloatArray, OEDoubleArray, OEIntArray, etc) constructor when used on a Python sequence.
Fixed memory leak in OEInterface constructor.
OEBitVector.SetData
crash fixed where it would try to copy more bytes than the actual size of the given data.OEStringToNumber
function now allows for new-line characters,\n
, to appear after the digits in the string.OEBase generic data can now handle an empty
std::vector
through OEB reading and writing.OEStringTokenize
now has an additional parameter, concat_delim, that specifies whether consecutive delimiters should be treated as a single delimiter. This is useful for parsing CSV files with empty fields. However, the default behavior is to behave as before, treating consecutive delimiters as a single delimiter.OEGridBase.GetXIdx
,OEGridBase.GetYIdx
,OEGridBase.GetZIdx
fixed so that the dimensions are guaranteed to always be within the dimensions of the grid. These methods would sometimes return indices that were outside the range of the dimensions of the grid due to floating point rounding errors.unsigned
can now be used as the!TYPE
in interface files for unsigned int parameters.OELinearInterpolate
performance has been significantly improved.
OEPlatform 1.7.5¶
Minor bug fixes¶
OEEOF
is now defined by theOEPlatform
headers and is the value returned byoestream
methods to indicate that the end of the file has been reached.oeostream.operator<<
can not properly write asize_t
on 64-bit Windows.