Skip to content

Update dependency rdkit to v2026 - #61

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/rdkit-2026.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/rdkit-2026.x

Conversation

@renovate

@renovate renovate Bot commented Sep 23, 2026

Copy link
Copy Markdown

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
rdkit (source) major 2024.09.6 → 2026.03.6

Release Notes

rdkit/rdkit (rdkit)

v2026.03.1

(Changes relative to Release_2025.09.1)

Acknowledgements

(Note: I'm no longer attempting to manually curate names. If you would like to
see your contribution acknowledged with your name, please set your name in
GitHub)

Jakub Adamczyk, Rody Arantes, Kevin Boyd, Jessica Braun, Katharina Buchthal,
Jackson Burns, Chi Cheng, David Cosgrove, Andrew Dirksen, Sergey Fedorov, Justin
Gullingsrud, Tad Hurst, Lauriane Jacot-Descombes, Gareth Jones, Eisuke
Kawashima, Brian Kelley, Joos Kiener, Jimmy Kromann, Phong Lam, Niels Maeder,
Josh A. Mitchell, Dan Nealschneider, Yakov Pechersky, Patrick Penner, Paul
Pillot, Rachael Pirie, Eliot Ragueneau, Max Rietmann, Pat Riley, Ricardo
Rodriguez, Lukas Sigmund, Anton Siomchen, Raul Sofia, Matt Swain, Paolo Tosco,
Ivan Tubert-Brohman, Philip Ullmann, Chris Von Bargen, Rachel Walker, Nic Zonta,
空酱, dkranthi221, EvaSnow, Pavel, stephenting22, Paul, paconius, spparel,
wszqkzqk, Diogo, dehaenw

Highlights

  • A significant number of known SMILES canonicalization problems were resolved.
  • It's now possible to provide your own matching functions to supplement or
    replace the defaults when doing substructure matching.
  • An experimental new implementation of shape-based alignment using Gaussians.
  • Improvements to the molecular templates for 2D depiction and handling of
    macrocycles in the templates.

Backwards incompatible changes:

  • The Dict class (and therefore all the properties interfaces) has been updated
    to std::string_view keys. This is transparent to the Python interfaces,
    but some C++ class might have to be updated.
  • Simple AND queries are now merged into atoms. E.g. [C&+] now produces the
    the same result as [C+] when parsed as SMARTS.
  • Molecules which do not have potential chiral centers or stereobonds will no
    longer have the "_CIPRank" atom property set by default. If you want to
    force the calculation of pseudo-CIP ranks, you can call
    Chem.ComputeAtomCIPRanks(). Note that if you just want a symmetry-aware
    canonical ranking of the atoms in a molecule, it is more efficient to use
    Chem.CanonicalRankAtoms(mol, breakTies=False).
  • The behavior of H removal has changed slightly: hydrides will no longer removed
    by default, as this changes the global charge of the mol.
  • MolToSmarts() no longer adds implicit hydrogens to atoms without queries. The
    one exception to this is for chiral atoms, which will still have an implicit H
    added if present.
  • Molecules no longer have a __computedProps property by default. The property
    is added whenever it's needed. The property is considered private (as
    indicated by the leading underscores) and shouldn't be used in client code,
    but if your code relies on its presence in molecules, you may need to check
    for it and add it yourself.
  • RWMol::addBond() no longer removes RingInfo from the molecule, but it does
    clear the property cache of the begin and end atoms. This does not affect the
    general rule that molecules should be sanitized after adding/removing bonds.
  • The algorithm to canonicalize double bonds in SMILES output has changed to
    address a potential issue that could alter stereo. As a result, SMILES of
    mols contaning stereo bonds may have changed.
  • The Query infrastructure now uses std::function instead of function pointers
    for the DataFunc and MatchFunc. This does not affect Python.
  • The results of the Kekulize() function are now, by default, no longer
    dependent on atom/bond ordering in the molecule. Additionally, the C++ API for
    MolOps::Kekulize(), MolOps::KekulizeIfPossible() and
    MolOps::KekulizeFragment() has been changed: these all now accept an
    optional argument toggling the canonical Kekulization.

New Features and Enhancements:

  • MolFromSmiles scales quadratically with chain length
    (github issue #​8776 from i-tub)
  • Add extract mol fragment api
    (github pull #​8811 from bp-kelley)
  • Allow Multiple Core Hits in the Same Molecule in RGroupDecomposition
    (github pull #​8813 from DavidACosgrove)
  • Merge simple AND queries onto atoms.
    (github pull #​8830 from ricrogz)
  • Implement a mechanism to patch .pyi files as proposed in #​8749
    (github pull #​8835 from ptosco)
  • allow default radii in the DCLV calculation
    (github pull #​8836 from greglandrum)
  • Address #​8840 by implementing dpi parameter in PandasTools.SaveXlsxFromFrame()
    (github pull #​8841 from ptosco)
  • Add safeSetattr to more params / options objects
    (github pull #​8842 from nmaeder)
  • add Reaction From Smiles python wrapper
    (github pull #​8843 from RPirie96)
  • Incremental synthon search
    (github pull #​8855 from jgullingsrud)
  • Use properties in the MolDrawOptions python wrappers to make setting/getting colours easier
    (github pull #​8857 from greglandrum)
  • Minor docstring tweak.
    (github pull #​8860 from DavidACosgrove)
  • Move some fields and methods from AtomPDBResidueInfo to base class
    (github pull #​8863 from rachelnwalker)
  • set up performance benchmarks
    (github pull #​8865 from bddap)
  • [CONTRIB]: Freewilson now keeps the coordinates passed in
    (github pull #​8868 from bp-kelley)
  • add more benchmarking
    (github pull #​8878 from bddap)
  • Improve DetermineBonds and DetermineBondOrders performance
    (github pull #​8888 from ChiCheng45)
  • added new attributes for scsr template as per BIOVIA doc 2023
    (github pull #​8911 from tadhurst-cdd)
  • Allow using generators for similarity maps
    (github pull #​8912 from greglandrum)
  • Return original molecule from StereoisomerEnumerator when no unspecified stereocenters are available
    (github pull #​8924 from phonglam3103)
  • Add function to compute shape scores without overlay.
    (github pull #​8950 from DavidACosgrove)
  • expose Bond::invertChirality() to Python
    (github pull #​8951 from paconius)
  • Add a couple of utility functions for working with flat matrices
    (github pull #​8955 from nmaeder)
  • Add test to watch the state of canonicalization problems reported in #​8775
    (github pull #​8958 from ricrogz)
  • Allow Hs to be ignored in the RMSD alignment functions
    (github pull #​8976 from greglandrum)
  • Embed Parameters to JSON
    (github pull #​8977 from nmaeder)
  • Allow spaces and special chars in SCSR fullname attrs
    (github pull #​8982 from tadhurst-cdd)
  • Allow H removal to be skipped in ShowFeats.py
    (github pull #​8986 from greglandrum)
  • some optimizations of AlignPoints()
    (github pull #​8987 from greglandrum)
  • Allow adding custom atom and bond matcher functions for substructure searching
    (github pull #​8994 from greglandrum)
  • Support serializing/deserializing FP generators to JSON
    (github pull #​9000 from greglandrum)
  • Stop writing so many atom properties to cxsmiles
    (github pull #​9002 from greglandrum)
  • Performance improvement: Implement buffered reading for SDMolSupplier
    (github pull #​9010 from RaulSofia)
  • Allow molzip to position fragments when joining them
    (github pull #​9021 from greglandrum)
  • Improve POPCNT optimization flag handling to build on other arches like riscv64 and loong64
    (github pull #​9029 from wszqkzqk)
  • Read SD property names till the last '>'
    (github pull #​9047 from ricrogz)
  • cleanup of stereogroups and wedges for non-chiral sites
    (github pull #​9051 from tadhurst-cdd)
  • Store CIP-ranked anchors after CIP labeling.
    (github pull #​9056 from ricrogz)
  • Gaussian shape overlays
    (github pull #​9095 from DavidACosgrove)
  • Exclude Zero order bonds from FindRingFamilies() and add arguments for includeDativeBonds, includeHydrogenBonds
    (github pull #​9118 from ricrogz)
  • Deterministic kekulize, independent of atom and bond order
    (github pull #​9125 from pechersky)
  • Add explicit operator= and copy c'tors to Transform3D and its base classes.
    (github pull #​9133 from DavidACosgrove)
  • Add RDLog::CaptureLog for capturing log messages
    (github pull #​9138 from cdvonbargen)
  • Add MolFromInchiAndAuxInfo to restore original atom order from AuxInfo
    (github pull #​9158 from rodyarantes)
  • Accept non-kekulisable molecules in drawMols3D.
    (github pull #​9167 from DavidACosgrove)
  • Follow up to PR #​8968
    (github pull #​9168 from ricrogz)
  • Add 'k' extension to SMARTS to support ringsize queries
    (github pull #​9172 from greglandrum)
  • Support double* in Transform3D::TransformPoint
    (github pull #​9176 from DavidACosgrove)
  • Switch to using SMARTS for 2D depiction templates
    (github pull #​9179 from ZontaNicola)
  • Adjust lower bounds to allow intramolecular H-Bonds
    (github pull #​9188 from kabu00002)
  • [bot] Update molecular templates header file
    (github pull #​9193 from github-actions[bot])
  • useChirality support in MinimalLib (RDKit.js) on mol.get_substruct_matches
    (github pull #​9197 from ptosco)
  • simple substructure search optimization
    (github pull #​9201 from greglandrum)
  • Enable templating for macrocycles
    (github pull #​9203 from ZontaNicola)
  • [bot] Update molecular templates header file
    (github pull #​9205 from github-actions[bot])

Documentation:

  • Extra documentation for EnumerateLibraries
    (github pull #​8909 from DavidACosgrove)
  • Update installation instructions for building RDKit from source for macOS
    (github pull #​8928 from phonglam3103)
  • Fixed Typo in Getting Started Docs
    (github pull #​8947 from PatrickPenner)
  • Update deprecation messages for valence methods
    (github pull #​9050 from philipullmann)
  • fix the python docs for CanonicalRankAtomsInFragment
    (github pull #​9087 from greglandrum)
  • Confusing Deprecation Warning regarding GetImplicitValence
    (github issue #​9117 from kienerj)
  • Update The SSSR Problem GetSSSR Documentation
    (github pull #​9121 from JacksonBurns)

Bug Fixes:

  • rdShapeAlign is sensitive to starting conformation
    (github issue #​8513 from priley-vv)
  • Hydrides in organometallics removed when parsing
    (github issue #​8726 from spparel)
  • CSharp wrapper fails to build on Linux
    (github issue #​8801 from jones-gareth)
  • Setting maxAttempts vs maxIterations in EmbedMolecule
    (github issue #​8807 from j-adamczyk)
  • Allowed list atoms should be read as dummy atoms
    (github issue #​8820 from cdvonbargen)
  • Aromaticity perception with list queries depends on ordering of atoms
    (github issue #​8823 from greglandrum)
  • Install expat lib in static builds
    (github pull #​8832 from ricrogz)
  • Allow labeled atoms to have working queries
    (github pull #​8849 from bp-kelley)
  • A fix and some refactoring for substructure highlighting in notebooks
    (github pull #​8851 from greglandrum)
  • use bond labels in the ranking in MolFragmentToSmiles
    (github pull #​8861 from greglandrum)
  • Multiple absolute stereo groups shouldn't be allowed on a single mol
    (github issue #​8873 from rachelnwalker)
  • Calling atom.SetQuery(None) segfaults
    (github issue #​8877 from bp-kelley)
  • Whitespace mangled in GetPropsAsDict()
    (github issue #​8890 from Yoshanuikabundi)
  • Partial fix to a problem with implicit Hs being written to SMARTS
    (github pull #​8893 from greglandrum)
  • Unrecognized attachment points in synthon library results in broken molecules
    (github issue #​8898 from jgullingsrud)
  • Change docs in Python EmbedMultipleConfs.
    (github pull #​8900 from DavidACosgrove)
  • CXSmiles strips away isotopes
    (github issue #​8906 from bp-kelley)
  • Atom properties as SDF file data break if the array is too long
    (github issue #​8918 from bp-kelley)
  • Unable to build any rdkit >= 2025.3.6, when RDK_BUILD_DESCRIPTORS3D=OFF
    (github issue #​8922 from asiomchen)
  • Ignore whitespace when patching RapidJSON
    (github pull #​8927 from ricrogz)
  • Fixes a bug with chirality perception of T-shaped centers in very large rings
    (github pull #​8930 from greglandrum)
  • Fixes for nontetrahedral stereo parsing from SMILES/SMARTS
    (github pull #​8932 from greglandrum)
  • Allow abbreviations without XBonds
    (github pull #​8933 from greglandrum)
  • SVG exports of bicolor solid wedge bound not working with stroke-width
    (github issue #​8936 from EliotRagueneau)
  • Handle chiral atoms with 2 hydrogens in SCSR parser
    (github pull #​8939 from tadhurst-cdd)
  • Fix potential iterator invalidation
    (github pull #​8944 from rietmann-nv)
  • N#N=O and O=N#N parse to different mol
    (github issue #​8945 from dehaenw)
  • Valence error when parsing SCSR
    (github pull #​8948 from tadhurst-cdd)
  • Modern stereo perception: Smiles stereochemistry inversion at rings
    (github issue #​8956 from d-b-w)
  • Small fix in ring stereo/canonicalization
    (github pull #​8962 from ricrogz)
  • Stereo bond inversion in SMILES Writer canonicalization
    (github issue #​8965 from ricrogz)
  • stop ignoring confId in CalcMolDescriptors3D()
    (github pull #​8967 from greglandrum)
  • Valence error in scsr temlates for nitro and metal complexes
    (github pull #​8969 from tadhurst-cdd)
  • Atropisomer bond is found in N-S(=O)C system
    (github issue #​8973 from pechersky)
  • Incorrect hydrogen bond acceptor count for N-heterocycles
    (github issue #​8997 from stephenting22)
  • SynthonSpace Substructure search misses some hits
    (github issue #​9007 from DavidACosgrove)
  • SynthonSpace Substructure search misses a hit - Mk2
    (github issue #​9009 from DavidACosgrove)
  • SDMolSupplier enters an infinite loop if number of SGroups is incorrect
    (github issue #​9014 from ricrogz)
  • Invalid sulfonamide SMARTS in FragmentDescriptors.csv
    (github issue #​9018 from scal444)
  • Hs labeled implicit or explicit depending on presence of 3D conformer. Chem.RemoveHs differs from MolFromMolBlock removeHs
    (github issue #​9020 from diogomart)
  • Tversky for zero prototype string with alpha=1 and beta=0 returns incorrect output
    (github issue #​9033 from DrrDom)
  • SIGSEGV in rdFMCS.FindMCS when params.StoreAll = True
    (github issue #​9034 from kuzp)
  • BestAlignmentParams does not compile on macos due to clang issues
    (github issue #​9041 from pechersky)
  • CXSMILES: do not add separators for unserializable Substance Groups
    (github pull #​9048 from ricrogz)
  • Prevent CIP labels of bonds from being calculated twice.
    (github pull #​9052 from ricrogz)
  • added FABS to test for issue #​4364
    (github pull #​9053 from tadhurst-cdd)
  • Fix removing (non)redundant bond dir specs when exporting SMILES
    (github pull #​9066 from ricrogz)
  • Get things working with numpy 2.4 and pandas 3.0
    (github pull #​9072 from greglandrum)
  • Chemdraw build fails on Big-endian: cs_swapBytes.h: error: parse error in template argument list
    (github issue #​9077 from barracuda156)
  • Another canonicalization fix
    (github pull #​9082 from ricrogz)
  • CopyMolSubset silently rewires bonds when bondIndices reference atoms not in atomIndices
    (github issue #​9084 from mcs07)
  • CopyMolSubset ignores bondIndices when all atoms are included
    (github issue #​9088 from mcs07)
  • Fix SMARTS for the strict definition of rotatable bonds
    (github pull #​9096 from brje01)
  • SDMolSupplier length/indexing regression in 2025.09.5 when "$$$$\n" crosses 64KiB chunk boundary
    (github issue #​9101 from kongexp)
  • Cannot build JS bindings with MCS option enabled.
    (github pull #​9110 from papillot)
  • DetermineBonds fails for thiolate
    (github issue #​9114 from LaurianeJD)
  • when shifting double bonds in tautomerization, set double bond stereo to STEREOANY
    (github pull #​9119 from pechersky)
  • Fix link failure on macOS caused by AGL framework injection in Qt
    (github pull #​9139 from cdvonbargen)
  • Pyrrole molblock with explicit H is not read due to kekulization error
    (github issue #​9140 from pechersky)
  • ETKDGv3 generating 90 degree twisted amides
    (github issue #​9143 from dkranthi221)
  • PR #​9082 breaks MolFragmentToSmarts()
    (github issue #​9144 from ricrogz)
  • PandasTools.SaveXlsxFromFrame is ignoring the remaining data in the dataframe when writing the .xlsx file
    (github issue #​9151 from lmsigmund)
  • DistGeom: disulfide pattern matches non-disulfide S-S (e.g., disulfite)
    (github issue #​9165 from kabu00002)
  • DistGeom: bounds get overwritten
    (github issue #​9166 from kabu00002)
  • Fix typo in _calculateBeta: check nb1 instead of nb2 twice
    (github pull #​9202 from evasnow1992)

Cleanup work:

  • style: apply readability-braces-around-statements
    (github pull #​8136 from e-kwsm)
  • Change extern types to static consts
    (github pull #​8765 from cdvonbargen)
  • run clang-tidy and clang-format on the chemdraw files
    (github pull #​8837 from greglandrum)
  • Use std::string_view for property keys
    (github pull #​8844 from ricrogz)
  • Refactor iostreams includes
    (github pull #​8846 from ricrogz)
  • Minor refactor of the python wrappers
    (github pull #​8847 from ricrogz)
  • Propagate using string_view as property names
    (github pull #​8858 from ricrogz)
  • Switch from using RapidJSON to Boost::JSON for MolInterchange
    (github pull #​8859 from greglandrum)
  • Do not add explicit Hs in assignChiralTypesFromMolParity
    (github pull #​8872 from ricrogz)
  • make Point2D and Point3D constexpr
    (github pull #​8882 from greglandrum)
  • Fix for issue with deprecated boost functions for MacOS build from source
    (github pull #​8929 from RPirie96)
  • Do not add a __computedProps property to molecules when initializing them
    (github pull #​8931 from greglandrum)
  • Do not reset the ringInfo information when adding bonds to RWMol
    (github pull #​8934 from greglandrum)
  • A bunch of modernization of the ShapeHelpers code
    (github pull #​8954 from greglandrum)
  • Minor clean up in SMILES Writing double bond canonicalization
    (github pull #​8971 from ricrogz)
  • Refactor atomVisitOrders and bondVisitOrders in SMILES Writer canonicalization
    (github pull #​8972 from ricrogz)
  • Convert graphmolMolOpsTest to catch2
    (github pull #​8978 from ricrogz)
  • Stop using raw pointers in the canonicalization interface
    (github pull #​8990 from greglandrum)
  • Some more cleaning up in SMILES Writing
    (github pull #​8991 from ricrogz)
  • Converts testSubgraph2 to catch
    (github pull #​9003 from ricrogz)
  • Convert smiTest1 to catch
    (github pull #​9004 from ricrogz)
  • Last leak fixes for 2025!
    (github pull #​9006 from ricrogz)
  • move molzip to its own file
    (github pull #​9013 from greglandrum)
  • Convert testMolSupplier to catch2
    (github pull #​9015 from ricrogz)
  • Fix deprecated literal operators and macro redefinition warnings for modern compilers
    (github pull #​9055 from cdvonbargen)
  • Move some more tests over to catch2
    (github pull #​9058 from greglandrum)
  • Transform::SetRotationFromQuaternion takes const.
    (github pull #​9063 from DavidACosgrove)
  • The precondition in Bond::getOtherAtomIdx() is redundant
    (github pull #​9092 from ricrogz)
  • Modernize loops and clean up ring finding
    (github pull #​9098 from ricrogz)
  • Further refactoring in SSSR finding
    (github pull #​9104 from ricrogz)
  • Hide data representation inside RDKit::Dict
    (github pull #​9113 from bddap)
  • Fix some minor annoyances in Python tests
    (github pull #​9132 from ricrogz)
  • Small refactor before PR #​8968 follow up
    (github pull #​9135 from ricrogz)
  • Add suppresions for AppleClang and ChemDraw
    (github pull #​9147 from bp-kelley)
  • More refactoring in Canon.cpp
    (github pull #​9155 from ricrogz)
  • switch the Query infrastructure to use std::function instead of function pointers
    (github pull #​9169 from greglandrum)
  • Leak fixes for 2026.03.1
    (github pull #​9198 from ricrogz)

Code removed in this release:

Deprecated code (to be removed in a future release):

  • The version of hanoiSort() that takes raw pointers has been deprecated. Please use
    the version that takes std::span and std::vector.
  • Chirality::StereoInfo::NOATOM (C++) and Chem.StereoInfo.NOATOM (Python) have
    been deprecated in favor of Atom::NOATOM and Chem.Atom.NOATOM.

v2025.09.1

(Changes relative to Release_2025.03.1)

Acknowledgements

(Note: I'm no longer attempting to manually curate names. If you would like to
see your contribution acknowledged with your name, please set your name in
GitHub)

Jakub Adamczyk, Chris Von Bargen, Jason Biggs, Joshua Black, J.B. Brown, Anna
Brünisholz, Kevin Boyd, Filip Chmielewski, Michael Cho, Brian Cole, David
Cosgrove, Nia Dickson, Maria Dolotova, Genevieve Evans, Hussein Faara, Eloy
Félix, Peter Gedeck, Noah Herrington, Tad Hurst, Eisuke Kawashima, Kevin
Keating, Brian Kelley, Jakub Klinkovský, Patrick Kunzmann, Niels Maeder, Mark
Mackey, Jeremy Monat, Dan Nealschneider, Axel Pahl, Yakov Pechersky, Rachael
Pirie, Shashir Reddy, Vandan Revanur, Ricardo Rodriguez, Eric Taw, Paul
Thiessen, Caleb Thomas, Paolo Tosco, Inwan Yoo, badisa, dehaenw, dpdoughe,
getuem, InvincibleZZH, jdavies-nurix, Kacper-Kozubowski, paconius, rwalroth,
Saul, Stephen, yuri@​FreeBSD

Highlights

  • We have added a parser for the self-contained sequence representation (SCSR) file format.
  • There is an updated parser for the CDXML file format and a new parser for CDX files
  • Multiple improvements to the shape-based alignment code have been made.

Backwards incompatible changes:

  • atom maps on dummy atoms are now always used in the calculation of canonical
    atom ranks.
  • 2D coordinate generation may produce different results for some molecules due
    to a change in the way the atom ordering is computed in the depiction code.
  • The includeRingMembership argument to GetMorganAtomInvGen() is now mandatory.
    Previously, the default value was False.
  • Default ET-version in ForceFields::CrystalFF::getExperimentalTorsions() is
    changed from 1 to 2.

New Features and Enhancements:

  • switch to C++20
    (github pull #​8039 from greglandrum)
  • Add SCSR parsing to RDKit
    (github pull #​8147 from tadhurst-cdd)
  • support clearPropertyCache() on ROMol and Atom
    (github issue #​8241 from greglandrum)
  • Speed up GetProp Python keyerrors
    (github pull #​8372 from d-b-w)
  • Expose reading/writing PNG metadata to CFFI and MinimalLib
    (github pull #​8381 from ptosco)
  • add property to indicate when a CIP calculation has been done
    (github issue #​8396 from greglandrum)
  • Bump MaeParser version to 1.3.2
    (github pull #​8404 from ptosco)
  • Moving towards getting all tests to pass when using the new stereo code
    (github pull #​8409 from greglandrum)
  • Enable the chiral flag on enumerated isomers
    (github pull #​8410 from ricrogz)
  • Change default ETversion.
    (github pull #​8414 from DavidACosgrove)
  • Support pickling Shape inputs
    (github pull #​8434 from DavidACosgrove)
  • add function to overwrite setattr to only accept valid arguments
    (github pull #​8448 from nmaeder)
  • ShapeInput from subset of atoms in molecule
    (github pull #​8449 from DavidACosgrove)
  • add StereoGroup.getBonds() to Python wrapper
    (github pull #​8451 from greglandrum)
  • add quick H-H bond removal to connectTheDots
    (github pull #​8452 from greglandrum)
  • Protect Python DrawOptions from bad attributes.
    (github pull #​8453 from DavidACosgrove)
  • Add a custom CXSMILES feature to indicate Zero Order Bonds
    (github pull #​8454 from ricrogz)
  • Add the safeSetattr to the rdMolFiles param objects
    (github pull #​8457 from nmaeder)
  • Method to remove enhanced stereo from an atom
    (github issue #​8467 from jdavies-nurix)
  • Add Synthon space hit filters
    (github pull #​8473 from DavidACosgrove)
  • Set default Eigen3 version to 3.4.0
    (github pull #​8477 from pechersky)
  • A couple optimizations to when the ring finding code is called
    (github pull #​8482 from greglandrum)
  • Allow single/double bonds to match aromatic in substructure search
    (github issue #​8485 from PaulThiessen)
  • improve operator<< for stereogroups
    (github pull #​8489 from greglandrum)
  • Print the version of InChI software being supported in RDKIt
    (github issue #​8508 from glevans)
  • Explain DrawArrow and rawCoords=True
    (github pull #​8517 from bertiewooster)
  • add support for allene- and cumulene-like structures to KDG
    (github pull #​8518 from greglandrum)
  • allow limiting the number of stereo groups to process
    (github pull #​8541 from tadhurst-cdd)
  • Replace incorrect Freetype cmake flags with correct ones
    (github pull #​8543 from ptosco)
  • Add missing default values to docker-compose configuration
    (github pull #​8544 from ptosco)
  • Avoid a large number of warnings when building MinimalLib with emscripten
    (github pull #​8545 from ptosco)
  • Add a "time out" to determineBondOrders
    (github pull #​8548 from ricrogz)
  • rdkit-targets.cmake now uses cmake package names for external libraries instead of absolute paths
    (github pull #​8552 from KevKeating)
  • Support Ctrl+C in determineBondOrders
    (github pull #​8557 from ricrogz)
  • Cpp enumerate stereoisomers
    (github pull #​8563 from DavidACosgrove)
  • Bump maeparser to 1.3.3 (fixes #​8525)
    (github pull #​8580 from ricrogz)
  • CIP labeler: attempt to resolve "easy" stereo centers first
    (github pull #​8582 from ricrogz)
  • Allow creation of bond-only stereogroups from Python
    (github issue #​8584 from paconius)
  • Make assignCIPLabels Ctrl+c interruptable
    (github pull #​8589 from ricrogz)
  • Expose the onlyWedgeFlags parameter to SWIG ClearSingleBondDirFlags
    (github pull #​8600 from ptosco)
  • Add option to draw all CIP codes in DrawMol.cpp
    (github pull #​8609 from paconius)
  • Update SMARTS parsing syntax error to include bad token position
    (github issue #​8612 from whosayn)
  • ChemDraw Document and read/write support for the RDKit
    (github pull #​8620 from bp-kelley)
  • Expose CDX support to FileParsers and ChemDraw to SWIG
    (github pull #​8681 from bp-kelley)
  • Add the useRingTemplates option to generateDepictionMatching2DStructure
    (github pull #​8688 from ricrogz)
  • Assign COST=100 to PgSQL functions during CREATE FUNCTION rather than leaving unspecified
    (github issue #​8711 from dpdoughe)
  • DCLV updates
    (github pull #​8756 from RPirie96)
  • Document Options in RGroupDcompose and other minor docs fixes
    (github pull #​8757 from badisa)
  • Fix non matchine if(x) end(x) statement
    (github pull #​8769 from bp-kelley)
  • support bond property lists in SDF
    (github pull #​8778 from greglandrum)
  • Implement new drawingExtentsInclude MolDrawOption
    (github pull #​8783 from ptosco)
  • Render all ROMol objects as images during export using PandasTools.SaveXlsxFromFrame
    (github issue #​8793 from NoahHerrington)
  • update default ET version to 2 in getExperimentalTorsions
    (github pull #​8798 from nmaeder)
  • allow custom shape points
    (github pull #​8799 from greglandrum)
  • Stop External/rapidjson-1.1.0 and Code/RDGeneral going to ${CMAKE_SOURCE_DIR}
    (github issue #​8809 from jblack-mestre)
  • Return draw coords
    (github pull #​8815 from ptosco)
  • Patch RapidJSON to make sure it builds on all platforms
    (github pull #​8818 from ptosco)

Bug Fixes:

  • MHFP package error: all Bulk functions fail to execute in Python
    (github issue #​3102 from stewu5)
  • Can't roundtrip CHEMBL4080644 through SMILES
    (github issue #​5078 from greglandrum)
  • SMILES canonicalization not idempotent
    (github issue #​5124 from getuem)
  • GetAtomConjGrpIdx documentation indicates it returns a signed int, but actually returns unsigned int
    (github issue #​7112 from rwalroth)
  • GETAWAY descriptors seem nondeterministic
    (github issue #​7264 from j-adamczyk)
  • Possible Off-by-One Bug in the ERG Implementation
    (github issue #​8201 from apahl)
  • order dependence in tautomer hash
    (github issue #​8205 from greglandrum)
  • Multithreaded mol reader can hang when not iterating through the whole file
    (github issue #​8284 from bp-kelley)
  • Chem.MolToSmiles: rootedAtAtom option not working properly with multiple fragments
    (github issue #​8327 from iwyoo)
  • RWMol::insertMol does not update _ringStereoOtherAtom
    (github issue #​8379 from greglandrum)
  • Fix SynthonSpace build when RDK_USE_BOOST_SERIALIZATION is not defined
    (github pull #​8380 from ptosco)
  • add correct export to SynthonSpace.h
    (github pull #​8399 from greglandrum)
  • Do not free sslib until patternFpArray is still needed by the test
    (github pull #​8407 from ptosco)
  • Avoid a segfault in CoordGen when a double bond has stereo spec but no stereo atoms
    (github pull #​8415 from ptosco)
  • Overwrite end of array in PubChemShape.cpp
    (github issue #​8416 from DavidACosgrove)
  • PR #​8366 triggers range errors on imines with new stereo perception
    (github issue #​8420 from ricrogz)
  • Inconsistent SMARTS representation for stereochemical aromatic bonds
    (github issue #​8424 from iwyoo)
  • update_pains.py script does not check for pains_c.in file existence
    (github issue #​8430 from IridiumOxide)
  • fix a logic error in needsHs
    (github pull #​8442 from greglandrum)
  • Pubchem Shape: make sure cutoff is set
    (github pull #​8446 from DavidACosgrove)
  • MolToJSON doesn't handle atropisomers
    (github issue #​8460 from paconius)
  • In pubchem-shape, overlaying onto a shape does an incorrect final translation
    (github issue #​8462 from DavidACosgrove)
  • Postgres Cartridge Equality Shouldn't use coordinates
    (github issue #​8465 from paconius)
  • MolFromSmiles and MolFromSmarts accept strings containing invalid characters if they start with a valid character
    (github issue #​8471 from jasondbiggs)
  • Build failure with GCC 15
    (github issue #​8491 from lahwaacz)
  • TautomerQuery drops queries for some atoms
    (github issue #​8492 from ricrogz)
  • rdkit/rdkit/Chem/Features /ShowFeats.py TypeError: not all arguments converted during string formatting
    (github issue #​8501 from InvincibleZZH)
  • Synthon space substructure search failing for simple search
    (github issue #​8502 from greglandrum)
  • Fix arrowhead8500
    (github pull #​8504 from DavidACosgrove)
  • Invalid read in moldraw2DTestCatch
    (github issue #​8520 from ricrogz)
  • Issue reading .mae files
    (github issue #​8525 from mark-mackey-cresset)
  • Chem.GetMolFrags Destroys Stereogroups containing only bonds
    (github issue #​8527 from paconius)
  • Mol.GetDoubleProp() fails if any spaces in tag value
    (github issue #​8546 from jbbrownlsi)
  • SynthonSpaceSearch bad chiral atom count
    (github issue #​8549 from DavidACosgrove)
  • allow nested parentheses in tokens
    (github pull #​8553 from tadhurst-cdd)
  • Explicitly wrap raw pointer into emscripten::val object with allow_raw_pointers() policy
    (github pull #​8555 from ptosco)
  • Segmentation fault in AllChem.EmbedMolecule()
    (github issue #​8559 from calebthomas259)
  • RDKit minilib loses stereochemistry when breaking molecules to fragments
    (github issue #​8569 from MariaDolotova)
  • MolFromSmiles loses the information of "atom map number" property if cxsmiles is used
    (github issue #​8586 from saultorre1995)
  • Fixes the problems with wiggly bonds and EnumerateStereoisomers from #​8506
    (github pull #​8598 from greglandrum)
  • Fixed out of bounds vector access in GetGeodesicMatrix
    (github pull #​8601 from ndickson-nvidia)
  • Reading molecule from block gives None with no warning -- likely due to Cannot normalize a zero length vector in atropisomer code
    (github issue #​8602 from pechersky)
  • fix mrv parsing for Rgroups to make smiles work
    (github pull #​8617 from tadhurst-cdd)
  • Scsr sgroup error
    (github pull #​8623 from tadhurst-cdd)
  • ResonanceMolSupplier raises an error if Mol has no bonds
    (github issue #​8638 from padix-key)
  • Mem fixes
    (github pull #​8640 from ricrogz)
  • MultithreadedSDMolSupplier occasionally returns extra None entries
    (github issue #​8644 from Kacper-Kozubowski)
  • RascalMCES rapidly fills up memory on rdkit 2025.03 but not rdkit 2024.09
    (github issue #​8645 from dehaenw)
  • Enhanced stereo synthons break SynthonSpace.ReadTextFile
    (github issue #​8650 from coleb)
  • RegistrationHash produces 2 separate hashes for 2636640-50-9 depending on input
    (github issue #​8654 from jdavies-nurix)
  • Incorrect canonicalization when generating CXSMILES without enhanced stereo
    (github issue #​8655 from greglandrum)
  • Incorrect MolHash when generating CXSMILES without enhanced stereo
    (github issue #​8656 from greglandrum)
  • Inconsistent default settings for Morgan atom invariant generator
    (github issue #​8633 from gedeck)
  • No Python class registered for C++ class ForceFields::PyForceField
  • Canonical smiles can't be kekulized by MolFromSmiles
    (github issue #​8670 from shashir)
  • Fix parse error messages for bad characters
    (github pull #​8675 from whosayn)
  • DrawMoleculeWithHighlights doesn't use SetOffset
    (github issue #​8679 from DavidACosgrove)
  • modern stereo: canonicalization depends on bond iteration order
    (github issue #​8689 from d-b-w)
  • Fix build with Boost 1.89.0
    (github pull #​8694 from cho-m)
  • Fix drawing of very short arcs in lasso.
    (github pull #​8706 from DavidACosgrove)
  • Forcefield Gradient Scaling misses large negative gradients
    (github issue #​8716 from scal444)
  • rdMolTransforms.CanonicalizeConformer inverts structure
    (github issue #​8720 from DavidACosgrove)
  • Two small MinimalLib RGD bug fixes
    (github pull #​8729 from ptosco)
  • Fixes a bug with bad H positions in output conformer
    (github pull #​8731 from greglandrum)
  • patch a memory allocation problem in the pubchem shape code
    (github pull #​8733 from greglandrum)
    (github issue #​8754 from tawe141)
  • segmentation fault when parsing USPTO downloaded CDX file
    (github issue #​8761 from eloyfelix)
  • Avoid code duplication through a templated function and improve JSON parsing of Boolean flags
    (github pull #​8773 from ptosco)
  • Make InteractiveRenderer error reporting more robust and code cleanup
    (github pull #​8774 from ptosco)
  • Integer-valued list properties are not available from Python
    (github issue #​8777 from greglandrum)
  • EXCEEDED_TIMEOUT field in EmbedFailureCauses missing in Python
    (github issue #​8806 from j-adamczyk)
  • Fix leaking a PyObject in MetadataFromPNG file / string
    (github pull #​8829 from ricrogz)

Cleanup work:

  • style: apply modernize-use-override
    (github pull #​8137 from e-kwsm)
  • Consolidate MinimalLib Dockerfiles to avoid code duplication
    (github pull #​8412 from ptosco)
  • find_package(better_enums) can never find better_enums
    (github issue #​8438 from yurivict)
  • Modernization of some substructure code
    (github pull #​8450 from greglandrum)
  • A few mem fixes in tests
    (github pull #​8521 from ricrogz)
  • Fix irritating warning when DrawMolMCHLasso compiled.
    (github pull #​8540 from DavidACosgrove)
  • Some cleanup of the xyz2mol code
    (github pull #​8567 from greglandrum)
  • Small cleanups of the MMFF94 code
    (github pull #​8593 from greglandrum)
  • Switch a bunch of C++ tests to use catch2
    (github pull #​8625 from greglandrum)
  • Include for a couple of headers for windows compilation
    (github pull #​8763 from cdvonbargen)

Code removed in this release:

Deprecated code (to be removed in a future release):

  • The functions FileParserUtils::applyMolListPropToAtoms(), FileParserUtils::applyMolListPropsToAtoms(), and FileParserUtils::getAtomPropertyList() have been deprecated, please use FileParserUtils::applyMolListProp(), FileParserUtils::applyMolListProps(), and FileParserUtils::getPropertyList() instead.

v2025.03.1

(Changes relative to Release_2024.09.1)

Acknowledgements

(Note: I'm no longer attempting to manually curate names. If you would like to
see your contribution acknowledged with your name, please set your name in
GitHub)

Andrey Alekseenko, Marco Ballarotto, Chris Von Bargen, Kevin Boyd, Jessica
Braun, Christopher Brown, Martin Buttenschoen, Rubén Chaves, Michael Cho David
Cosgrove, Oleksii Dukhno, Hussein Faara, Jozef Fulop, Richard Gowers, Tad Hurst,
Gareth Jones, Eisuke Kawashima, Brian Kelley, Radics Laszlo, Zhen(Jack) Liu,
Niels Maeder, John Mayfield, Jeremy Monat, Dan Nealschneider, Jan Oboril, Yakov
Pechersky, Patrick Penner, Julianus Pfeuffer, Rachael Pirie, Yechen Qiao, Lauren
Reid, Ricardo Rodriguez, Nikitas Rontsis, Fio Ruggiu, Vincent F. Scalfani,
Ulrich Schatzschneider, Wonseok Shin, Anton Siomchen, Paolo Tosco, Kollin
Trujillo, Ivan Tubert-Brohman, Franz Waibl, Rachel Walker, Riccardo Vianello,
Marco Visani, QJ-Chen, UENO, M., heng-yin, EvaSnow, JP, Jess, knalice,
YOUNG-JAME, thomp-j, esiaero, bbu-imdea, bzoracler

Highlights

  • The RDKit now supports synthon-based substructure and similarity
    (fingerprint-based and RASCAL-based) searches in very large combinatorial
    spaces. This code should still be viewed as experimental: the API and results
    may change in future releases.

Backwards incompatible changes

  • The order of combinations returned by Chem.Pharm2D.Utils.GetUniqueCombinations
    has changed to be in numerical order. The combinations themselves are
    unchanged.
  • The MaeWriter class will now throw when attempting to write an empty Mol or
    when there are errors during the writing (e.g. kekulization errors). Previous
    behavior was to log an error and return an empty string.
  • AdjustQueryProperties now no longer ignores additional atom adjustments when
    makeAtomsGeneric is enabled.
  • The functions getImplicitValence(), getNumImplicitHs(), getDegree(), and
    getTotalDegree(), now return 0 for atoms that are not associated with
    molecules (previously they threw exceptions)
  • SMILES and RGroupDecomp JSON parsers were moved to their own translation
    units. This will require C++ code using those JSON parsers to be added
    #include directives for GraphMol

❗ Important

✂ PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/London)

  • Branch creation
    • "after 5am and before 5pm every weekday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/rdkit-2026.x branch from a1e09e3 to c552594 Compare September 25, 2026 02:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant