Detailed Release Notes 2026.1
Bioisostere TK 5.0.0
New Features
The following new classes have been added as preliminary API:
The following new methods have been added to OEBroodQuery:
A new constructor overload has been added to OEHitlistBuilder that takes a OEHitlistBuilderOptions as an argument.
A new overload of Setup has been added to OEBroodDBFilter that takes a molecule as argument.
The following new methods have been added to OEBroodQuery:
The following new methods have been added to OEBroodScore:
The following new functions have been added:
The following methods have been removed from the OEHitlistBuilder, as they are no longer relevant:
GetTrimmedCount
TrimHitlist
An overload of GetHits that took a vector of OEBroodHit as an argument.
GetRemovedHits
Minor Bug Fixes
The OECreateBroodQuery method now keeps any incoming color atoms associated with the query selection, when available, and does not add any additional color atoms to the query. The behavior is unchanged when no color atoms are present with the incoming selection.
A bug in fragment property filtering has been resolved. Now by setting the SetUseProperty option in OEBroodScoreOptions to true, you can activate the fragment filtering based on the properties defined by OEExtrinsicPropOptions and OEIntrinsicPropOptions. Previously, the filter was not being applied correctly, which could lead to unexpected fragments being included in the results.
An issue has been fixed related to proper usage of SetRangeSize and SetRangeOffset so that fragment retrieval from the database during the overlay step now properly respects the specified range boundaries.
A bug has been fixed where the color score reported by GetColorScore could exceed its valid range in ROCS mode, causing the combined score to exceed its range as well. The color Tanimoto is now computed consistently from the scored conformer.
OEChem TK 5.0.0
New Features
The following preliminary APIs have been added for monomer, HELM, and peptide support.
Classes:
OEMonomer— represents a monomer in a monomer set.OEMonomerData— stores the definition of a monomer.OEMonomerSet— a collection of monomers.OEMonomerValidationResult— stores the result of monomer data validation.OEHelmParsingResult— stores the result of HELM parsing.OEHelmGenerationResult— stores the result of HELM generation.OEHelmGenerationOptions— gives options for HELM generation.
Predicates:
OEIsInMonomerCodeSet— filters monomers by code set.OEHasPolymerType— filters monomers by polymer type.OEHasMonomerType— filters monomers by monomer type.OEHasAminoAcidType— filters monomers by amino acid type.OEIsMonomerGroup— identifies groups that store monomer information.OEHasMonomerGroup— identifies groups that match a monomer group by code set and code.
Constants:
OEAminoAcidType— amino acid type constants.OEPolymerType— polymer type constants.OEMonomerType— monomer type constants.OEMonomerValidationReturnCode— monomer validation return codes.OEHelmParsingReturnCode— HELM parsing return codes.OEHelmGenerationReturnCode— HELM generation return codes.OEGroupType::Monomer— monomer group type constant.OEProperty::Monomer— monomer property type constant.
Monomer data and validation functions:
Monomer set I/O functions:
Monomer perception and detection functions:
HELM functions:
Peptide perception functions:
A new function,
OEHasRadii, has been added to check if a molecule has radii assigned to all atoms. The function takes an optional boolean argumentall(default:true) to specify whether to check for radii on every atom or whether to return early on the first atom without radii.More
OEIFlavorconstants have been added for better control of perception steps when reading mmCIF files.
Minor Bug Fixes
When generating a substructure search database with
OECreateSubSearchDatabaseFile, molecules with high graph complexity (such as https://www.rcsb.org/ligand/ZRW) are now skipped since they are unlikely to be useful for substructure searching and can cause significant performance degradation during database generation.The stack size of threads used in the
OECreateSubSearchDatabaseFilefunction have been increased to avoid memory allocation issues when processing.oebfiles with large number of generic data.An issue has been fixed in
OEGetTorsionwhere residue perception was called on a const atom changing the underlying perception state of the molecule. The function now correctly returns an invalid value when the residue is not already perceived with a warning to perceive it.
Python-Specific Changes
The
OEMolBase::NewGroupmethod raisesTypeErrorif invoked with an invalid argument type.The hashing function for OEResidue has been updated to work with multicharacter chain IDs.
OEBio TK
New Features
The following preliminary APIs have been added to serializing and deserializing interaction hints into
.oebfiles.The serialization API for interaction hints now supports OEDesignUnit directly. The following functions have new overloads accepting an
OEDesignUnit:The OEInteractionHintContainer class now supports a new constructor overload that accepts an
OEDesignUnit, assembling the receptor from the design unit components and the ligand (if present) automatically.Intramolecular interaction perception is now supported for a single component (either ligand or protein) by passing an empty molecule for the other component to the OEInteractionHintContainer constructor. For example, passing an empty molecule as the ligand argument will perceive only intramolecular interactions within the protein, and vice versa. This also applies when using the
OEDesignUnitconstructor overload: if a design unit has site residues but no ligand, intramolecular receptor interactions are perceived automatically.The following new predicates have been added for finer-grained filtering of interaction hints:
OEIsClashingHBondInteractionHint identifies clashing hydrogen bond interactions (i.e.,
OEHBondInteractionHintType::ClashAcceptorAcceptorandOEHBondInteractionHintType::ClashDonorDonortypes).OEIsUnpairedInteractionHint identifies all unpaired interactions, including unpaired hydrogen bond donors/acceptors and unpaired salt-bridge charges.
OEIsIntermolecularSaltBridgeInteractionHint identifies intermolecular (ligand-protein) salt-bridge interactions.
OEIsIntramolecularSaltBridgeInteractionHint identifies intramolecular salt-bridge interactions within the ligand or protein.
OEIsIntermolecularStackingInteractionHint identifies intermolecular (ligand-protein) pi- and T-stacking interactions.
OEIsIntramolecularStackingInteractionHint identifies intramolecular pi- and T-stacking interactions within the ligand or protein.
OEIsIntermolecularCationPiInteractionHint identifies intermolecular (ligand-protein) cation-pi interactions.
OEIsIntramolecularCationPiInteractionHint identifies intramolecular cation-pi interactions within the ligand or protein.
OEIsIntermolecularHalogenBondInteractionHint identifies intermolecular (ligand-protein) halogen bond interactions.
OEIsIntramolecularHalogenBondInteractionHint identifies intramolecular halogen bond interactions within the ligand or protein.
Intramolecular stacking and cation-pi interactions are now perceived and reported. The following new type constants have been added:
A new option has been added to OEPerceiveInteractionOptions to control the minimum stack offset required for a pi-stacking or T-stacking interaction to be reported:
The stack offset is defined as \(\max(|\hat{c}\cdot\hat{n}_1|, |\hat{c}\cdot\hat{n}_2|)\), where \(\hat{c}\) is the unit vector between the ring centers and \(\hat{n}_1\) and \(\hat{n}_2\) are the ring plane normals. This filter ensures that one ring sits above or below the other (i.e., a genuinely stacked arrangement) rather than side by side in the same plane. The default value is 0.5.
The following existing predicates have been updated to accept optional parameters that control whether intramolecular interactions and nonideal interactions are included in their results. All parameters default to
Trueto preserve backward-compatible behavior where interactions were previously returned without distinction:OEIsHBondInteractionHint — new constructor
OEIsHBondInteractionHint(bool includeIntra = true, bool includeNonIdeal = true)OEIsIntermolecularHBondInteractionHint — new constructor
OEIsIntermolecularHBondInteractionHint(bool includeNonIdeal = true)OEIsIntramolecularHBondInteractionHint — new constructor
OEIsIntramolecularHBondInteractionHint(bool includeNonIdeal = true)OEIsChelatorInteractionHint — new constructor
OEIsChelatorInteractionHint(bool includeIntra = true)OEIsSaltBridgeInteractionHint — new constructor
OEIsSaltBridgeInteractionHint(bool includeIntra = true)OEIsStackingInteractionHint — new constructor
OEIsStackingInteractionHint(bool includeIntra = true)OEIsCationPiInteractionHint — new constructor
OEIsCationPiInteractionHint(bool includeIntra = true)OEIsHalogenBondInteractionHint — new constructor
OEIsHalogenBondInteractionHint(bool includeIntra = true)
OEDesignUnit now supports an additional
SetSiteResiduesoverload that acceptsstd::vector<OEChem::OEResidue>. The method validates that residues are present in the target, supports ligand coverage checks throughthresholdandaddBox, supports optional component reassignment throughrearrangeComponents, and updates site-associated cofactors throughsiteSize.A new overload to the function
OEAssignRadiithat operates onOEDesignUnithas been added. The function takes a mask argument and radii types to assign specific radii to specified components.The
OEDesignUnitnow tracks the bond order of covalent bonds between components.The dictionaries used in
OEResidueCategoryDatahave been updated. Specifically, GCP has been added as a cofactor. In addition, polymers were reclassified based on how often they appear as a standalone in the wwPDB, so they can be targeted as ligands, or, if they appear frequently as part of larger complexes, they can be treated as cofactors.
Major Bug Fixes
An issue has been fixed where using OEAltLocationFactory with the
OEAltLocFactOption::TrustInputBondsoption could lead to incorrect perception of formal charges for atoms that had an atom with multiple alternative locations bonded to it instead of proper reassignment of the implicit hydrogen count first.The OEIsHBondInteractionHint predicate previously returned
truefor clashing hydrogen bond interactions (OEHBondInteractionHintType::ClashAcceptorAcceptorandOEHBondInteractionHintType::ClashDonorDonor) and for unpaired hydrogen bond interactions (OEHBondInteractionHintType::UnpairedLigandDonor,OEHBondInteractionHintType::UnpairedLigandAcceptor,OEHBondInteractionHintType::UnpairedProteinDonor, andOEHBondInteractionHintType::UnpairedProteinAcceptor). These interaction types are now excluded from OEIsHBondInteractionHint, as they represent geometrically unfavorable or unpaired contacts rather than genuine hydrogen bonds. Use the new OEIsClashingHBondInteractionHint predicate to retrieve clashing interactions, and the new OEIsUnpairedInteractionHint predicate for unpaired interactions (note:OEIsUnpairedInteractionHintalso returns unpaired salt-bridge interactions).Similarly, OEIsIntermolecularHBondInteractionHint no longer includes clashing types, and OEIsIntramolecularHBondInteractionHint no longer includes unpaired types.
The directionality of intramolecular hydrogen bond, salt bridge, and chelator interactions has been corrected:
Intramolecular hydrogen bond interactions now consistently report the donor as the begin fragment and the acceptor as the end fragment.
Intramolecular salt bridge interactions now consistently report the positive charge as the begin fragment and the negative charge as the end fragment.
Intramolecular chelator interactions now consistently report the metal as the begin fragment and the chelating atom as the end fragment.
The
OEPerceiveInteractionOptions::GetMaxAtomPairDistancehas been updated to also include the MaxUnpairedDistance in the calculation of the maximum atom pair distance.
Minor Bug Fixes
OEGetActiveSiteInteractionHintTypesno longer returns duplicate interaction hint types.An issue has been fixed where incorrect perception of stacking interactions would occur. The new feature mentioned above fixes this issue with an option to control the minimum stack offset required for a pi-stacking or T-stacking.
An issue has been fixed where chelators were incorrectly perceived because of a missing angular term.
An issue has been fixed where halogen interactions were incorrectly perceived because of a missing angular term.
An issue has been fixed where, in the
OEIsCTerminalAtomandOEIsNTerminalAtommethods, incorrect terminal atom identification could occur for nonstandard amino acid residues.
Python-Specific Changes
Python wrapping of
OEInteractionHintContainer::GetMoleculesmethods has been fixed.
OEDepict TK 2.7.0
New Features
Two new methods, GetOptimizeMacrocycles and SetOptimizeMacrocycles, have been added to OEPrepareDepictionOptions to enable enhanced algorithmic depiction of macrocycle rings.
OEDocking TK 4.3.5
Minor Bug Fixes
EON TK 3.1.3
New Features
Two new methods, GetJoinRef and SetJoinRef, have been added to OEEonPBOptions to enable
PBcalculation on complexes in OEEonPBFunc.
FastROCS TK 2.3.2
Minor internal improvements have been made.
GraphemeTM TK 1.5.5
New Features
The following preliminary APIs have been added for monomer and peptide depiction support.
Classes:
OEPeptideDisplayOptions— options for peptide depiction.OEHighlightMonomerDisplayOptions— options for monomer highlight depiction.OEMonomerColorDefault— default monomer color functor.OEMonomerColorMonochrome— monochrome monomer color functor.OEMonomerGlyphStyleBase— base class for monomer glyph style functor.OEMonomerGlyphStyleDefault— default monomer glyph style functor.OEMonomerGraphDisplayOptions— options for monomer graph depiction.
Functions:
OEDrawMonomer— draws a monomer image.OEDrawMonomerGraph— draws a monomer graph of a peptide.OEHighlightMonomers— highlights monomers in a peptide depiction.
The
OERenderActiveSitefunction now displays a counter on the top of the T- and pi-stacking interaction lines if multiple interactions exist between the aromatic ring of the ligand and the aromatic ring of a specific residue.
Figure 1. Example of visualizing multiple stacking interactions (PDB:4TX6).
The following APIs have been added to allow customization of ligand alignment in protein–ligand interaction depictions:
default ligand orientation |
ligand aligned to reference substructure |
Minor Bug Fixes
The
OEDrawResiduesfunction now depicts molecules with up to 300 heavy atoms.
GraphSim TK 2.7.1
Minor Bug Fixes
The hydrogen counts of neighbor atoms when R-groups are removed prior to fingerprint generation have been adjusted.
Lexichem TK 2.9.5
Minor internal improvements have been made.
OEMedChem TK 1.2.6
New Features
A new overload of the OECreateIDStrings function has been added to enable speeding up BROOD hit list clustering when working with multiquery replacements.
MolProp TK 2.7.0
Minor Bug Fixes
The SMARTS pattern of the halo_amine functional group has been fixed.
OEFF TK 2.9.2
Minor Bug Fixes
The OEQuatAdaptor now passes the coordinates to the internal OEMolFunc when appropriate.
Omega TK 7.0.0
New Features
The following changes have been made to extend Thompson sampling usage for torsion driving in OEOmega:
The Thompson sampling algorithm for torsion driving has been improved for robustness and speed.
The default value for SetUseThompson in OETorDriveOptions has been changed to
True.The SetUseThompson is honored even when SetUseGPU is set to
True.The preliminary API class
OEThompsonOptionshas been removed, as it is no longer relevant.
The default energy window for torsion driving in Classic mode has been changed to a range-based value to better suit OMEGA with Thompson sampling. Similarly, the energy range for the Pose mode has also been adjusted.
Minor Bug Fixes
OEMolBuilder now respects the MaxEnumConfs provided in the OEMolBuilderOptions even when an input molecule has more conformers than specified.
Certain edge cases where the torsion driving algorithm would fail with a FailedTorDrive error message have been addressed.
Quacpac TK 2.3.0
Minor internal improvements have been made.
Saiph TK 1.0.1
Python-Specific Changes
The following APIs are now properly wrapped in Python:
Shape TK 3.10.0
New Features
When using the Overlay method in OEOverlay for overlay optimization, any of the inertial start methods now automatically trigger an additional as-is start if the optimization results in similarity measures less than the original similarity. This improves the default behavior of Overlay for some calculations.
The following modifications have been made to OEOverlapPrepOptions to provide more flexibility in assigning color atoms during the Prep process in OEOverlapPrep:
Two new methods, SetRemoveColor and GetRemoveColor, have been added to enable removal or reassignment of color atoms.
The new methods AddDuplicateSmarts, GetDuplicateSmarts, and ClearDuplicateSmarts have been added to enable duplicate color atom removal based on provided SMARTS patterns.
Duplicate color atom removal is now more robust in keeping the central atoms instead of the first atom that it encounters and in placing the remaining atoms appropriately (at the center of corresponding clusters).
Defaults for SetRemoveDuplicate and SetDuplicateDistance have been changed from
Falseand 0.001 toTrueand 0.0, respectively. This improves robustness but keeps the default behavior unchanged.
A new method, SetupFrame, has been added to OEStarts that simplifies setting up a reference frame for calculating the starts.
Minor Bug Fixes
The overlay optimization in OEHermiteOverlay with the OEAsIsStarts start option has been updated to use Hermite expansions around the center of mass to prevent inconsistent overlaps when objects are far from the origin.
Overlay optimization with the Overlay method in OEOverlay now captures the fit conformer self-overlap and color scores more accurately during the optimization.
SiteHopper TK 2.1.4
Minor internal improvements have been made.
Spicoli TK 1.6.4
Minor internal improvements have been made.
Spruce TK 1.9.0
New Features
The maximum cluster size for partial residues built using OEBuildSidechains can now be set in OESidechainBuilderOptions using SetMaxClusterSize.
The chemical component dictionary has been updated. However, if using mmCIF, the metadata will be used as primary information and the dictionary only engages if metadata is unavailable.
Minor Bug Fixes
An issue has been fixed in the routine to reassign ambiguous water and metals from packing residues to the protein chain of interest. The issue caused HEME analogs and connected amino acids to be soaked into a given chain ID.
An issue has been fixed to allow
OEHeterogenMetadatato inform the component splitter during design unit generation and preparation. This also fixes an issue where the splitter would not allow reclassification of a metal ion to an excipient.An issue has been fixed that caused the option to collapse redundant alternate locations to improperly engage if there were multiple binding sites in a protein.
An issue has been fixed that caused the option to collapse redundant alternate locations to improperly engage for different ligands in the same binding site.
An issue has been fixed that caused
OEMutateResiduesto incorrectly leave the backbone nitrogen of a residue in a bad valence state when mutating from Proline.An issue has been fixed in
OEBuildSidechainswith the shell mutation option turned on that would leave side chains clashing with water molecules. The water molecules are now removed if the option to allow for removal of clashing waters is set toTrue.
Szmap TK 1.7.4
Minor internal improvements have been made.
Szybki TK 2.9.2
Minor internal improvements have been made.
Zap TK 2.5.3
Major Bug Fixes
Salt concentration implementation in Zap TK has been corrected and made robust at higher salt concentrations.
As a result of the salt concentration improvement, the rotational variation of Zap solvation energy at high salt concentrations has been substantially reduced.