2026_03_1 (Q1 2026) Release #9207
greglandrum
started this conversation in
Development
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Release_2026.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
replace the defaults when doing substructure matching.
macrocycles in the templates.
Backwards incompatible changes:
Dictclass (and therefore all the properties interfaces) has been updatedto
std::string_viewkeys. This is transparent to the Python interfaces,but some C++ class might have to be updated.
[C&+]now produces thethe same result as
[C+]when parsed as SMARTS.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-awarecanonical ranking of the atoms in a molecule, it is more efficient to use
Chem.CanonicalRankAtoms(mol, breakTies=False).by default, as this changes the global charge of the mol.
MolToSmarts()no longer adds implicit hydrogens to atoms without queries. Theone exception to this is for chiral atoms, which will still have an implicit H
added if present.
__computedPropsproperty by default. The propertyis 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 doesclear 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.
address a potential issue that could alter stereo. As a result, SMILES of
mols contaning stereo bonds may have changed.
for the DataFunc and MatchFunc. This does not affect Python.
Kekulize()function are now, by default, no longerdependent on atom/bond ordering in the molecule. Additionally, the C++ API for
MolOps::Kekulize(),MolOps::KekulizeIfPossible()andMolOps::KekulizeFragment()has been changed: these all now accept anoptional argument toggling the canonical Kekulization.
New Features and Enhancements:
(github issue MolFromSmiles scales quadratically with chain length #8776 from i-tub)
(github pull Add extract mol fragment api #8811 from bp-kelley)
(github pull Allow Multiple Core Hits in the Same Molecule in RGroupDecomposition #8813 from DavidACosgrove)
(github pull Merge simple AND queries onto atoms. #8830 from ricrogz)
(github pull Implement a mechanism to patch .pyi files as proposed in #8749 #8835 from ptosco)
(github pull allow default radii in the DCLV calculation #8836 from greglandrum)
(github pull Address #8840 by implementing dpi parameter in PandasTools.SaveXlsxFromFrame() #8841 from ptosco)
(github pull Add safeSetattr to more params / options objects #8842 from nmaeder)
(github pull add Reaction From Smiles python wrapper #8843 from RPirie96)
(github pull Incremental synthon search #8855 from jgullingsrud)
(github pull Use properties in the MolDrawOptions python wrappers to make setting/getting colours easier #8857 from greglandrum)
(github pull Minor docstring tweak. #8860 from DavidACosgrove)
(github pull Move some fields and methods from AtomPDBResidueInfo to base class #8863 from rachelnwalker)
(github pull set up performance benchmarks #8865 from bddap)
(github pull [CONTRIB]: Freewilson now keeps the coordinates passed in #8868 from bp-kelley)
(github pull add more benchmarking #8878 from bddap)
DetermineBondsandDetermineBondOrdersperformance(github pull Improve
DetermineBondsandDetermineBondOrdersperformance #8888 from ChiCheng45)(github pull added new attributes for scsr template as per BIOVIA doc 2023 #8911 from tadhurst-cdd)
(github pull Allow using generators for similarity maps #8912 from greglandrum)
(github pull Return original molecule from StereoisomerEnumerator when no unspecified stereocenters are available #8924 from phonglam3103)
(github pull Add function to compute shape scores without overlay. #8950 from DavidACosgrove)
(github pull expose Bond::invertChirality() to Python #8951 from paconius)
(github pull Add a couple of utility functions for working with flat matrices #8955 from nmaeder)
(github pull Add test to watch the state of canonicalization problems reported in #8775 #8958 from ricrogz)
(github pull Allow Hs to be ignored in the RMSD alignment functions #8976 from greglandrum)
(github pull Embed Parameters to JSON #8977 from nmaeder)
(github pull Allow spaces and special chars in SCSR fullname attrs #8982 from tadhurst-cdd)
(github pull Allow H removal to be skipped in ShowFeats.py #8986 from greglandrum)
(github pull some optimizations of AlignPoints() #8987 from greglandrum)
(github pull Allow adding custom atom and bond matcher functions for substructure searching #8994 from greglandrum)
(github pull Support serializing/deserializing FP generators to JSON #9000 from greglandrum)
(github pull Stop writing so many atom properties to cxsmiles #9002 from greglandrum)
(github pull Performance improvement: Implement buffered reading for SDMolSupplier #9010 from RaulSofia)
(github pull Allow molzip to position fragments when joining them #9021 from greglandrum)
(github pull Improve POPCNT optimization flag handling to build on other arches like riscv64 and loong64 #9029 from wszqkzqk)
(github pull Read SD property names till the last '>' #9047 from ricrogz)
(github pull cleanup of stereogroups and wedges for non-chiral sites #9051 from tadhurst-cdd)
(github pull Store CIP-ranked anchors after CIP labeling. #9056 from ricrogz)
(github pull Gaussian shape overlays #9095 from DavidACosgrove)
(github pull Exclude Zero order bonds from FindRingFamilies() and add arguments for includeDativeBonds, includeHydrogenBonds #9118 from ricrogz)
(github pull Deterministic kekulize, independent of atom and bond order #9125 from pechersky)
(github pull Add explicit operator= and copy c'tors to Transform3D and its base classes. #9133 from DavidACosgrove)
(github pull Add RDLog::CaptureLog for capturing log messages #9138 from cdvonbargen)
(github pull Add MolFromInchiAndAuxInfo to restore original atom order from AuxInfo #9158 from rodyarantes)
(github pull Accept non-kekulisable molecules in drawMols3D. #9167 from DavidACosgrove)
(github pull Follow up to PR #8968 #9168 from ricrogz)
(github pull Add 'k' extension to SMARTS to support ringsize queries #9172 from greglandrum)
(github pull Support double* in Transform3D::TransformPoint #9176 from DavidACosgrove)
(github pull Switch to using SMARTS for 2D depiction templates #9179 from ZontaNicola)
(github pull Adjust lower bounds to allow intramolecular H-Bonds #9188 from kabu00002)
(github pull [bot] Update molecular templates header file #9193 from github-actions[bot])
(github pull Implement #9194 #9197 from ptosco)
(github pull simple substructure search optimization #9201 from greglandrum)
(github pull Enable templating for macrocycles #9203 from ZontaNicola)
(github pull [bot] Update molecular templates header file #9205 from github-actions[bot])
Documentation:
(github pull Extra documentation for EnumerateLibraries #8909 from DavidACosgrove)
(github pull Update installation instructions for building RDKit from source for macOS #8928 from phonglam3103)
(github pull Fixed Typo in Getting Started Docs #8947 from PatrickPenner)
(github pull Update deprecation messages for valence methods #9050 from philipullmann)
(github pull fix the python docs for CanonicalRankAtomsInFragment #9087 from greglandrum)
(github issue Confusing Deprecation Warning regarding GetImplicitValence #9117 from kienerj)
GetSSSRDocumentation(github pull Update The SSSR Problem
GetSSSRDocumentation #9121 from JacksonBurns)Bug Fixes:
(github issue rdShapeAlign is sensitive to starting conformation #8513 from priley-vv)
(github issue Hydrides in organometallics removed when parsing #8726 from spparel)
(github issue CSharp wrapper fails to build on Linux #8801 from jones-gareth)
maxAttemptsvsmaxIterationsinEmbedMolecule(github issue Setting
maxAttemptsvsmaxIterationsinEmbedMolecule#8807 from j-adamczyk)(github issue Allowed list atoms should be read as dummy atoms #8820 from cdvonbargen)
(github issue Aromaticity perception with list queries depends on ordering of atoms #8823 from greglandrum)
(github pull Install expat lib in static builds #8832 from ricrogz)
(github pull Allow labeled atoms to have working queries #8849 from bp-kelley)
(github pull A fix and some refactoring for substructure highlighting in notebooks #8851 from greglandrum)
(github pull use bond labels in the ranking in MolFragmentToSmiles #8861 from greglandrum)
(github issue Multiple absolute stereo groups shouldn't be allowed on a single mol #8873 from rachelnwalker)
(github issue Calling atom.SetQuery(None) segfaults #8877 from bp-kelley)
GetPropsAsDict()(github issue Whitespace mangled in
GetPropsAsDict()#8890 from Yoshanuikabundi)(github pull Partial fix to a problem with implicit Hs being written to SMARTS #8893 from greglandrum)
(github issue Unrecognized attachment points in synthon library results in broken molecules #8898 from jgullingsrud)
(github pull Change docs in Python EmbedMultipleConfs. #8900 from DavidACosgrove)
(github issue CXSmiles strips away isotopes #8906 from bp-kelley)
(github issue Atom properties as SDF file data break if the array is too long #8918 from bp-kelley)
(github issue Unable to build any rdkit >= 2025.3.6, when RDK_BUILD_DESCRIPTORS3D=OFF #8922 from asiomchen)
(github pull Ignore whitespace when patching RapidJSON #8927 from ricrogz)
(github pull Fixes a bug with chirality perception of T-shaped centers in very large rings #8930 from greglandrum)
(github pull Fixes for nontetrahedral stereo parsing from SMILES/SMARTS #8932 from greglandrum)
(github pull Allow abbreviations without XBonds #8933 from greglandrum)
(github issue SVG exports of bicolor solid wedge bound not working with stroke-width #8936 from EliotRagueneau)
(github pull Handle chiral atoms with 2 hydrogens in SCSR parser #8939 from tadhurst-cdd)
(github pull Fix potential iterator invalidation #8944 from rietmann-nv)
(github issue N#N=O and O=N#N parse to different mol #8945 from dehaenw)
(github pull Valence error when parsing SCSR #8948 from tadhurst-cdd)
(github issue Modern stereo perception: Smiles stereochemistry inversion at rings #8956 from d-b-w)
(github pull Small fix in ring stereo/canonicalization #8962 from ricrogz)
(github issue Stereo bond inversion in SMILES Writer canonicalization #8965 from ricrogz)
(github pull stop ignoring confId in CalcMolDescriptors3D() #8967 from greglandrum)
(github pull Valence error in scsr temlates for nitro and metal complexes #8969 from tadhurst-cdd)
(github issue Atropisomer bond is found in N-S(=O)C system #8973 from pechersky)
(github issue Incorrect hydrogen bond acceptor count for N-heterocycles #8997 from stephenting22)
(github issue SynthonSpace Substructure search misses some hits #9007 from DavidACosgrove)
(github issue SynthonSpace Substructure search misses a hit - Mk2 #9009 from DavidACosgrove)
(github issue SDMolSupplier enters an infinite loop if number of SGroups is incorrect #9014 from ricrogz)
(github issue Invalid sulfonamide SMARTS in FragmentDescriptors.csv #9018 from scal444)
(github issue Hs labeled implicit or explicit depending on presence of 3D conformer. Chem.RemoveHs differs from MolFromMolBlock removeHs #9020 from diogomart)
(github issue Tversky for zero prototype string with alpha=1 and beta=0 returns incorrect output #9033 from DrrDom)
(github issue SIGSEGV in rdFMCS.FindMCS when params.StoreAll = True #9034 from kuzp)
(github issue BestAlignmentParams does not compile on macos due to clang issues #9041 from pechersky)
(github pull CXSMILES: do not add separators for unserializable Substance Groups #9048 from ricrogz)
(github pull Prevent CIP labels of bonds from being calculated twice. #9052 from ricrogz)
(github pull added FABS to test for issue #4364 #9053 from tadhurst-cdd)
(github pull Fix removing (non)redundant bond dir specs when exporting SMILES #9066 from ricrogz)
(github pull Get things working with numpy 2.4 and pandas 3.0 #9072 from greglandrum)
cs_swapBytes.h: error: parse error in template argument list(github issue Chemdraw build fails on Big-endian:
cs_swapBytes.h: error: parse error in template argument list#9077 from barracuda156)(github pull Another canonicalization fix #9082 from ricrogz)
(github issue CopyMolSubset silently rewires bonds when bondIndices reference atoms not in atomIndices #9084 from mcs07)
(github issue CopyMolSubset ignores bondIndices when all atoms are included #9088 from mcs07)
(github pull Fix SMARTS for the strict definition of rotatable bonds #9096 from brje01)
(github issue SDMolSupplier length/indexing regression in 2025.09.5 when "$$$$\n" crosses 64KiB chunk boundary #9101 from kongexp)
(github pull Cannot build JS bindings with MCS option enabled. #9110 from papillot)
(github issue DetermineBonds fails for thiolate #9114 from LaurianeJD)
(github pull when shifting double bonds in tautomerization, set double bond stereo to STEREOANY #9119 from pechersky)
(github pull Fix link failure on macOS caused by AGL framework injection in Qt #9139 from cdvonbargen)
(github issue Pyrrole molblock with explicit H is not read due to kekulization error #9140 from pechersky)
(github issue ETKDGv3 generating 90 degree twisted amides #9143 from dkranthi221)
(github issue PR #9082 breaks MolFragmentToSmarts() #9144 from ricrogz)
(github issue PandasTools.SaveXlsxFromFrame is ignoring the remaining data in the dataframe when writing the .xlsx file #9151 from lmsigmund)
(github issue DistGeom: disulfide pattern matches non-disulfide *S-S* (e.g., disulfite) #9165 from kabu00002)
(github issue DistGeom: bounds get overwritten #9166 from kabu00002)
(github pull Fix typo in _calculateBeta: check nb1 instead of nb2 twice #9202 from evasnow1992)
Cleanup work:
(github pull style: apply readability-braces-around-statements #8136 from e-kwsm)
(github pull Change extern types to static consts #8765 from cdvonbargen)
(github pull run clang-tidy and clang-format on the chemdraw files #8837 from greglandrum)
(github pull Use std::string_view for property keys #8844 from ricrogz)
(github pull Refactor iostreams includes #8846 from ricrogz)
(github pull Minor refactor of the python wrappers #8847 from ricrogz)
(github pull Propagate using string_view as property names #8858 from ricrogz)
(github pull Switch from using RapidJSON to Boost::JSON for MolInterchange #8859 from greglandrum)
(github pull Do not add explicit Hs in assignChiralTypesFromMolParity #8872 from ricrogz)
(github pull make Point2D and Point3D constexpr #8882 from greglandrum)
(github pull Fix for issue with deprecated boost functions for MacOS build from source #8929 from RPirie96)
__computedPropsproperty to molecules when initializing them(github pull Do not add a
__computedPropsproperty to molecules when initializing them #8931 from greglandrum)(github pull Do not reset the ringInfo information when adding bonds to RWMol #8934 from greglandrum)
(github pull A bunch of modernization of the ShapeHelpers code #8954 from greglandrum)
(github pull Minor clean up in SMILES Writing double bond canonicalization #8971 from ricrogz)
(github pull Refactor atomVisitOrders and bondVisitOrders in SMILES Writer canonicalization #8972 from ricrogz)
(github pull Convert graphmolMolOpsTest to catch2 #8978 from ricrogz)
(github pull Stop using raw pointers in the canonicalization interface #8990 from greglandrum)
(github pull Some more cleaning up in SMILES Writing #8991 from ricrogz)
(github pull Converts testSubgraph2 to catch #9003 from ricrogz)
(github pull Convert smiTest1 to catch #9004 from ricrogz)
(github pull Last leak fixes for 2025! #9006 from ricrogz)
(github pull move molzip to its own file #9013 from greglandrum)
(github pull Convert testMolSupplier to catch2 #9015 from ricrogz)
(github pull Fix deprecated literal operators and macro redefinition warnings for modern compilers #9055 from cdvonbargen)
(github pull Move some more tests over to catch2 #9058 from greglandrum)
(github pull Transform::SetRotationFromQuaternion takes const. #9063 from DavidACosgrove)
(github pull The precondition in Bond::getOtherAtomIdx() is redundant #9092 from ricrogz)
(github pull Modernize loops and clean up ring finding #9098 from ricrogz)
(github pull Further refactoring in SSSR finding #9104 from ricrogz)
(github pull Hide data representation inside RDKit::Dict #9113 from bddap)
(github pull Fix some minor annoyances in Python tests #9132 from ricrogz)
(github pull Small refactor before PR #8968 follow up #9135 from ricrogz)
(github pull Add suppresions for AppleClang and ChemDraw #9147 from bp-kelley)
(github pull More refactoring in Canon.cpp #9155 from ricrogz)
(github pull switch the Query infrastructure to use std::function instead of function pointers #9169 from greglandrum)
(github pull Leak fixes for 2026.03.1 #9198 from ricrogz)
Code removed in this release:
Deprecated code (to be removed in a future release):
the version that takes std::span and std::vector.
Chirality::StereoInfo::NOATOM(C++) andChem.StereoInfo.NOATOM(Python) havebeen deprecated in favor of
Atom::NOATOMandChem.Atom.NOATOM.This discussion was created from the release 2026_03_1 (Q1 2026) Release.
Beta Was this translation helpful? Give feedback.
All reactions