OEChem TK 2.3.0¶
New features (Preliminary)¶
- The following preliminary APIs have been added to perform fast substructure searches:
- A new class, OESubSearchScreen, has been added that stores bit-vector screens. In addition, a new OESubSearchScreenType namespace and OESubSearchScreenTypeBase class have been added that handle various screen types.
- Two new low-level functions, OEMakeSubSearchQueryScreen and OEMakeSubSearchTargetScreen, have been added that generate query and target molecule screens, respectively. The OEScreen low-level function can be used to determine whether a query molecule can potentially be matched to a target molecule by comparing their screens.
- A new function, OEIsComplementaryScreenType, has been added that determines which screen types are suited for a specific query molecule.
- New helper functions, OESameSubSearchScreenTypes, OEGetSubSearchScreenType, and OEIsValidSubSearchScreenString, have been added.
- A new OECreateSubSearchDatabaseOptions option class and OECreateSubSearchDatabaseFile function have been added that pre-generate databases for substructure search. A new OEIsValidSubSearchDatabase function also has been added that checks whether a molecule file is valid for substructure search.
- The OESubSearchDatabase class is designed to perform rapid substructure searches. A new OESubSearchDatabaseType namespace has been added to this class that enables various database implementations.
- A new class, OESubSearchQuery, has been added that sets up search queries. In addition, a new OESubSearchResult class has been added that reports the progress of the search and retrieves the matches.
- A new OESubSearchStatus namespace and OESubSearchStatusToName helper function have been added that monitor the search progress.
- A new low-level function, OEReadCIFFile, has been added that reads both small and macromolecule Crystallographic Information File (CIF and mmCIF) formats.
- Two new classes, OEConfRMSDOptions and OEConfRMSD, have been added that set up OEConfRMSD calculations and provide fast RMSD calculation of conformers of the same molecule, respectively.
- A new function, OEFastaToMol, has been added that converts a FASTA sequence into a molecule.
- A new optional sorting argument has been added to the OEGetNearestNbrs function that allows returned atom pairs to be sorted based on distance.
- OEIsAlphaCarbon has been deprecated. The OEIsCAlpha predicate should be used instead.
- New OEUncolorMol overload functions have been added to OEMCMolBase. A new constant, OEUncolorStrategy::RemoveDimension, has been added that invalidates 3D coordinates and sets the dimension to 0 when uncoloring molecules.
- Support has been added to OEReadMolecule that enables reading both CIF and mmCIF files.
- Updates have been made to the OEFormat namespace to include new CIF and mmCIF formats. Corresponding updates have also been added to OEIFlavor and OEOFlavor.
- Updates have been made to the OEResidueIndex namespace to include residue IDs for metals observed in PDB files.
- The formal charge assignment for less common metals observed in PDB files has been expanded.
- Updates have been made to the OEExprType namespace to allow for more fuzzy searches. For example, OEExprType::ElemMinHCount or OEExprType::ElemMinDegree can now be used to specify an atom’s minimum hydrogen count or minimum degree.
- Changes have been made to the OEResidue class to support the mmCIF format.
These changes include the following three new string member variables, with the appropriate
getter and setter functions:
- SequenceID captures the mmCIF field, label_seq_id, which is the sequential number of residues from 1.
- ExtChainID captures the fact that the previous chainID in the auth_asym_id field can now have multiple characters. The OEResidue::GetChainID function now returns the first character of the ExtChainID variable, and OEResidue::SetChainID now overwrites and sets the ExtChainID.
- SubChainID captures the label_asym_id field, which commonly seems to be a further subdividing of the auth_asym_id field.
Minor bug fixes¶
- A bug that caused OEWriteMolReturnCode::Success to be returned even though an invalid output stream was used has been fixed.
- A bug that caused broken perception after implicit hydrogen assignment in the OEAssignImplicitHydrogens and OEAssignMDLHydrogens functions has been fixed.
- Handling of partially resonant nitrogen stereo perception in OE3DToAtomStereo and OE3DToInternalStereo has been improved.
- An issue that caused OEIsCTerminalAtom to misperceive a minor number of C-terminal atoms has been fixed.
- Unpaired interactions are no longer triggered on ligands due to nearby water molecules. Similarly, water molecules can no longer present as having unpaired interactions.
- Support for making custom MCS scoring functions from OEMCSFunc has been added.
- New functions, OEGetBytesFromGrid, OEGetScalarGridFromBytes, and OEGetSkewGridFromBytes, have been added to support the conversion between byte and grids (OESkewGrid or OEScalarGrid).
- OETrans::Extract is now available in Python.
- Two new examples have been added that demonstrate performing fast substructure searches:
- A new example program, Printing protein amino acids histograms, has been added that demonstrates printing a histogram of the occurrences of various amino acids in a protein.
- The Print OEChem and file format information example program has been updated to demonstrate using the OEToolkitsGetRelease function.
- New code snippets have been added to the OEConfRMSD class that demonstrate finding the two conformers of a molecule with the smallest RMSD.
- New code snippets have been added to the OEFastaToMol function that demonstrate creating a molecule from a FASTA sequence.
- New code snippets have been added to the section, String Input and Output, that demonstrate reading and writing molecules from memory buffers.
- New code snippets (in C++ and Python) have been added to the OEMCSFunc class that demonstrate using custom scoring functions.
- OEChem TK examples have been cleaned up to use the new C++11 style.
OEBio TK 2.3.0¶
The following APIs have been added for perceiving non-ideal hydrogen bond interactions (i.e., hydrogen bonds with long donor-acceptor distances or poor geometries):
A new functor, OEIsNonIdealHBondInteractionHint, has been added that easily identifies non-ideal hydrogen bonds.
The following methods have been added that customize the non-ideal hydrogen bond perceptions:
- OEPerceiveInteractionOptions::SetMaxNonIdealDonorAngle and OEPerceiveInteractionOptions::GetMaxNonIdealDonorAngle
- OEPerceiveInteractionOptions::SetMaxNonIdealAcceptorAngle and OEPerceiveInteractionOptions::GetMaxNonIdealAcceptorAngle
- OEPerceiveInteractionOptions::SetMaxNonIdealHBondDistance and OEPerceiveInteractionOptions::GetMaxNonIdealHBondDistance
A new functor, OEIsDisulfideBond, has been added that identifies disulfide bonds.
A new function, OECalculateDPI, has been added that calculates the diffraction-component precision index (DPI) value.
A new method, OEInteractionHintContainer::DeleteInteractions, has been added that removes all interactions.
The functional group perception in OEPlaceHydrogens has been improved.
Minor bug fixes¶
- Perception of hydrogen bonds involving sulfur and anions in OEPerceiveInteractionHints has been improved.
- The precedence of OEInteractionHint perception has been improved. Chelation interactions now take precedence over charge-charge interactions.
- A check has been added to the OEPlaceHydrogens function that causes it to exit early if two heavy atoms are within 0.5A of each other, since this is considered to be bad input and causes unspecified behavior.
OESystem TK 2.3.0¶
- The performance of OEGetDataType, especially on Windows, has been improved. OEGetDataType is now at least 500X faster when used with a single thread and about 2X faster with many simultaneous threads on Windows.
- A new method, OEBitVector::CountRangeBits, has been added that identifies the number of bits that are set to 1 in the given bit range.
- A new class, OEConsoleProgressTracer, has been added that tracks the current progress of a task.
- A new function, OEStringEquals, has been added that determines whether two strings are equivalent using a case-insensitive comparison.
- A new function, OEGeom3DReflectCoord, has been added that reflects coordinates around a plane for a hydrogen atom.
- A new function, OEBitIsPowerOf2, has been added that determines if a bitmask is a power of 2.
OEPlatform TK 2.3.0¶
OEGrid TK 1.6.4¶
- Minor internal improvements have been made.