OEOmegaConfTest has been created specifically for output from
OMEGA. This conftest ignores invertible nitrogen stereochemistry that OMEGA
freely adjusts in order to allow these conformers to be read into the same
OEMol.
OELibraryGen::SetValidateKekule added to set
whether alternative Kekulé forms are enumerated until a valid form
is identified before returning a product.
The oemolthreadbase::GetMol method for
oemolithread class will now return chunks of
molecule files that can be directly written to files to enable faster
tokenization of a molecule file. Before this release, this method
would often not return whitespace that was necessary to delineate
boundaries between molecules.
OEPerceiveResidues had a bug introduced in the
2012.Feb release that could cause crashes or strange
data to be written to the OEAtomBase::GetName
field whenever OEAtomBase::GetAtomicNum returned
0. Atoms with an atomic number of 0 will now be given the
name of `` UNK`` (note, the leading space to match PDB style
names).
OEAssignAromaticFlags no longer takes an
OEAroModel, which was a unsignedshort* typedef, but takes
an integer from the OEAroModel namespace
instead. Global constants prepended with OEAroModel* are now
deprecated. This works around a serious bug that would sometimes
cause OEAssignAromaticFlags to not do anything to
the molecule. This may break source-level backwards compatibility
for strongly typed languages (C++, Java, and C#) if a global
constant prepended with OEAroModel* was stored as a
variable.
Code may have to be ported like the following:
OEAroModelm=OEChem::OEAroModelOpenEye;// change the previous line to the followingunsignedint=OEChem::OEAroModel::OpenEye;OEAssignAromaticFlags(mol,m);
oemolithread and oemolothread can
no longer to be copy constructed. They are heavy weight objects
representing real operating system threads and thus should not be
copied.
The MDL V3000 reader now throws a warning that the ENDPTR and ATTACH bond
properties will be ignored.
OEMatch::AddPair now checks whether the atom and
bond pairs belong to the same molecule.
OELibraryGen now allows an aromatic bond to become
a triple bond when breaking a ring.
OEParseCommandLine will now call exit(0) if
the internal call to OECheckHelp returns
true that a --help parameter is found. That is, program
execution with the --help parameter should not be considered
abnormal program termination.
OEGeom3DRotVectorToTransform return type changed
from void to bool to be able to indicate cases when the
function can fail.
OEBitVector::FromHexString and
OESystem::OEBitVector::ToHexString documentation has been
corrected to explain their behavior with respect to bit vector
lengths and the handling of non-hexadecimal digits in the
translation process.
oeifstream::pread method added to allow
multiple threads to read from a single file.
oeiofstream class added to support reading and
writing to the same open file.
oeistream::read method added to read the
entire contents of the stream or throw std::bad_alloc whenever
the system runs out of memory.
oeistream methods that read into
std::string objects have been significantly optimized.
OEPlatform::oeifstream::getline that takes a
std::string without a size parameter was arbitrarily capped
to only read a line 64K long. The method will now keep reading
data provided there is enough memory to allocate for the
std::string.
OE_CURRENT_FUNCTION macro added that provides a constchar*
to the name of the current C++ function.
oemultiostream has been added. More than one
oeostream can be added to this class for simultaneous output.
OEFileTempDescriptor added to safely create
temporary files without race
conditions. OEFileRandomName is now deprecated
as it can lead to race conditions in the file names it generates.
OEPlatform::oeifstream::getline would sometimes cause
buffer overflows whenever max characters were actually in the
line. The documentation was not very clear what this max
parameter meant, it used to be the line size, not including the null
terminator. Now it means the size of available memory in the buffer
passed in, including the null terminator, and the documentation is
now more clear on the subject.
OEPlatform::oeifstream::append will now close the previous
file before opening the next file. Before, calling the append
method in a loop could lead to the process easily running out of a
available file descriptors.
The macros OE32BIT and OE64BIT were improperly set on 64-bit
Windows.