There is a newer version of this record available.

Software Open Access

rdkit/rdkit: 2020_03_1 (Q1 2020) Release

Greg Landrum; Paolo Tosco; Brian Kelley; sriniker; gedeck; NadineSchneider; Riccardo Vianello; Ric; Andrew Dalke; Brian Cole; AlexanderSavelyev; Matt Swain; Samo Turk; Dan N; Alain Vaucher; Eisuke Kawashima; Maciej Wójcikowski; Daniel Probst; guillaume godin; David Cosgrove; Axel Pahl; JP; Francois Berenger; strets123; JLVarjo; Noel O'Boyle; Patrick Fuller; Jan Holst Jensen; Gianluca Sforna; DoliathGavid


(Changes relative to Release_2019.09.1)

Backwards incompatible changes
  • Searches for equal molecules (i.e. mol1 @= mol2) in the PostgreSQL cartridge now use the do_chiral_sss option. So if do_chiral_sss is false (the default), the molecules CC(F)Cl and C[C@H](F)Cl will be considered to be equal. Previously these molecules were always considered to be different.
  • Attempting to create a MolSupplier from a filename pointing to an empty file, a file that does not exist or sometihing that is not a standard file (i.e. something like a directory) now generates an exception.
  • The cmake option RDK_OPTIMIZE_NATIVE has been renamed to RDK_OPTIMIZE_POPCNT
  • The drawings generated by the MolDraw2D objects are now significantly improved and can include simple atom and bond annotations (#2931 and #3010)
  • An initial implementation of a modified scaffold network algorithm is now available (#2911)
  • A few new descriptor/fingerprint types are available - BCUTs (#2957), Morse atom fingerprints (#1773), Coulomb matrices (#2993), and MHFP and SECFP fingerprints (#2643)
  • There is a new, and greatly improved, version of the RDKit Cookbook (#2884)
  • There is a new version (v3) of the ETKDG conformer generator along with optional new terms for handling small rings and macrocyles ( (#2999)

Marcel Baltruschat, Jason Biggs, Eliane Briand, Ben Cornett, David Cosgrove, Andrew Dalke, Tim Dudgeon, Zhenting Gao, Guillaume Godin, Manan Goel, Gareth Jones, Zachary Kaplan, Eisuke Kawashima, Steven Kearnes, Brian Kelley, Maxim Koltsov, Franziska Kruger, Mieszko Manijak, Dan Nealschneider, Daniil Polykovskiy, Daniel Probst, Sereina Riniker, Matthew Robinson, Steve Roughley, Kevin Ryan, Vincent F. Scalfani, Ricardo Rodriguez Schmidt, Rim Shayakhmetov, Aryan Shrey, Nik Stiefl, Matt Swain, Paolo Tosco, Wiep van der Toorn, Riccardo Vianello, Shuzhe Wang, Piotr Wawrzyniak, Hsiao Yi, 'jasad1', 'luancarvalhomartins'

Bug Fixes:
  • Mol rendering within DataFrames in a Jupyter Notebook is broken with Pandas 0.25.1 (github issue #2673 from mrcblt)
  • Removed RDKIT_SIMDIVPICKERS_EXPORT (github pull #2740 from ptosco)
    • enable building RDKitRingDecomposerLib.dll under Windows (github pull #2742 from ptosco)
  • Do a windows DLL build as part of the Azure DevOps setup (github pull #2743 from greglandrum)
  • Fix data race in (github pull #2744 from skearnes)
  • Uncharger not properly setting explicit/implicit H count (github issue #2749 from greglandrum)
  • MSVC compile error: MolHash scoped enum cannot be redeclared as unscoped (github issue #2752 from mcs07)
  • Molecules whose Y size is very small won't display as SVG (github issue #2762 from ptosco)
  • Make the cartridge tests work with PostgreSQL 12 (github pull #2767 from greglandrum)
  • Salt stripper should consider bond matches as well as atom matches (github pull #2768 from greglandrum)
  • Bismuth should count as an early element (github issue #2775 from greglandrum)
  • addHs() fails on atoms with "bad" valences (github issue #2782 from greglandrum)
  • Element symbol lookup for some transuranics returns incorrect results (github issue #2784 from LeanAndMean)
  • [cartridge] molecular equality should use do_chiral_sss setting (github issue #2790 from greglandrum)
  • uncharger removes Hs from carbocations instead of adding them (github issue #2792 from greglandrum)
  • Fix build without boost serialization library (github pull #2796 from maksbotan)
  • Using SetBoundsMat significantly slows down conformer generation process. (github issue #2800 from hjuinj)
  • rdkit.Ched.rdFMCS.FindMCS generates invalid smarts (github issue #2801 from luancarvalhomartins)
  • Remove confId from *FFOptimizeMoleculeConfs Python docs (github issue #2805 from ptosco)
  • Hybridization queries on dummy atoms not written properly to SMARTS (github issue #2814 from greglandrum)
  • Charge range queries not properly written to SMARTS (github issue #2815 from greglandrum)
  • RDKit segfaults in MMFFOptimizeMoleculeConfs() (github issue #2820 from ptosco)
  • Trusted Smiles holder doesn't handle ring queries (github issue #2830 from bp-kelley)
  • Fix windows substructure crash (github pull #2836 from greglandrum)
  • Fix YAeHMOP build (github pull #2838 from ptosco)
  • testGithub2245 in testPickers.cpp occasionally fails (github issue #2839 from ptosco)
  • add define for RDK_USE_BOOST_SERIALIZATION (github pull #2859 from greglandrum)
  • fix start/end atoms when wedging bonds (github pull #2861 from greglandrum)
  • Fixes the size of the reduced charge matrix from eHT calculations (github pull #2864 from greglandrum)
  • Dev/pvs studio cleanups2 (github pull #2877 from greglandrum)
  • segfault in MaeMolSupplier (github issue #2881 from greglandrum)
  • update maven url in build system (github pull #2889 from greglandrum)
  • EnumerateStereoisomers cannot handle STEREOANY bonds (github issue #2890 from ricrogz)
  • Update one of the cartridge tests that got missed (github pull #2894 from greglandrum)
  • acepentalene aromaticity perception (github issue #2895 from adalke)
  • New Similarity Maps drawing code Java Wrappers non-functional (github issue #2896 from sroughley)
  • Fix to allow multistructure images in Java/C# and use MCS for c# wrapper (github pull #2898 from jones-gareth)
  • Remove bogus URFLib library (github pull #2900 from greglandrum)
  • java wrapper build cleanups (github pull #2901 from greglandrum)
  • SMARTS parser fails on high-numbered ring closures in branches (github issue #2909 from greglandrum)
  • patch to make PandasTools tests pass with pandas v0.22 (github pull #2913 from greglandrum)
  • fix doctest problem with Pandas v1.0 (github pull #2918 from greglandrum)
  • Build with -D RDK_BUILD_COORDGEN_SUPPORT=OFF includes a test case that depends on MaeMolSupplier (github issue #2929 from rvianello)
  • MinimalLib: get_stereo_tags() should also return unspecified centers (github issue #2936 from greglandrum)
  • Fix regression introduced by e245349c (github pull #2945 from cornett)
  • Avoid data race warning in SmilesParse.cpp (github pull #2946 from skearnes)
  • Empty molecule has non-zero LabuteASA (github issue #2948 from jasondbiggs)
  • Fix a problem with aromatic heteroatom tautomer enumeration (github pull #2952 from greglandrum)
  • Molecule properties not retained with MolStandardize.rdMolStandardize.Cleanup() (github issue #2965 from ZacharyKaplan)
  • Fix build without boost serialization. (github pull #2972 from ricrogz)
  • RDKFuncs.chargeParent() core dumps when standardization is skipped (bithub issue #2970 from tdudgeon)
  • fix a typo in the scaffold network wrappers and add some tests (github pull #2982 from greglandrum)
  • Tautomer enumeration should remove stereo in all tautomers (github issue #2990 from greglandrum)
  • Segmentation fault on EmbedMolecule (github issue #3019 from shayakhmetov)
  • Removed dllexport from a function that lives in the anonymous namespace (github pull #3027 from ptosco)
New Features and Enhancements:
  • Morse atom fingerprint (github pull #1773 from thegodone)
  • Allow serializing coordinates as doubles (github issue #2510 from danpol)
  • Rework MaeMolSupplier, fix #2617 (github pull #2620 from ricrogz)
  • Implementation of MHFP and SECFP Fingerprints (github pull #2643 from daenuprobst)
  • MatchFusedRings does not imply CompleteRingsOnly anymore (github pull #2748 from ptosco)
  • Improvements to JS wrappers (github pull #2751 from greglandrum)
  • Fix installed header directory structure (github pull #2754 from ricrogz)
  • Add doRandom to the header docs (github pull #2756 from bp-kelley)
  • Add queryMol data member to MCSResult (github pull #2759 from ptosco)
  • Add functions to enable/disable the substructure matching monkey patching in (github issue #2786 from greglandrum)
  • Add a function to assign chiral tags from sss atom parity (github issue #2823 from ptosco)
  • Support MRV_IMPLICIT_H S groups when reading Mol blocks (github issue #2829 from greglandrum)
  • Unset executable flag (github pull #2833 from e-kwsm)
  • Remove O(N) behavior of getNumBonds (github pull #2847 from bp-kelley)
  • Feature proposal: add remove_stereochemistry=False flag for RemoveHs() (github issue #2848 from shayakhmetov)
  • Expose SubstructLibrary serialization stream (github pull #2853 from bp-kelley)
  • Fix typo (github pull #2862 from e-kwsm)
  • Rename RDK_OPTIMIZE_NATIVE to RDK_OPTIMIZE_POPCNT (github pull #2865 from ElianeBriand)
  • Update Draw.MolToImage() and Draw.MolToFile() to use the new drawing code (github pull #2866 from greglandrum)
  • Improve PostgreSQL cartridge install documentation (github pull #2870 from yellowBirdy)
  • Fixes #2858 (github pull #2871 from greglandrum)
  • Add a cartridge test to the azure devops config (github pull #2873 from greglandrum)
  • Add a new Cookbook v2 to the RDKit docs (github pull #2884 from vfscalfani)
  • Add MolVS tautomer canonicalization (github pull #2886 from greglandrum)
  • add a convenience function for RGD--Pandas integration (github pull #2887 from greglandrum)
  • run clang-tidy with readability-braces-around-statements (github pull #2899 from greglandrum)
  • Allow RDProps::clearProp to succeed even if the prop doesn't exist (github issue #2910 from greglandrum)
  • Add a scaffold network implementation (github pull #2911 from greglandrum)
  • cleanup of the SMILES/SMARTS parsing and writing code (github pull #2912 from greglandrum)
  • Add _ctab, _mol2, _pdb to allow direct mol construction from strings (github issue #2916 from greglandrum)
  • Parse and handle the stereoCare or STBOX flags in CTABs (github pull #2917 from greglandrum)
  • RDKit exceptions do not override the default what() method (github issue #2920 from ricrogz)
  • Allow custom post-match filters for substructure matching (github pull #2927 from greglandrum)
  • Proposed improvements to 2D Drawing Code (github issue #2931 from DavidACosgrove)
  • Include running the documentation tests as part of the CI runs (github pull #2932 from greglandrum)
  • Add support for phosphine and arsine chirality (github issue #2949 from wopozka)
  • A couple additions to the extended Hueckel integration (github pull #2955 from greglandrum)
  • Add BCUT 2D descriptors (github pull #2957 from bp-kelley)
  • Add multithreaded pattern/fp generator (github pull #2973 from bp-kelley)
  • Description for the data files. (github pull #2975 from zhentg)
  • Enable larger ring matches in SMARTS expressions (github pull #2981 from d-b-w)
  • ScaffoldNetwork rearrangements (github pull #2985 from greglandrum)
  • add add_hs() and remove_hs() to JS wrappers (github pull #2986 from greglandrum)
  • Add Atom Feature Vectors (github pull #2988 from thegodone)
  • Add CoulombMat calculator (github pull #2993 from thegodone)
  • Update azure-pipelines.yml (github pull #2997 from greglandrum)
  • Improve Conformational Sampling of Small and Large Ring Molecules (github pull #2999 from hjuinj)
  • Fix atom highlighting in notebook PNGs (github pull #3000 from greglandrum)
  • adds a one-liner for getting a vector of random smiles for a molecule (github pull #3002 from greglandrum)
  • Allow enhanced stereo to be used in substructure search (github pull #3003 from d-b-w)
  • Add support for the rest of the v3000 atom properties (github pull #3007 from greglandrum)
  • Move jupyter extension logging to the python logger (github pull #3008 from bp-kelley)
  • Commit of 2D draw annotation. (github pull #3010 from DavidACosgrove)
  • Update Maeparser & Coordgen Dependencies (github pull #3011 from ricrogz)
  • Remove unnecessary files (github pull #3012 from e-kwsm)
  • allow retrieval of the atoms/bonds modified by the tautomerization (github pull #3013 from greglandrum)
  • Add 5 new recipes to Cookbook (github pull #3014 from vfscalfani)
  • Turns on cairo support (and testing) in the Azure DevOps CI builds (github pull #3022 from greglandrum)
  • Added support for Python FMCS functors (github pull #3023 from ptosco)
  • add random seed to docs to get reproducible conformations (github pull #3026 from greglandrum)
  • update docs for 2020.03 (github pull #3028 from greglandrum)
  • update Getting Started in C++ document (github pull #3039 from DavidACosgrove)
Deprecated code (to be removed in a future release):
  • To improve API consistency of the exceptions in RDKit with the default ones in the STL, the several message() methods and Invariant::getMessage() in RDKit's exceptions are from now on deprecated in favor of what(). Both message() and Invariant::getMessage() will be removed in the next release.
  • The old MolHash code should be considered deprecated. This release introduces a more flexible alternative. Specifically the following pieces will be removed in the next release:
    • The python functionality rdkit.Chem.rdMolHash.GenerateMoleculeHashString()
    • The C++ functionality directly present in the header file GraphMol/MolHash/MolHash.h
Files (62.3 MB)
Name Size
62.3 MB Download
All versions This version
Views 15,1911,994
Downloads 1,1698
Data volume 52.3 GB498.6 MB
Unique views 12,1171,690
Unique downloads 3928


Cite as