The meaning of the .smi file extension has changed in OEChem 2.0. The .smi file extension will now retain stereochemistry information. This could cause problems for systems that relied upon .smi to strip away stereo chemistry.
The following changes have been made to how OEChem defines the various flavors of SMILES (see images demonstrating these changes in Table: SMILES File Formats):
OEFormat.CSV file format added to OEChem for round-tripping molecules and SD data to other software packages that support the comma-separate-value, .csv, file format. OEChem supports the .csv file format that has largely become ubiquitous and is now standardized by RFC 4180. The following APIs were added for handling CSV files in OEChem:
Added automatic 2D coordinate generation to the following file formats when invoking the OEWriteMolecule high-level molecule writer:
OEGenerate2DCoordinates added to assign 2D coordinates to the given molecule.
OERoleSet abstract base class added as a mixin class to allow a class to contain a set of OERole objects for classification purposes. This is similar to how the OEBase class provides associative data container behavior as “generic data”. The following classes already derive from OERoleSet:
More classes across the toolkits may be added in the future as dictated by needs.
oemolstreambase.GetFileName method added to all molecule streams to return the file name used to open the stream, if a file name was used.
OEMatchBase.IsValid method added for determining whether the match contains any atoms or bonds.
OEAssignZap7Radii function added to assign radii from the ZAP7 set.
OEParseSmilesOptions class added for adding more complex SMILES parsing options for the OEParseSmiles function. This added the ability to make OEParseSmiles quiet with regard to parsing failures through the OEParseSmilesOptions.SetQuiet method.
Added support for handling the comma-separated-value, CSV, format specified by RFC 4180 with the following two free functions:
The following low-level functions were added support CSV handling but can be ignored by most users:
OESystem::OEBinaryTagMaxLength constant added and set to 1024, the maximum length of an explicit string tag in the .oeb file format.
OEStringTokenizeQuoted will no longer treat a quote as the end quote of a field if it is escaped by another quote. Table: OEStringTokenizeQuoted Change demonstrates the change to support proper CSV parsing.
The size of OEBitVector object has been increased from 12 bytes to 16 bytes on 64-bit machines. The size is still 8 bytes on a 32-bit machine.