Search for a command to run...
Release_2026.03.1b1 (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, Phong Lam, Niels Maeder, Josh A. Mitchell, Dan Nealschneider, Yakov Pechersky, PatrickPenner, 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, 空酱, Pavel, stephenting22, Paul, paconius, spparel, wszqkzqk, Diogo, dehaenw Highlights 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) 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]) 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 #