Subsections

 
C.12 OEChem 1.3.0

C.12.1 OEPlatform

C.12.1.1 Minor bug fixes

  1. Made gzip set and initialization functions work with std::cin.

  2. Fixed a bug in the gzip seek function.

  3. Fixed a few minor issues with the handling of trailing separators in path names.

  4. Fix bug in OEStreamManager's openInput function. When there was no protocol part of the ``filename'' parameter, the internal protocol string was not properly NULL-terminated.

  5. Added code to properly intialize OEMutex.

  6. Used ``&SPMamp;'' to replace ``and'' for more consistent compiler support in OEMutex.

  7. Implemented copy constructor and assignment operator for oeisstream.

C.12.1.2 Major bug fixes

  1. Defined NONMINMAX in openeye.h under win32, which prevents conflicts between STL min/max and windows min/max macros.

C.12.1.3 Improvements and Optimizations

  1. OEMutex implementation now uses pthreads for icc 8.0

  2. Add default 64 bit file support on linux.

C.12.1.4 New Features

  1. Added an OETryMutex class that allows for an ``Attempted lock'' through the function OETryMutex::Try()

  2. Added OEFileCorrectSeparators and OEFileDeterminePathAndName functions.

  3. Added new platform-independent bool OEIsNaN() function which is overloaded for float and double. As the name implies, this function returns a boolean which is true if the number passed is a nan.

C.12.2 OESystem

C.12.2.1 Minor bug fixes

  1. Removed a bug where OEFizzGrid::IsDataType calls OEBase::IsDataType as well

  2. Fixed a bug in OEConcatIter that would cause the iterator to appear to have only part of its contents of two empty iterators were pushed back onto the concat iterator.

  3. OEB read an write functions now return with meaningful values (previously the writers always returned false regardless and the readers always returned success regardless).

  4. Fixed problem with some interface parameters calling new on zero bytes, then reset the pointer, causing small leaks on some platforms.

  5. Corrected the error descriptor for FATAL errors.

  6. Fixed MSVC 7.1 ambiguity in operator && (const OEIter<T>&, bool).

  7. Added endianness test for short integers to fix problems with small number of OEB files.

  8. Fixed recurring compile problem in cygwin where 'ssize_t' isn't defined.

C.12.2.2 Major bug fixes

  1. Fixed the previously broken FirstBit, LastBit, NextBit, and PrevBit functions.

  2. Fixed OEBinary writer bug where atom types were being written as atom names.

  3. Added handling for unknown data in OEB files for lossless data conversion even when older software versions are unable to parse data.

C.12.2.3 Improvements and Optimizations

  1. CheckHelp now also checks for ``-help defaults'', which will list the default arguments of all parameters.

  2. Added a new function for configuring OEInterface which takes an unsigned char* rather than a char*.

  3. The WriteSettings function now defaults to using OEERR rather than OEOUT.

  4. Added the non-virtual function CreatePredicateCopy() to the OEUnaryPredicate and OEBinaryPredicate base classes which allow users to use this virtual constructor method without unnecessary casts.

C.12.2.4 New Features

  1. Added two functions OEFizzGrid::GetFloatsSet and OEFizzGrid::GetIntegersSet to determine if the floats and integers are set for this grid.

  2. Added the new functions SetRangeOn and SetRangeOff to OEBitVector.

  3. Classes to handle grid I/O in OEB files.

  4. Add default 64 bit file support on linux.

  5. Added Sort(const OEBinaryPredicate &) member function to iterators. This allows arbitrary sorting of the order in which objects come out of any OEIter.

  6. Added two functions: OEFileExtension and OEFileExtensions which return a string containing the specified filenames file extension or list of extensions respectively.

C.12.3 OEChem

C.12.3.1 Minor bug fixes

  1. OEB files now properly store and read conformer energy.

  2. Fixed bug that prevented OEB's large molecules (>255 atoms) from being cross platform.

  3. Reading and writing molecules in OEB format no longer fails if a string of 0 length has been tagged to the molecules generic data.

  4. Fixed bug in Sweep to ensure that atoms/bonds are reindexed sequentially even if there have been no deletions.

  5. Fixed bug in OEChem's SMILES parser that incorrectly parsed atom map indices.

  6. Fixed bug that SetStereo was returning 'false' even when the stereo was set correctly.

  7. Fixed a bug in the copy constructor of OEMolTmplt that was only apparent for OEDBMols.

  8. Bug fixes to MDL superatom expansion to avoid problems with the order in which superatoms expanded.

  9. Fixed the return value of the DeleteAtom and DeleteBond member functions of OEMCMolBase and OEMol. The behavior of these functions was not changed.

  10. Added missing IsDeleted(OEAtomBase*) and IsDeleted(OEBondBase*) methods to OEMol, OEGraphMol and OEQMol.

  11. Fixed API misspelling of OESuppressHydrogens

  12. Fixed OEAddExplicitHydrogens() to return bool rather than void to reflect its failures.

  13. Fixed OESet3DHydrogenGeom() to return an appropriate boolean value rather than always returning true.

  14. In bool OERMSD(const OEMolBase&,const OEMCMolBase&, double *rmsdArray, const OEMatchBase &match, bool overlay = false, double *rot = 0, double *trans = 0) fixed bug that the first conformer of the OEMCMolBase's was used repeatedly rather than using each conformer in succession.

  15. Fixed behavior of oemolostream::GetString() when the stream is wrapping a gzstream.

  16. Corrected behavior of OESubsetMolecule() in the case when a ring bond it the only item removed from the original molecule.

  17. Fixed a bug in OEChem's default OEAtomBase implementation that caused problems for an atom after 65536 neighboring bonds had been deleted. This occurred in codes repeatedly created temporary bonds then deleted them without calling Sweep.

  18. Fixes to atom naming bugs in OEChem's peptide reside perception routines. Also adds support for the PTR residue, respresenting phosphotyrosine. Additional fixes to tie splitting of C-terminal serine residues. Use `` H' " to name C-terminal aldehyde hydrogens (`` H " denotes the backbone amide nitrogen's hydrogen).

  19. Changed OEFuzzy::operator!= and OEFuzzy:operator== to return bool instead of OEFuzzy.

  20. Removed overloaded OEMatch::operator new as it was incompatible with some versions of stl.

C.12.3.2 Major bug fixes

  1. Fixed bug in OECalcCartesianCoord when rotating around the y axis. Prior implementation would give wildly incorrect results.

  2. Removed dangerous allocation of too small a temporary array for use in writing conformer coordinates to OEBinary files.

  3. Fixed bug in .mol2 file format reader that resulted in connection tables occassionally being skipped when reading files from stdin, pipes and/or sockets. The OEReadMol2File function no longer requires the use of tell and seek on it's input stream.

  4. Modified the heuristic in OERMSD for recognizing and dealing with degenerate roots. When the heuristic fails, inappropriate rotation matrixes were generated.

  5. Fixed bug in OESet3DHydrogenGeom where memcmp was comparing coordinates of type double, but using sizeof(float), so only a partial comparison was being carried out.

  6. Modifications which provide the ability to read OEBinary v2 files which contain unrecognized data, without losing the data.

  7. Added 1 byte at the end of OEMolCT record for molecules with >255 && < 65536 bonds to store the endianness of short integers which are used to store bond records. The extra byte won't break old format readers, although oeb files written with old version writers won't be portable. This change doesn't break anything either direction, but does allow for portability of oeb files.

C.12.3.3 Improvements and Optimizations

  1. Performance enhancement to OESetDistance.

  2. Modified the implementation of the OEMCMolBase member function SetActive() for significant performance gains in binary i/o.

  3. Optimization of copy construction of OEMCMolBase.

  4. Added warning when oemolistream and oemolostream fail to allocate a gzstream.

  5. Made OEMol and OEMCMolBase contain a separate dimensionality (eg - the value returned by OEMolBase::GetDimension()) for each conformer rather than a single value for the molecule. This allows depictions and conformers to be stored on the same molecules and still be handled correctly by the .sd writers.

  6. Numerous improvements/enhancements to OEChem's PDB file reader. The list of exceptional residue names has been updated to match the May 2004 list of public PDB files from RCSB.

  7. The MDL mol file reader is tweaked to record unrecognized atomic symbols (just like we do for 3-letter superatom codes) storing them in the atom's name property/field.

  8. The routine OEMDLPercieveParity (and thereby the MDL mol file writer) is improved to record chiral centers that don't have stereo specifiled as the mdl parity value ``3" (unspecified chiral center).

  9. Improved performance for OEMolBase member functions GetAtom, GetBond and Sweep.

  10. All parity values were being stored for atoms - including value == 0 - which was unnecessary, and was consuming both memory and space on disk in the form of OEB files.

  11. Added call to seed random number generator from the clock in OERandomizeTorsions.

  12. Added more float multi-grid handlers to be initialized by default.

  13. A warning message was added to the SMARTS parser to alert users in cases of attempted assignment of map idx to zero.

  14. Moved implementation of OEInSamePart to a template class so that parts can be tested for bonds (and other objects) as well atoms.

  15. Extended to OEIsRotor constructor to allow the option of hydrogen rotors.

  16. Created and exposed OEMDLStereoFromBondStereo function from previously internal code.

C.12.3.4 New Features

  1. Added Reaction parsing and processing including: OELibraryGen class for generating combinatorial libraries; OEUniMolecularRxn class primarily for applying normalizations; OEParseSMIRKS function for converting Daylight's SMIRKS format to an OEQMolBase; and OEReadRxnFile that takes an OEMolBase for reading MDL's rxn files.

  2. Added OEVectorBindings class to handle SMARTS vector bindings.

  3. Added ChemDraw CDX reader and writer functions.

  4. Added ability to perceive symmetry classes useful for automorphism detection.

  5. Added factory methods for allocating molecules. Implemented graphmols, oemols and oeqmols in terms of the factory methods.

  6. Added int and float grid handlers to OEBinaryIOHandler.

  7. Added OEDisassembleExpressions function which converts query expressions into data directly on atoms/bonds.

  8. Added OEMiniMol - a small memory footprint molecule useful for in-memory graph searching.

  9. Added utility functors OEUnaryToBinaryAnd and OEUnaryToBinaryOr that turn a Unary functor into a binary 'or' or 'and' functor.

  10. Add default 64 bit file support on linux.

  11. Added functions to set and get comment on molecules. These comments are written to the appropriate fields of .sdf, .mol2 and .oeb file formats.

  12. New function OEMDLStereoFromParity that sets the OEChem stereochemistry of each atom from the MDL stereo parity flag stored in generic data.