oeistdstream and
oeostdstream that wrap/transform C++'s std::istreams and
std:ostreams into the oeistreams and oeostreams
required by OEChem's file functions.
OEBitVector's destructor virtual to allow classes to
be derived from them.
_baseimpl member of OEBase. This
allows the OEChem python wrappers to associate generic data correctly
with a molecule.
OEGeom3DAngle allows the
calculation of the angle between two vectors. This is an efficient
form of the three argument variant, where the middle point is defined
to be the origin.
OELinearInterpolate function (template) that
can be used to linearly interpolate the value at an arbitrary point
inside an OEFixedGrid.
OEBinaryAnd and OEBinaryOr for
constructing a single binary predicate from two binary predicates.
These are equivalent to the OEAnd and OEOr functors
for unary predicates.
OEMolBase (as returned by the
OEMolBase::GetDimension method), is now read and written to
OEB binary files. Previously, all molecules in OEB were implicitly
3D (which remains the default), but we now explicitly record when
the dimension has a value other than three.
OEPerceiveChiral that failed to recognize
that double bonds in rings of size seven or greater are potentially
chiral.
OEPerceiveSymmetry's
graph invariants and OEPerceiveChiral's tests for potential chiral
atoms.
OEWriteMolecule, such
that when calculating MDL atom parity bits prior to writing MDL file
formats, to first extract chirality from 3D co-ordinates if present.
This is now consistent with similar logic prior to writing isomeric SMILES.
OECreateSmiString function
was suppressing explicit hydrogens necessary to represent double bond
stereochemistry. These necessary ``stereo'' hydrogens are now written
out explicitly.
C&1&1'',
``C&1C&1'' and even ``&=9'' to crash the parser. We
now more politely generate a warning message and return false.
OESet3DHydrogenGeom to improve the
geometry of protons added to carboxylic acids (which are now guaranteed
to be cis). OESet3DHydrogenGeom also avoids calling the function
OEAssignHybridization on the molecule, using a user-assigned
hybridization if available and calling OEGetHybridization otherwise.
OELibraryGen
class that caused a segmentation fault when using a reaction to delete
unmapped atoms.
OERMSD where if asked to overlay two sets
of co-ordinates, and the user didn't ask for either the rotation matrix
or translation vector, and the two structures overlayed perfectly, we'd
generate a segmentation fault (we were writing a unit matrix to a NULL
pointer).
OEMCMolBase::SweepConfs where we'd fail to
renumber conformer indices, if there were no deleted conformers.
OEGetHybridization for uncharged sulfur,
selenium, tellurium and polonium. These are now always considered sp3
unless they're aromatic, in which case they are sp2.
OEQBase::SetExpr has been changed to make a copy of the
passed const OEExprBase* which fixes issues with copying/assigning
OEQMolBases.
OEAtomBase::GetStereo that could
occasionally return either Left or Right for an atom
without HasStereoSpecified. This has now been fixed such that
whenever HasStereoSpecified returns false, GetStereo will
always return OEAtomStereo::Undefined.
OEGetFileType to perform case-insensitive
string comparison, allows this code to recognize file format extensions
independent of capitalization, i.e. ``.mol2'' and ``.MOL2''.
OEMDLPerceiveBondStereo
for placing wedge and hash bonds on a connection table. These include
avoiding placing the wedge/hash on the fusion bond for chiral bridgehead
atoms, and arbitrarily choosing amongst the best bonds when no unique
best is found (previously a tie caused the algorithm to choose randomly
between all neighboring bonds).
OEDetermineConnectivity such that atoms that are
marked as PDB residues ``CL'', ``BR'' and ``IOD'' (i.e. chloride,
bromide and iodide ions) are treated like solvent, and are never bonded
to other residues (in this case other atoms).
OEReadMacroModelFile to read the atomic partial
charge out of the charge-charge interaction column and fixed a bug in
extracting the atom name field.
OEWriteMacroModelFile function to write
out the atomic partial charge to both the charge-charge and charge-multipole
fields of the MacroModel connection table. Previously, we only stored the
partial charge in the charge-charge field, and wrote 0.0 to the
charge-multipole field.
OEReadRxnFile to read MDL RXN (reaction) file
format.
OEGetAtomComment and OESetAtomComment that
allow arbitrary text strings to be associated with atoms. This is currently
used to preserve/manipulate atom aliases from MDL file formats.
OEReadMDLFile and OEWriteMDLFile to read
and write atom alias information. Atom alias information is stored on
an atom by the reader using OESetAtomComment, and any such atom
comments are written to the MDL connection table on output.
OEInvertCenter to invert a tetrahedral center.
For chiral atoms, this function flips the molecule from one isomeric
form to the other. This function returns false if the center can't
easily be inverted.
OEQMolBase can now be
read from and written to OEB binary files.
OECorrectAcidProtonGeometry to expose the
new functionality in OESet3DHydrogenGeom to ensure that protons
on carboxylic acid groups are cis.
OESmilesFlag::ExtBonds allows OEChem
to write out SMILES strings using the external bond notation, i.e.
``[*:1]CC[*:2]'' (a.k.a. ``[R1]CC[R2]'') can now be written
out as ``C&1C&2''.
std::string have been added
to both oemolistreams and oemolostreams, allowing then to
take C++ strings, in addition to const char*.
rewind method has been added to oemolistreams to
match the functionality available with OESystem::oeistreams. This
method rewinds the stream to the beginning (if possible) and is equivalent
to oemolistream::seek(0).
SetMCSFunc method to OECliqueSearch to
allow callers to customize the MCS function used in clique searching.
OEIsMember functor allows it to be
used with an STL std::set. Additionally OEIsMember and
OEIsMemberPtr now have assignment operators and Set methods.
OEGetHonigIonicCavityRadius to return the
effective ionic radius of each element to be used in solvation calculations.
These values are described in Alexander A. Rashin and Barry Honig,
``Reevaluation of the Born Model of Ion Hydration'', Journal of Physical
Chemistry, Vol. 89, pp. 5588-5593, 1985.