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. The actual source
code is also included in the
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
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
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.
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
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 between 1 and 5 inclusive.
OEOFlavor::Generic::Default will now be
consistent in molstreams for all flavors. The
OEIsWriteable function that takes a format and a
flavor will now check the generic and specific flavor bits
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
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 of
0. OEIsHeavy will only return true if the
atomic number is greater than 1.
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
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::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.