Skip to content

2023_03_2 (Q1 2023) Release

Compare
Choose a tag to compare
@greglandrum greglandrum released this 19 Jun 04:51
· 27 commits to Release_2023_03 since this release
aaf8370

Release_2023.03.2

(Changes relative to Release_2023.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)

David Cosgrove, Andrew Dalke, Eloy Félix, Gareth Jones, Juuso Lehtivarjo, Vedran
Miletić, Timothy Ngotiaoco, Ernst-Georg Schmid, Ricardo Rodriguez-Schmidt, Paolo
Tosco, Riccardo Vianello, Maciej Wójcikowski, wangyingxie, teltim, lhyuen

Bug Fixes:

  • PF6- still can not get Bad Conformer Id after the #510 issue fix
    (github #5145 from wangyingxie)
  • Crash when parsing InChI
    (github #6172 from eloyfelix)
  • generateDepictionMatching2DStructure: bonds to R groups should be generic when matching
    (github #6306 from ptosco)
  • MolToSmiles(canonical=False) creates the wrong _smilesBondOutputOrder property
    (github #6315 from adalke)
  • MolToMolBlock ignores unspecified information for double bonds in rings
    (github #6316 from mwojcikowski)
  • bump yaehmop version
    (github #6330 from greglandrum)
  • rdMolDraw2D.MolDraw2DCairo produces Pre-condition Violation: no draw context when SetColour, DrawRect or DrawLine was called.
    (github #6336 from lhyuen)
  • Added cstdint include
    (github #6338 from vedranmiletic)
  • remove the dependency from python distutils in the top CMakeLists.txt file
    (github #6339 from rvianello)
  • take drawOptions into account when exporting structure to xlsx format
    (github #6341 from ptosco)
  • Fix swig memory leak
    (github #6346 from jones-gareth)
  • Add inlines to ForceFieldHelpers header functions
    (github #6356 from JLVarjo)
  • Bug relating to this PF6- still can not get Bad Conformer Id
    (github #6365 from teltim)
  • straightenDepiction should not consider 0-degree rotations as multiples of 60
    (github #6367 from ptosco)
  • expose two missing EmbedFailureCauses tags to python
    (github #6372 from greglandrum)
  • Molfile Unsaturation Query Not Parsed Correctly
    (github #6395 from timothyngo)
  • MolDraw2D: chiral tag overlapping atom label
    (github #6397 from greglandrum)
  • expose some missing CXSmiles flags to python
    (github #6415 from greglandrum)
  • V3000 structure segfaults when converting to SVG
    (github #6416 from ergo70)
  • WedgeMolBonds won't wedge/dash a 2nd bond when input already has a wedge/dash around the same chiral atom
    (github #6423 from ricrogz)
  • MolEnumerate should clear the reaction properties on its results
    (github #6432 from greglandrum)
  • Removing Hs on a pyrrol-like structure throws kekulization error
    (github #6437 from ricrogz)

Release_2023.03.1

(Changes relative to Release_2022.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)

Michael Banck, Christopher Von Bargen, Jason Biggs, Jonathan Bisson, Jacob
Bloom, shang chien, David Cosgrove, Iren Azra Azra Coskun, Andrew Dalke, Eloy
Félix, Peter Gedeck, Desmond Gilmour, Mosè Giordano, Emanuele Guidotti, Tad
Hurst, Gareth Jones, Calvin Josenhans, Maria Kadukova, Brian Kelley, Joos
Kiener, Chris Kuenneth, Martin Larralde, Krzysztof Maziarz, Jeremy Monat, Michel
Moreau, Rocco Moretti, Lucas Morin, Dan Nealschneider, Noel O'Boyle, Vladas
Oleinikovas, Rachael Pirie, Ricardo Rodriguez-Schmidt, Vincent F. Scalfani,
Gregor Simm, Marco Stenta, Georgi Stoychev, Paolo Tosco, Kazuya Ujihara,
Riccardo Vianello, Franz Waibl, Rachel Walker, Patrick Walters,
'dangthatsright', 'mihalyszabo88', 'Deltaus', 'radchenkods',
'josh-collaborationspharma', 'jkh', 'yamasakih'

Highlights

  • The 2D coordinate generation can now optionally use templates when working with complex ring systems. We will continue to improve this functionality in future releases.
  • There's now a single function which allows you to calculate all available 2D descriptors for a molecule: Descriptors.CalcMolDescriptors()
  • Support for working with organometallic molecules has improved: drawings of these structures are now better and there's new code for switching back and forth between dative and multi-center views of the bonding in systems like ferrocene.
  • The fingerprint generator code has been improved and expanded with the idea of allowing user to switch entirely to the new code for the supported fingerprint types: Morgan, RDKit, topological torsion, and atom pairs.

Backwards incompatible changes

  • The ring-finding functions will now run even if the molecule already has ring information. Older versions of the RDKit would return whatever ring information was present, even if it had been generated using a different algorithm.
  • The ring-finding functions now no longer consider dative bonds as possible ring bonds by default. All of the ring-finding functions have a new optional argument includeDativeBonds which can be used to change this behavior
  • Generating 2D coordinates no longer has the side effect of running ring finding on molecules.
  • The canonical SMILES and CXSMILES generated for molecules with enhanced stereochemistry (stereo groups) is different than in previous releases. The enhanced stereochemistry information and the stereo groups themselves are now canonical. This does not affect molecules which do not have enhanced stereo and will not have any effect if you generate non-isomeric SMILES. This change also affects the output of the MolHash and RegistrationHash code when applied to molecules with enhanced stereo.
  • The doIsomericSmiles parameter in Java and C# ROMol.MolToSmiles() now defaults to true (previously it was false), thus aligning to the C++ and Python behavior.
  • Double bonds which are marked as crossed (i.e. bond.GetBondDir() == Bond.BondDir.EITHERDOUBLE) now have their BondStereo set to Bond.BondStereo.STEREOANY and the BondDir information removed by default when molecules are parsed or AssignStereochemistry() is called with the cleanIt argument set to True.
  • The conformers generated for molecules with three-coordinate chiral centers will be somewhat different due to the fix for #5883.
  • Molecules which come from Mol or SDF files will now always have the "_MolFileChiralFlag" property set to the value of the chiral flag in the CTAB. In previous versions the property was not set if the chiral flag was 0.

Bug Fixes:

  • GetSubstructMatches uniquify and maxMatches don't work well together
    (github issue #888 from adalke)
  • DrawRDKBits raised RDKit error when it applied to the compounds that contains imidazole.
    (github issue #2164 from yamasakih)
  • MolFromMol2File: O.co2 atom type correctness check ignores phosphate groups
    (github issue #3246 from chmnk)
  • Enhanced Stereo is lost when using GetMolFrags(m, asMols=True)
    (github issue #4845 from kienerj)
  • Segfault with coordgen v3.0.0
    (github issue #4845 from lucasmorin222)
  • Dative bond and alkali and alkaline earth metals
    (github issue #5120 from marcostenta)
  • RGD Stereochemistry in decomposed structure is not copied to the matching core
    (github issue #5613 from jones-gareth)
  • fp.ToList() fails for empty molecule
    (github issue #5677 from baoilleach)
  • SMILES and SMARTS parse bonds in a different order
    (github issue #5683 from ricrogz)
  • postgresql makefile needs to be updated to use c++17
    (github issue #5685 from mbanck)
  • Exception raised when reading very large SMILES file
    (github issue #5692 from DavidACosgrove)
  • Update warning message about aromaticity detection
    (github pull #5696 from d-b-w)
  • stop building catch_main when tests are disabled
    (github pull #5697 from greglandrum)
  • Make PandasTools.RGroupDecompositionToFrame re-entrant
    (github pull #5698 from greglandrum)
  • PandasTools.RGroupDecompositionToFrame() should call ChangeMoleculeRendering()
    (github issue #5702 from greglandrum)
  • MolDraw2D should automatically set bond highlight color when atom colors are changed
    (github issue #5704 from greglandrum)
  • Use correct _WIN32 macro for checking Windows target
    (github pull #5710 from giordano)
  • Environment not set properly in chirality tests for MinGW builds
    (github pull #5711 from ptosco)
  • windows.h header should be lowercase
    (github pull #5712 from ptosco)
  • Fixes bond index parsing for w/c/t/ctu labels in CXSMILES/CXSMARTS
    (github pull #5722 from ricrogz)
  • Fix a deprecation warning in pythonTestDirRoot
    (github pull #5723 from ricrogz)
  • allowNontetrahedralChiralty should be honored when reading/writing SMILES
    (github pull #5728 from greglandrum)
  • CFFI/MinimalLib fixes
    (github pull #5729 from ptosco)
  • Allow setting custom FREETYPE_LIBRARY/FREETYPE_INCLUDE_DIRS through CMake
    (github pull #5730 from ptosco)
  • Missing update path for postgreSQL from 3.8 to 4.2
    (github issue #5734 from Deltaus)
  • Avoid passing a NULL pointer to CanSmiles()
    (github pull #5750 from ptosco)
  • CDXML reader incorrectly sets stereo on crossed double bonds
    (github issue #5752 from baoilleach)
  • R atom label information lost in molfile if not backed by a M RGP entry
    (github issue #5763 from eloyfelix)
  • Missing monomer labels when depicting MON SGroups
    (github issue #5767 from eloyfelix)
  • Wrongly oriented SGroup bracket
    (github issue #5768 from eloyfelix)
  • Adjust LocaleSwitcher on Windows when RDK_BUILD_THREADSAFE_SSS not set
    (github pull #5783 from roccomoretti)
  • KekulizationException in tautomer canonicalization
    (github issue #5784 from d-b-w)
  • ChemicalReactionToRxnBlock ignores separateAgents if forceV3000 is true
    (github issue #5785 from jacobbloom)
  • extend the allowed valences of the alkali earths
    (github pull #5786 from greglandrum)
  • Minimallib build (rdkit-js) not working for release 2022.09.2
    (github issue #5792 from MichelML)
  • Remove dependency on MSVC runtime DLL in MinGW builds
    (github pull #5800 from ptosco)
  • Update macOS target platform to 10.13
    (github pull #5802 from ptosco)
  • R# atom label information lost in molfile if not handled by the RGP spec
    (github issue #5810 from eloyfelix)
  • Stop using recommonmark in the documentation
    (github issue #5812 from greglandrum)
  • Properties with new lines can create invalid SDFiles
    (github issue #5827 from bp-kelley)
  • Allow building PgSQL RPM and DEB packages
    (github pull #5836 from ptosco)
  • Additional output is incorrect when FP count simulation is active
    (github issue #5838 from ptosco)
  • Explicit valence check SiPa13fails for certain SMILES
    (github issue #5849 from josh-collaborationspharma)
  • Set emsdk path for freetype in emscripten builds
    (github pull #5857 from ptosco)
  • DrawMorganBit fails by default
    (github issue #5863 from eguidotti)
  • Fix #5810 in V2000 mol files.
    (github pull #5864 from eloyfelix)
  • Chemical drawings should be automatically enabled on Colab
    (github pull #5868 from kuelumbus)
  • use enhanced stereo when uniquifying in SimpleEnum
    (github pull #5874 from greglandrum)
  • Conformer Generation Fails for three-coordinate Ns with specified stereo
    (github issue #5883 from gncs)
  • Fix documentation example for KeyFromPropHolder
    (github pull #5886 from gedeck)
  • Allow unrecognized atom types when strictParsing=False
    (github pull #5891 from greglandrum)
  • DetermineBonds assigning methyl carbon as tetrahedral center
    (github issue #5894 from jasondbiggs)
  • numpy.float is no longer supported and causes exceptions
    (github issue #5895 from PatWalters)
  • moldraw2DTest1 failure when building on aarch64
    (github issue #5899 from vfscalfani)
  • DetermineBondOrders running out of memory on medium-sized disconnected structure
    (github issue #5902 from jasondbiggs)
  • clear MDL Rgroup labels from core atoms when we aren't using them
    (github pull #5904 from greglandrum)
  • Conformer generator produces strange structure for substituted butadiene
    (github issue #5913 from gncs)
  • MHFPEncoder::Distance doesn't compute a (Jaccard) distance
    (github issue #5919 from althonos)
  • AvalonTools: Avoid that trailing garbage pollutes the fmemopen buffer
    (github pull #5928 from ptosco)
  • "not" queries in molfiles get inverted
    (github issue #5930 from d-b-w)
  • CalcTPSA() doesn't use options when caching
    (github issue #5941 from greglandrum)
  • Bad drawing of end points for dative bonds
    (github issue #5943 from DavidACosgrove)
  • Extremes of drawn ellipses not being calculated correctly.
    (github issue #5947 from DavidACosgrove)
  • Arrow heads of dative bonds are different sizes
    (github issue #5949 from DavidACosgrove)
  • stop caching ring-finding results
    (github pull #5955 from greglandrum)
  • Wrong bond endpoint when connecting to wedge bond in 2D image
    (github issue #5963 from stgeo)
  • Tiny change to get demo.html to load in legacy browsers
    (github pull #5964 from ptosco)
  • detect bad double bond stereo in conformer generation
    (github pull #5967 from greglandrum)
  • drawing code should not generate kekulization errors
    (github issue #5974 from greglandrum)
  • Adjust expected test results for newer freetype versions
    (github pull #5979 from greglandrum)
  • CanonicalRankAtomsInFragment example in the documentation is not reproducible
    (github issue #5986 from chmnk)
  • Exception in RegistrationHash for molecules with bad bond directions
    (github pull #5987 from d-b-w)
  • Updated the GetMolHash docstring for accuracy
    (github pull #5988 from irenazra)
  • Fix a problem with pickling molecules with more than 255 rings
    (github pull #5992 from greglandrum)
  • Support Python 3.11
    (github pull #5994 from greglandrum)
  • Incorrect disconnection of CC(=O)O[Mg]OC(=O)C
    (github issue #5997 from DavidACosgrove)
  • PostgreSQL autovacuum stuck when molecules with query features are stored in mol columns
    (github issue #6002 from mihalyszabo88)
  • Remove and from C++ headers
    (github pull #6003 from d-b-w)
  • [PH3] incorrectly recognized as potential stereo center
    (github issue #6011 from greglandrum)
  • Potential nontetrahedral stereo is recognized when nontetrahedral stereo is disabled.
    (github issue #6012 from greglandrum)
  • MolEnumerator is not propagating query information to molecules
    (github issue #6014 from greglandrum)
  • Reactions do not propagate query information to products
    (github issue #6015 from greglandrum)
  • Error rendering to very small canvas
    (github issue #6025 from DavidACosgrove)
  • Bad double bond drawn for collinear atoms
    (github issue #6027 from DavidACosgrove)
  • Fix some minor leaks
    (github pull #6029 from ricrogz)
  • Cannot draw molecule which includes an atom with a [!#X] query (for any X)
    (github issue #6033 from ShangChien)
  • FragmentOnBonds may create unexpected radicals
    (github issue #6034 from ricrogz)
  • Calling MurckoScaffold on molecule causes bug in pickling
    (github issue #6036 from dangthatsright)
  • Bump maeparser and coordgen versions
    (github pull #6039 from ricrogz)
  • enhanced stereo is still included in CXSMILES if isomericSmiles=False
    (github issue #6040 from greglandrum)
  • Issues with ACS1996 drawing mode on a small canvas
    (github issue #6041 from DavidACosgrove)
  • Cyclobutyl group in a macrocycle triggers a stereo center
    (github issue #6049 from cdvonbargen)
  • stereogroups not combined when parsing CXSMILES
    (github issue #6050 from greglandrum)
  • Regression in depicting molecules with MDL query atoms
    (github issue #6054 from ptosco)
  • Do not include dative bonds in ring finding by default
    (github issue #6058 from DavidACosgrove)
  • Remove check for ring information from Atom::Match
    (github pull #6063 from fwaibl)
  • Correct docstring for minFontSize.
    (github pull #6066 from DavidACosgrove)
  • Minor code cleanup
    (github pull #6101 from ptosco)
  • Dummy atoms should not be considered to be metals for M and MH queries
    (github issue #6106 from greglandrum)
  • Drawing in ACS mode crops small images
    (github issue #6111 from DavidACosgrove)
  • Drawing in ACS1996 mode throws ValueError: Bad Conformer Id if molecule has no coords
    (github issue #6112 from DavidACosgrove)
  • Single atom or queries with hydrogens shouldn't trigger warning in mergeQueryHs
    (github issue #6119 from bp-kelley)
  • DetermineBonds fails for single H atom
    (github issue #6121 from gncs)
  • MinimalLib: avoid that assignStereochemistry() fails when removeHs=true
    (github pull #6134 from ptosco)
  • Round-tripping a reaction through pickle changes the outputs from RunReactants
    (github issue #6138 from kmaziarz)
  • RGD and enhanced stereochemistry
    (github issue #6146 from jones-gareth)
  • MaeMolSupplier requires bond block
    (github issue #6153 from cdvonbargen)
  • Incorrect doule bond drawing with MolDraw2DSVG
    (github issue #6160 from radchenkods)
  • BondDir not cleared from bonds that aren't stereoactive
    (github pull #6162 from greglandrum)
  • Crossed bond not correctly drawn
    (github issue #6170 from ptosco)
  • ReactionFromRxnBlock fails on bond with reacting center status set
    (github issue #6195 from jones-gareth)
  • Possible regression in the atom/bond highlighting code
    (github issue #6200 from ptosco)
  • Updated README to build the PostgreSQL cartridge + bug fix
    (github pull #6214 from ptosco)
  • Atoms may get flagged with non-tetrahedral stereo even when it is not allowed
    (github issue #6217 from ricrogz)
  • Fix TorsionFingerprints for 15 membered rings
    (github pull #6228 from kazuyaujihara)
  • Fix build warnings
    (github pull #6235 from ricrogz)
  • Tri-coordinate atom with implicit + neighbor H atom is found potentially chiral
    (github issue #6239 from ricrogz)
  • DativeBondsToHaptic doesn't set _MolFileBondEndPts correctly.
    (github issue #6252 from DavidACosgrove)
  • Round-tripping ferrocene through HapticBondsToDatives loses drawing highlights.
    (github issue #6253 from DavidACosgrove)
  • Using Chiral Tag instead of CIPCode to ensure preservation of chirality in addHs
    (github pull #6259 from HalflingHelper)
  • Update assignSubstructureFilters.py
    (github pull #6270 from OleinikovasV)
  • deal with deprecated DataFrame.append method
    (github pull #6272 from greglandrum)
  • compile-time error with GCC 12.2.1 on Fedora 36
    (github issue #6274 from rvianello)
  • Fix UnitTestPandasTools for running without pandas installed.
    (github pull #6299 from roccomoretti)
  • Aromatic dashes look bad
    (github pull #6303 from greglandrum)

Cleanup work:

  • Do deprecations for the 2023.03 release
    (github pull #5675 from greglandrum)
  • run clang_format
    (github pull #5676 from greglandrum)
  • Cleanup work on documentation Makefile
    (github pull #5804 from greglandrum)
  • Refactor RGD moving function implementations from header to source files
    (github pull #5958 from jones-gareth)
  • Disable POPCNT on M1
    (github pull #6081 from bjonnh-work)
  • Remove spurious full stops from warnings.
    (github pull #6124 from DavidACosgrove)
  • Reformat Python code for 2023.03 release
    (github pull #6294 from ricrogz)
  • Reformat C/C++ code ahead of 2023.03 release
    (github pull #6295 from ricrogz)

New Features and Enhancements:

  • mol V3000: multicenter dative bond
    (github issue #5121 from marcostenta)
  • add molecular filter examples
    (github pull #5647 from RPirie96)
  • Use templates in RDKit coordinate generation
    (github pull #5643 from rachelnwalker)
  • add MACCS fp to the MinimalLib
    (github pull #5707 from eloyfelix)
  • Enable additional parameters in prepareAndDrawMolecule() and expose them to CFFI/MinimalLib
    (github pull #5731 from ptosco)
  • add includeRedundantEnvironments support to GetMorganGenerator
    (github pull #5732 from greglandrum)
  • FingerprintGenerator refactoring
    (github pull #5748 from greglandrum)
  • Expose RDLog to SWIG wrappers
    (github pull #5749 from ptosco)
  • Add a timeout protection for CIP calculations
    (github pull #5772 from tadhurst-cdd)
  • Expose getMolFrags in CFFI and MinimalLib
    (github pull #5774 from ptosco)
  • Get the wrappers working with SWIG 4.0
    (github pull #5795 from greglandrum)
  • Update AvalonTools to version 2.0.4a
    (github pull #5796 from ptosco)
  • Add early example of drawing a molecule to Getting Started with the RDKit in Python
    (github pull #5803 from bertiewooster)
  • Enable get_molblock(details_json) from MinimalLib
    (github pull #5806 from ptosco)
  • Improvements to PandasTools.SaveXlsxFromFrame
    (github pull #5835 from ptosco)
  • swap boost::tuple to std::tuple
    (github pull #5851 from greglandrum)
  • Make it easy to calculate all 2D descriptors
    (github pull #5892 from greglandrum)
  • Introduces AvgIpc descriptor
    (github pull #5896 from greglandrum)
  • Add SMILES to each group abbreviation in Cookbook
    (github pull #5908 from bertiewooster)
  • Support SubstanceGroups and StereoGroups in JSON
    (github pull #5909 from greglandrum)
  • Add info about mergeHs to README.
    (github pull #5910 from DavidACosgrove)
  • Cookbook - update entry 1 and add entries 38 and 39
    (github pull #5918 from vfscalfani)
  • Allow the sources of conformer generation failures to be retrieved
    (github pull #5960 from greglandrum)
  • Create getExperimentalTorsions() function
    (github pull #5969 from greglandrum)
  • Molblock wedging improvements
    (github pull #5981 from ptosco)
  • MinimalLib JS functions to add/remove Hs in place
    (github pull #5984 from ptosco)
  • Adds Pat Walter's Chembl Filters extraction to the FilterCatalog
    (github pull #5991 from bp-kelley)
  • Add depiction coordinates to molzip
    (github pull #5993 from jones-gareth)
  • Enable using STL algorithms on ROMol atoms and bonds
    (github pull #5995 from ptosco)
  • Enable building MinimalLib as a plain JS file for usage in legacy/headless browsers
    (github pull #5999 from ptosco)
  • Allow WriteSDF to create v3000 SDF files
    (github pull #6004 from jkhales)
  • add maxRecursiveMatches to SubstructMatchParameters
    (github issue #6017 from greglandrum)
  • Expose fingerprint generator options to python
    (github pull #6024 from greglandrum)
  • Allow SMARTS of zero order bonds to match zero order bonds
    (github pull #6037 from d-b-w)
  • Change IUPAC metal->non-metal single bonds to dative
    (github pull #6038 from DavidACosgrove)
  • Add canonicalization of stereo groups (enhanced stereo)
    (github pull #6051 from greglandrum)
  • Improve MaeMolSupplier API
    (github pull #6053 from ricrogz)
  • Enable optional visualization of complex query atoms in a more compact form
    (github pull #6056 from ptosco)
  • Start a Maestro file (.mae) writer.
    (github pull #6069 from ricrogz)
  • Expose some stereochemistry-related functions to SWIG wrappers
    (github pull #6075 from ptosco)
  • Add option to only include shortest paths for topological torsion fingerprints
    (github pull #6090 from greglandrum)
  • Enable "smilesSymbol" substitution in SMARTS
    (github pull #6096 from ricrogz)
  • Add the option to wedge two bonds at chiral centers
    (github pull #6108 from greglandrum)
  • Another minor code cleanup
    (github pull #6109 from ptosco)
  • A few SWIG tweaks
    (github pull #6110 from ptosco)
  • Stereochemistry-related SWIG updates
    (github pull #6127 from ptosco)
  • SWIG pickling improvements (and other cleanup)
    (github pull #6133 from ptosco)
  • Improved handling of organometallics
    (github pull #6139 from DavidACosgrove)
  • expose two missing QueryAtom types to python
    (github pull #6158 from greglandrum)
  • Support Pseudoatoms like Pol and Mod in the RegistrationHash
    (github pull #6175 from irenazra)
  • Better name for areBondsLinear.
    (github pull #6196 from DavidACosgrove)
  • add features to allow drawing molecules in arbitrary positions on a large canvas
    (github pull #6210 from greglandrum)
  • Support chirality when determining if a molecule is a reaction reactant
    (github issue #6211 from jones-gareth)
  • rdMolHash.MolHash function should allow customization of the CXSmiles via Chem.CXSmilesFields
    (github issue #6224 from irenazra)
  • Updated README for cartridge installation into conda PostgreSQL
    (github pull #6236 from ptosco)
  • Add a function to translate the MDL chiral flag into enhanced stereo groups
    (github issue #6241 from ricrogz)
  • Add support for generic matching in the PgSQL cartridge
    (github pull #6269 from bjonnh-work)
  • allowOptionalAttachments should also include terminal query atoms matching hydrogen
    (github pull #6280 from ptosco)
  • Exposed queryColour in MolDrawOptions
    (github pull #6282 from ptosco)
  • Add a new tautomer mol hash
    (github pull #6289 from glandrum)
  • has_coords() now reports whether coords are 2D or 3D if present
    (github pull #6297 from ptosco)
  • Improve the installation/testing instructions.
    (github pull #6298 from roccomoretti)

Code removed in this release:

  • The SmilesParserParams option useLegacyStereo has been removed. Please use
    SetUseLegacyStereoPerception() instead.
  • The following JS methods:
    • generate_aligned_coords()
    • get_morgan_fp()
    • get_morgan_fp_as_uint8array()
    • get_pattern_fp()
    • get_pattern_fp_as_uint8array()
      which used to take several individual parameters have been removed.
      Please use the versions which take a single JSON string parameter.
  • The PrintAsBase64PNGString function in PandasTools has been removed.
    Please use PrintAsImageString instead.

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

Release_2022.09.1

(Changes relative to Release_2022.03.1)

Acknowledgements

Jonathan Bisson, Andy Cai, David Cosgrove, JP Ebejer, Aleš Erjavec, Peter
Gedeck, Mosè Giordano, Sreya Gogineni, Emanuele Guidotti, Hyeonki Hong, Gareth
Jones, Per Johnsson, Maria Kadukova, Eisuke Kawashima, Brian Kelley, Alan
Kerstjens, Michel Moreau, Dan Nealschneider, Santeri Puranen, Ricardo
Rodriguez-Schmidt, Guy Rosin Jeff van Santen, David Schaller, David W.H.
Swenson, Paolo Tosco, Antonio Trande, Ivan Tubert-Brohman, Alexandra Wahab,
Rachel Walker, balducci, GLPG-GT

Highlights

  • The new RegistrationHash module provides one of the last pieces required to
    build a registration system with the RDKit.
  • This release includes an initial version of a C++ implementation of the
    xyz2mol algorithm for assigning bonds and bond orders based on atomic
    positions. This work was done as part of the 2022 Google Summer of Code.
  • A collection of new functionality has been added to minimallib and is now
    accessible from JavaScript and other programming languages.

Backwards incompatible changes

  • Changes to the way atomic chirality is used in the canonicalization algorithm
    mean that canonical atom ranking and canonical SMILES generated with this
    RDKit version can be different from those generated with previous versions
  • GetBestRMS() and CalcRMS() by default now treat terminal conjugated functional
    groups like carboxylate and nitro symmetrically. For example, the group
    C(=[O:1])[O-:2] can match in either orientation. The SMARTS pattern which is
    used to recognize affected groups is:
    [{atomP};$([{atomP}]-[*]=[{atomP}]),$([{atomP}]=[*]-[{atomP}])]~[*] where
    {atomP} is O,N;D1. The previous behavior can be restored using by setting
    the symmetrizeConjugatedTerminalGroups argument to false when calling
    GetBestRMS() and CalcRMS()
  • The following #defines are no longer provided in/used by the C++ code or RDConfig.h:
    • BUILD_COORDGEN_SUPPORT: use RDK_BUILD_COORDGEN_SUPPORT instead
    • RDK_THREADSAFE_SSS: use RDK_BUILD_THREADSAFE_SSS instead
    • USE_BUILTIN_POPCOUNT: use RDK_OPTIMIZE_POPCNT instead
  • The Python function Chem.GetSSSR() now returns the SSSR rings found instead
    of just returning the count of rings. This is consistent with
    Chem.GetSymmSSSR() and more useful.
  • The SMILES parser will ignore the value of
    SmilesParserParams.useLegacyStereo unless it is set to false. See the
    deprecation note about useLegacyStereo below for more information.
  • The CFFI function set_2d_coords_aligned() now takes an additional char **match_json
    parameter; if match_json is not not NULL, *match_json will point to a
    JSON string containing the atoms and bonds which are part of the match.
    It is up to the user to free this string.
  • The aliphatic imine rule used in tautomer enumeration has been changed to more
    closely match the definition in the original paper.

Bug Fixes:

  • H atoms in SGroups cause RDKit to clear SGroups after parsing
    (github issue #2716 from ricrogz)
  • RDKit misplaces stereochemistry/chirality information for small ring
    (github issue #2984 from d-b-w)
  • DrawMorganBit returns empty image for "isolated" fingerprints
    (github issue #4242 from eguidotti)
  • Cores with query atoms may fail to R-group-decompose molecules
    (github issue #4505 from ptosco)
  • Unable to serialize coordinates as floats in combination with *Props
    (github issue #4621 from santeripuranen)
  • Image Generation: Highlighting looks off when bondLineWidth is increased for PNG generation
    (github issue #5122 from rachelnwalker)
  • RDKit crashes on CIP label calculation
    (github issue #5142 from ricrogz)
  • Modified the JS tests to comply with older nodejs versions
    (github pull #5148 from ptosco)
  • Presence of exocyclic S/D, S/A or D/A query bonds prevents benzene from being recognized as aromatic
    (github issue #5152 from rachelnwalker)
  • Fix for RGD dummy atom bug in RDKit::replaceCore
    (github pull #5154 from jones-gareth)
  • KekulizeException of molecule from Smarts pattern with new RDKit release
    (github issue #5156 from schallerdavid)
  • Very small fix to avoid an AttributeError
    (github pull #5163 from ptosco)
  • issue with V3000 SD files containing enhanced stereochemistry information
    (github issue #5165 from GLPG-GT)
  • Draw.MolToQPixmap raises a TypeError with Python 3.10
    (github issue #5166 from ales-erjavec)
  • Standardization via RDKit breaks molecules
    (github issue #5169 from malteseunderdog)
  • Multiple calls to BlockLogs() permanently disable logging
    (github issue #5172 from ricrogz)
  • Check architecture of the target system to optimise popcnt
    (github pull #5182 from giordano)
  • More consistently check for WIN32 instead of MSVC in CMake files
    (github pull #5183 from giordano)
  • Atom indices inside double bond
    (github issue #5185 from DavidACosgrove)
  • Bug in IPython display after setting a molecule property
    (github issue #5192 from dwhswenson)
  • Zero & coordinate bonds are being taken into account for chirality
    (github issue #5196 from ricrogz)
  • FindPotentialStereo does not clean stereoflags from atoms which cannot be stereocenters
    (github issue #5200 from greglandrum)
  • Fixes array overflow in FMCS code
    (github pull #5205 from ricrogz)
  • PeriodicTable initialization is not thread safe
    (github issue #5207 from ricrogz)
  • Find and remove deprecated ifdefs
    (github issue #5210 from greglandrum)
  • Fix use of not thread safe function localtime()
    (github pull #5211 from ricrogz)
  • Fix duplicate non thread safe check in VarianceDataForLabel
    (github pull #5212 from ricrogz)
  • RDKit::Utils::LocaleSwitcher is not thread safe
    (github issue #5214 from ricrogz)
  • Core with query atoms and no user definded attachment points may create poor decompostions
    (github issue #5222 from jones-gareth)
  • error: format not a string literal and no format arguments
    (github issue #5234 from sagitter)
  • Fix qt build under VS2019
    (github pull #5238 from ricrogz)
  • Precondition violation on chiral Atoms with zero order bonds
    (github issue #5239 from ricrogz)
  • pyForceFieldConstraints test failed
    (github issue #5252 from sagitter)
  • drawReaction() should not hit a PRECONDITION with prepareMolsBeforeDrawing=false
    (github issue #5259 from ptosco)
  • Atom annotations poorly placed on highlighted atoms
    (github issue #5269 from DavidACosgrove)
  • Make the aliphatic imine rule more closely match the definition in the paper
    (github pull #5270 from greglandrum)
  • rdMolDraw2D.PrepareMolForDrawing(None) causes segmentation fault
    (github issue #5298 from perjo)
  • MolStandardize: uncharger failing in molecules with zwitterionic sulfone
    (github issue #5317 from greglandrum)
  • MolStandardize: some operations throwing on non-standardized molecules
    (github issue #5318 from greglandrum)
  • MolStandardize: cleanup() function not correctly reassigning stereochemistry
    (github issue #5320 from greglandrum)
  • Runtime error when writing reaction with substance group to V3000 rxnblock
    (github issue #5324 from rachelnwalker)
  • MolFromMolBlock should correctly assign stereochemistry to 3D molecules
    (github issue #5327 from greglandrum)
  • assignChiralTypesFrom3D() ignores wiggly bonds
    (github issue #5328 from greglandrum)
  • Molzip segfaults instead of throwing an error when multiple bonds are formed to the same pairs of atoms
    (github issue #5334 from loluwot)
  • leftover debugging code makes build of 2022_03_3 tarball fail
    (github issue #5351 from balducci)
  • Prevent wedging ring bonds
    (github pull #5356 from greglandrum)
  • Class info info missing for for wavy bonds in SVGs.
    (github pull #5358 from DavidACosgrove)
  • MolToSmiles with doRandom=True raises errors with molecules containing fragments.
    (github issue #5372 from greglandrum)
  • Restore #5103 that was accidentally reverted in #5132
    (github pull #5381 from ptosco)
  • cairo error when using similarity maps
    (github issue #5383 from greglandrum)
  • MolDraw2DQt and MolDraw2DJS don't draw wavy bonds
    (github issue #5386 from greglandrum)
  • MolDraw2DQt draws brackets incorrectly
    (github issue #5389 from greglandrum)
  • PandasTools should not always bring in IPythonConsole
    (github pull #5392 from greglandrum)
  • Tautomer enumeration removes stereochemistry depending on how aromatic rings are defined in SMILES
    (github issue #5402 from greglandrum)
  • Incorrect perception of pseudoasymmetric centers on non-canonical molecules
    (github issue #5403 from ptosco)
  • Fix performance issue in RingUtils::checkFused
    (github pull #5410 from rachelnwalker)
  • Multi-coloured highlights go wrong with small fonts
    (github issue #5420 from DavidACosgrove)
  • Parsing a Mol block/file does not clear the "molTotValence" property from atoms
    (github issue #5423 from ricrogz)
  • Pre-condition Violation - Failed Expression: dir == Bond::ENDUPRIGHT || dir == Bond::ENDDOWNRIGHT
    (github issue #5433 from bjonnh-work)
  • MolZip doesn't preserve bond directions when zipping
    (github issue #5450 from bp-kelley)
  • Draw option noAtomLabels and explicit hydrogen works badly
    (github issue #5453 from DavidACosgrove)
  • Fix integer overflow in RGroupDecomposition strategy GA
    (github pull #5460 from bp-kelley)
  • Invalid number of radical electrons calculated for [Pr+4]
    (github issue #5462 from bjonnh-work)
  • CXSmiles isn't properly escaping floating point properties
    (github issue #5466 from bp-kelley)
  • Crossed trans bonds in rings
    (github issue #5486 from DavidACosgrove)
  • MolDraw2D::drawMolecules() should not crash on null molecules
    (github pull #5503 from ptosco)
  • Running kekulization on mols with query bonds will either fail or return incorrect results.
    (github issue #5505 from ricrogz)
  • Regression in the way aldehydes are drawn in current master
    (github issue #5511 from ptosco)
  • Drawing code gives segmentation fault.
    (github issue #5534 from DavidACosgrove)
  • RGD may yield poor depictions
    (github issue #5569 from jones-gareth)
  • Fix a problem when generating conformers for molecules with larger heteroatoms in conjugated 5-rings
    (github pull #5586 from greglandrum)
  • Avoid incurring into division by zero in normalizeDepiction
    (github pull #5619 from ptosco)
  • Allow properties to be displayed in jupyter when 3D rendering is enabled
    (github pull #5624 from greglandrum)
  • Checking whether double bond's controlling atoms are duplicate may cause an infinite loop.
    (github issue #5659 from ricrogz)

Cleanup work:

  • update release notes, do deprecations
    (github pull #5161 from greglandrum)
  • Fix typo: quarternary --> quaternary
    (github pull #5243 from guyrosin)
  • fix doxygen comments
    (github pull #5254 from e-kwsm)
  • make the catch tests build faster
    (github pull #5284 from greglandrum)
  • make the logging tests more robust
    (github pull #5312 from greglandrum)
  • Update docs for ReplaceSubstructs
    (github pull #5343 from i-tub)
  • Minimallib NPM release fixes - wrong node bin command in Dockerfile and prepublish npm script command replacement
    (github pull #5349 from MichelML)
  • Update code formatting in GettingStartedInPython.rst
    (github pull #5350 from gedeck)
  • fix: rdkit.Chem.rdDistGeom.EmbedMultipleConfs docstring indentation
    (github pull #5404 from jvansan)
  • Remove obsolete files related to rdkit-js + write a rescoped README for MinimalLib
    (github pull #5432 from MichelML)
  • Fixes "DeprecationWarning: invalid escape sequence \C" when importing EnumerateStereoisomers
    (github pull #5478 from ricrogz)
  • Fix double to float downcasting warning
    (github pull #5479 from ricrogz)
  • Remove spurious doxygen tag
    (github pull #5488 from ptosco)
  • Add deprecation warning to docstring.
    (github pull #5498 from DavidACosgrove)
  • Remove unnecessary compiler flags that would be ignored anyway
    (github pull #5587 from ptosco)
  • Update AvalonTools to version 2.0.1
    (github pull #5591 from ptosco)

New Features and Enhancements:

  • Initial support for non-tetrahedral stereochemistry
    (github pull #5084 from greglandrum)
  • Move to C++17
    (github pull #5155 from greglandrum)
  • Add multi-template isMoleculeXOfReaction overloads
    (github pull #5171 from AlanKerstjens)
  • Add support for Qt6
    (github pull #5203 from ricrogz)
  • Make atom, bond iterators usable in STL algorithms
    (github pull #5204 from ricrogz)
  • Make TautomerQuery serializable
    (github pull #5248 from greglandrum)
  • add boost::serialization support to ROMol
    (github pull #5249 from greglandrum)
  • Add support for Pol and Mod pseudoatoms
    (github pull #5264 from greglandrum)
  • Allow the compiler to generate default ChemicalReaction copy assignment operator
    (github pull #5265 from AlanKerstjens)
  • cdxml parser
    (github pull #5273 from bp-kelley)
  • Expose reaction drawing and additional FPs in MinimalLib
    (github pull #5277 from ptosco)
  • Expose mappings of atom/bond indices abbreviated mol->original mol
    (github pull #5300 from ptosco)
  • Start using string_views in the file parsers
    (github pull #5301 from greglandrum)
  • Add a global feature flag to enable the "new" stereo perception code
    (github pull #5309 from greglandrum)
  • Support conjugated terminal groups in GetBestRMS()
    (github pull #5322 from greglandrum)
  • Open sources Schrodinger's implementation of "molhash"
    (github pull #5360 from d-b-w)
  • Drop usage of CIP information from the canonicalization code
    (github pull #5385 from greglandrum)
  • GetSSSR should have same return type as GetSymmSSSR
    (github issue #5395 from chmnk)
  • Add prop related method into JSMol
    (github pull #5414 from hhk7734)
  • Add draw option to force use of wedge information in MolBlock if pres…
    (github pull #5417 from DavidACosgrove)
  • Add ACS1996 drawing style
    (github pull #5425 from DavidACosgrove)
  • Treat unspecified stereo as unknown
    (github issue #5436 from DavidACosgrove)
  • New version of AssignStereochemistry
    (github pull #5442 from greglandrum)
  • MolZip: add atom property labels for mol-zipping
    (github pull #5446 from bp-kelley)
  • Add atom property (int/unsigned int) to indicate which atoms to MolZip
    (github issue #5451 from bp-kelley)
  • Improved bond highlights
    (github pull #5484 from DavidACosgrove)
  • Include element name in atomic data
    (github pull #5524 from rachelnwalker)
  • Add Substance Groups and Stereo Groups to debugMol()
    (github pull #5526 from ricrogz)
  • make it easy to create DAT SGroups from Python
    (github pull #5544 from greglandrum)
  • Integrating xyz2mol Into The RDKit Core (GSoC 2022)
    (github pull #5557 from gosreya)
  • Switch yaehmop wrapper to basic cmake
    (github pull #5558 from greglandrum)
  • fix warnings ahead of 2022.09 release
    (github pull #5561 from ricrogz)
  • add mergeIsotopes option to mergeQueryHs
    (github pull #5563 from jones-gareth)
  • Add CXSMILES support for bond wedging and wiggly bonds
    (github pull #5575 from greglandrum)
  • Add GetBestTFDBetweenMolecules()
    (github pull #5577 from greglandrum)
  • Add ColorPalette_Vect to SWIG bindings
    (github pull #5580 from jones-gareth)
  • small changes to get the RDKit to build with C++20
    (github pull #5581 from greglandrum)
  • Improvements to 2D depiction and alignment/RMSD calculation
    (github pull #5598 from ptosco)
  • Expose additional functionality to SWIG wrappers
    (github pull #5614 from ptosco)
  • Add an RGroupDecomp aware molzip to the FreeWilson Contribution
    (github pull #5615 from bp-kelley)
  • PandasTools and InteractiveRenderer improvements
    (github pull #5628 from ptosco)
  • Add updateMolDrawOptionsFromJSON()
    (github pull #5630 from ptosco)
  • InteractiveRenderer.setEnabled() improvements
    (github pull #5635 from ptosco)
  • Support stereo for double bonds in rings from CXSMILES
    (github pull #5636 from greglandrum)
  • add stop condition for arom calc of large ringysystems
    (github pull #5648 from alexwahab)
  • Speed up ring detection by reducing allocations
    (github pull #5654 from d-b-w)
  • Expose highlighAtomColors, highlighBondColors and highlightAtomRadii to CFFI and JS
    (github pull #5657 from ptosco)
  • Update obsolete SWIG definitions
    (github pull #5658 from ptosco)
  • Speed up ring detection by reducing count() calls
    (github pull #5663 from d-b-w)
  • Expose two SubstructUtils functions to SWIG wrappers
    (github pull #5666 from ptosco)

Code removed in this release:

  • The C++ class RDLog::BlockLogs has been removed. Please use the class RDLog::LogStateSetter. The Python class rdBase.BlockLogs() is still available and supported.
  • Python function rdkit.Chem.WrapLogs() has been removed. Please use
    rdkit.rdBase.LogToPythonStderr(). rdkit.rdBase.WrapLogs() also exists, but
    unless you need the old teeing behavior, prefer the former.
  • Python function rdkit.Chem.LogWarningMsg() has been removed. Please use
    rdkit.rdBase.LogWarningMsg().
  • Python function rdkit.Chem.LogErrorMsg() has been removed. Please use
    rdkit.rdBase.LogErrorMsg().

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

  • The SmilesParserParams option useLegacyStereo is deprecated and will be
    removed in the 2023.03 release. Please use SetUseLegacyStereoPerception()
    instead. In the meantime the SMILES parser will use only use the value of
    SmilesParserParams.useLegacyStereo if it is set to false, otherwise the
    value of the global useLegacyStereoPerception parameter will control the
    behavior of the SMILES parser.
  • The following JS methods:
    • generate_aligned_coords()
    • get_morgan_fp()
    • get_morgan_fp_as_uint8array()
    • get_pattern_fp()
    • get_pattern_fp_as_uint8array()
      which used to take several individual parameters now take a single JSON string parameter.
      The overloads taking several individual parameters are now deprecated and will be
      removed in a future release.
  • The PrintAsBase64PNGString function in PandasTools is deprecated and replaced
    by PrintAsImageString, which has a more appropriate name given it actually supports
    both PNG and SVG images.

Release_2022.03.1

(Changes relative to Release_2021.09.1)

Backwards incompatible changes

  • When running in Jupyter Notebook, logs are now sent only to Python's
    standard error stream, and no longer include the RDKit LEVEL prefix.
  • The Debug and Info logs are now disabled by default. If you would like to
    enable them within your code you can call rdBase.EnableLog("rdApp.info")
    and/or rdBase.EnableLog("rdApp.debug").
  • The MolHash functions now reassign stereochemistry after modifying the
    molecule and before calculating the hash. Previous versions would still
    include information about atom/bond stereochemistry in the output hash even if
    that no longer applies in the modified molecule.
  • The rules for aromaticity in rings containing dummy atoms have been changed.
    The general intention of the new handling is that aromaticity will not be
    perceived for rings containing dummy atoms unless it's clear that the dummies
    should be aromatic. As an example: the SMILES C1=C*2=CC=CC=*2C=C1 is
    perceived to be aromatic while the SMILES C1=C*2C=CC=C*2C=C1 (which does not
    have any double bonds to the dummy atoms) is not; in previous RDKit releases
    both of these structures were aromatic. There's more information about this in
    the discussion of PR #4722 (#4722) and
    Issue #4721 (#4721).
  • In the PostgreSQL cartridge the mol_in() function no longer performs full
    sanitization of the molecule. One consequence of this is that directly casting
    from strings to molecules also no longer does sanitization, so select 'CN(=O)=O'::mol
    does not sanitize the molecule. If you want to convert a string to a molecule
    with full sanitization you can either cast to text first
    (i.e. select 'CN(=O)=O'::text::mol or use the mol_from_smiles() function.
  • The code to calculate bit vector topological torsion fingerprints for
    reactions no longer ignore the fingerprint size argument.
  • The rules for tautomer enumeration in MolStandardize have been updated to
    more closely match the rules in the original publication. These changes
    primarily consist of making the rules more specific; the consequence is that
    less tautomers will be generated with this version. The previous rules can
    still be accessed via the function GetV1TautomerEnumerator() (Python) or
    getV1TautomerEnumerator() (C++)

Highlights

  • The RDKit can now integrate with the python logger: calling
    rdBase.LogToPythonLogger() enables this. All log messages are sent to a
    logger named "rdkit".
  • The backend of the MolDraw2D code has been extensively refactored. This should
    be mostly invisible to RDKit users, but it makes supporting and extending that
    code much easier.
  • Beilstein generics (i.e. things like "ARY", "ALK", or "CAL") are now supported
    when doing substructure queries. This is a first step towards enabling some
    really cool substructure search possibilities.

Acknowledgements

Marcel Baltruschat, Jason Biggs, Kevin Burk, Cédric Bouysset, David Cosgrove,
Joel Duerksen, Jacob Gora, Gareth Jones, Toshiki Kataoka, Eisuke Kawashima,
Brian Kelley, Sonia Liggi, Niels Kristian Kjærgård Madsen, Hector
Martinez-Seara, Dan Nealschneider, Alex Rebert, Ricardo Rodriguez-Schmidt, Steve
Roughley, Roger Sayle, Nikolai Schapin, Ansgar Schuffenhauer, Kaushalesh Shukla,
Jon Sorenson, Ichiru Take, Paolo Tosco, Kazuya Ujihara, Fabio Urbina, Riccardo
Vianello Rachel Walker, Maciej Wójcikowski, SPKorhonen, yuri@FreeBSD,

Code removed in this release:

  • The useCountSimulation keyword argument for
    rdFingerprintGenerator.GetMorganGenerator and
    rdFingerprintGenerator.GetAtomPairGenerator has been removed. Please use the
    countSimulation keyword argument instead.
  • The function mol_from_smarts() in the PostgreSQL cartridge has been removed.
    Please use the qmol_from_smarts() function instead.
  • The computeBalabanJ() functions from the MolOps namespace were removed.
    These were not exposed to Python, so this will not affect any Python code.

Bug Fixes:

  • Fix Flake8 erorrs
    (github pull #4252 from e-kwsm)
  • handle sqlalchemy deprecation
    (github pull #4625 from greglandrum)
  • Debug build of the postgres cartridge fails pg_regress tests for reaction.sql
    (github issue #4631 from rvianello)
  • fix parsing beyond the end of the input string in findMCSsmiles
    (github pull #4636 from rvianello)
  • Mem leak fixes
    (github pull #4637 from ricrogz)
  • Subsequent call to rdChemReactions.ChemicalReaction.RunReactants will block indefinitely.
    (github issue #4651 from goraj)
  • Fix docstring of ConstrainedEmbed
    (github pull #4666 from kazuyaujihara)
  • Postgres cartridge build fails under Ubuntu
    (github issue #4681 from SPKorhonen)
  • Molfile SDD records not properly displayed
    (github pull #4690 from jones-gareth)
  • RGD: fix for cores with MOL block atom lists
    (github pull #4695 from jones-gareth)
  • Wrong tautomers generated
    (github issue #4700 from sonial)
  • RGD align output core to input structure
    (github pull #4709 from jones-gareth)
  • TorsionFingerprints raises error with S(Cl)F4 group
    (github issue #4720 from kazuyaujihara)
  • Dummy atoms next to aromatic are always kekulized even when they should not
    (github issue #4721 from ptosco)
  • TautomerEnumerator will crash if copied with a callback set
    (github issue #4736 from ptosco)
  • Minor PandasTools cleanup
    (github pull #4744 from ptosco)
  • Reaction parser fails when CX extensions are present
    (github issue #4759 from greglandrum)
  • GetSimilarityMapFromWeights changes behavior of parameter "colorMap" depending on whether the parameter "draw2d" is provided or not
    (github issue #4763 from FabioUrbina)
  • Highlight bond width is different for different PNG image sizes
    (github issue #4764 from rachelnwalker)
  • Fixes crashing bug with finalSubstructChecks
    (github pull #4782 from greglandrum)
  • MDL query with aromatic bond sets aromatic flag on atoms even though they are not in an aromatic ring
    (github issue #4785 from ptosco)
  • [Cartridge]: qmol_from_ctab and qmol_from_smiles are sanitizing molecules
    (github issue #4787 from greglandrum)
  • AdjustQueryProperties() is inconsistent when adjustConjugatedFiveRings is set
    (github issue #4789 from greglandrum)
  • Draw.MolToFile to SVG raises "Can't kekulize" error
    (github issue #4792 from toslunar)
  • Ring double bonds written as crossed bonds after RGD
    (github issue #4809 from greglandrum)
  • Fix a number of crashing bugs in the python wrappers
    (github pull #4810 from greglandrum)
  • correctly tag unspecified branch-begin bonds in SMARTS
    (github pull #4811 from greglandrum)
  • AttributeError in PandasTools
    (github issue #4821 from greglandrum)
  • reloading PandasTools leads to infinite recursion
    (github issue #4823 from greglandrum)
  • ReplaceCore should set stereo on ring bonds when it breaks rings
    (github issue #4825 from greglandrum)
  • MolDraw2D::drawArc() starts at wrong angle
    (github issue #4836 from greglandrum)
  • MolDraw2D::drawArc() not exposed to Python
    (github issue #4837 from greglandrum)
  • align argument to MolDraw2D::DrawString() cannot be used from Python
    (github issue #4838 from greglandrum)
  • Fix RunFilterCatalog() thread counts.
    (github pull #4856 from xavierholt)
  • RGD: dummy atom in input structure is mishandled
    (github pull #4863 from jones-gareth)
  • Fix bug with wedges being drawn backwards
    (github pull #4868 from greglandrum)
  • Missing dependency on RDKit::RingDecomposerLib_static in RDKit::GraphMol_static
    (github issue #4875 from nielskm)
  • cannot parse coordinate bonds from CXSMARTS
    (github issue #4878 from greglandrum)
  • fix some leaks in the SWIG wrappers
    (github pull #4916 from greglandrum)
  • Fix some problems turned up by ossfuzz
    (github pull #4927 from greglandrum)
  • Fix i-files for RDK_USE_BOOST_IOSTREAMS=OFF
    (github pull #4933 from kazuyaujihara)
  • Fails on i386: non-constant-expression cannot be narrowed from type 'unsigned int' to 'npy_intp' (aka 'int') in initializer list
    (github issue #4934 from yurivict)
  • Fix SWIG wrappers for C#
    (github pull #4935 from kazuyaujihara)
  • Definition of eccentricity in documentation is wrong
    (github issue #4952 from drkeoni)
  • fix CMakeLists.txt extracting link line from python LDSHARED config var
    (github pull #4954 from rvianello)
  • add JavaGzStreamTests
    (github pull #4973 from kazuyaujihara)
  • Invalid SMARTS generated by MolToSmarts
    (github issue #4981 from nielskm)
  • Fix memory safety issues found by OSS-Fuzz
    (github pull #4983 from alpire)
  • AssignStereochemistry should remove nonchiral atoms from StereoGroups
    (github pull #4986 from greglandrum)
  • Transform3D#SetRotation() around arbitrary axis scales coordinates
    (github issue #4995 from sroughley)
  • Bad handling of dummy atoms in the CIP assignment code
    (github issue #4996 from greglandrum)
  • Bad handling of fragments in CIP code
    (github issue #4998 from greglandrum)
  • Drawing query atoms containing an AND query raises an exception
    (github issue #5006 from ptosco)
  • Bad tautomers produced for phosphorous compounds
    (github issue #5008 from NikSchap2107)
  • Fix warning when generating coordinates for ZOBs
    (github pull #5011 from d-b-w)
  • Code in the docstring for FindMolChiralCenters() doesn't work
    (github pull #5014 from greglandrum)
  • Mol images in DataFrames are drawn only once in Jupyter Lab
    (github issue #5017 from mrcblt)
  • Drop gist_qmol_ops in upgrade scripts in case it exists
    (github pull #5021 from mwojcikowski)
  • Remove extra newline from Kekulize error message.
    (github pull #5022 from xavierholt)
  • Neighboring Hs not taken into account in connectivity invariants
    (github issue #5036 from greglandrum)
  • smiles parsing error due to erroneous ring perception
    (github issue #5055 from AnsgarSchuffenhauer)
  • To INCHI conversion leaks on kekulization failure
    (github pull #5057 from ricrogz)
  • Add a CXSMILES option to the MolHash
    (github pull #5058 from greglandrum)
  • Make the RGD code work when rgroupLabelling is Isotope
    (github pull #5088 from greglandrum)
  • Compilation issue with catch.hpp
    (github issue #5089 from hseara)
  • pg_restore: error: COPY failed for table "mols": ERROR: could not create molecule from SMILES
    (github issue #5095 from joelduerksen)
  • Removing H preserving only wedged ones strips all H
    (github issue #5099 from ricrogz)
  • fix a mistake in the enhanced stereochemistry substructure table
    (github issue #5101 from greglandrum)
  • NumRotatableBonds() incorrect for partially sanitized molecule
    (github issue #5104 from greglandrum)
  • Wiggly bonds don't override wedged bonds
    (github issue #5108 from greglandrum)

Cleanup work:

  • Do the deprecations for the 2022.03 release
    (github pull #4626 from greglandrum)
  • clang-tidy: readability-simplify-boolean-expr
    (github pull #4639 from e-kwsm)
  • Clean-up Python 4815 - P1.1: Chem\AtomPairs
    (github pull #4859 from IchiruTake)
  • Clean-up Python #4815 - P1.2: Chem/ChemUtils
    (github pull #4860 from IchiruTake)
  • Clean-up Python #4815 - P1.3: Chem\Draw
    (github pull #4891 from IchiruTake)
  • Clean-up Python #4815 - P1.4: Chem\EState
    (github pull #4893 from IchiruTake)
  • Clean-up Python #4815 - P1.5: Chem\FeatMaps
    (github pull #4894 from IchiruTake)
  • Clean-up Python #4815 - P1.6: Chem\Features
    (github pull #4896 from IchiruTake)
  • Clean-up Python #4815 - P1.8: Chem\fmcs
    (github pull #4898 from IchiruTake)
  • Clean-up Python #4815 - P1.9: Chem\Fraggle
    (github pull #4906 from IchiruTake)
  • Clean-up Python #4815 - P1.10: Chem\MolDb
    (github pull #4907 from IchiruTake)
  • Clean-up Python #4815 - P1.11: Chem\MolKey
    (github pull #4910 from IchiruTake)
  • Clean-up Python #4815 - P1.12: Chem\MolStandardize
    (github pull #4911 from IchiruTake)
  • Clean-up Python #4815 - P1.13: Chem\Pharm2D & Chem\Pharm3D
    (github pull #4912 from IchiruTake)
  • Clean-up Python #4815 - P1.14: Chem\Scaffolds & Chem\SimpleEnum
    (github pull #4913 from IchiruTake)
  • Run clang-tidy (readability-braces-around-statements)
    (github pull #4977 from e-kwsm)
  • silence warnings in MSVC compliatons
    (github pull #5044 from bp-kelley)
  • Clean up the warning landscape
    (github pull #5048 from greglandrum)
  • Cleanup of python API documentation stubs
    (github pull #5105 from greglandrum)

New Features and Enhancements:

  • Update coordgenlibs to v3.0.0
    (github pull #4638 from ricrogz)
  • Fix some compile-time warnings in the postgres cartridge code
    (github pull #4657 from rvianello)
  • Add some new color palettes to MolDraw2D
    (github pull #4668 from greglandrum)
  • Add support for Beilstein generics when doing substructure queries
    (github pull #4673 from greglandrum)
  • Remove unnecessary mutex in InChI wrapper
    (github pull #4680 from greglandrum)
  • Update mac CI builds
    (github pull #4738 from greglandrum)
  • Remove dead code
    (github pull #4739 from ptosco)
  • Refactor the memory management of the postgres cartridge cache module
    (github pull #4755 from rvianello)
  • Improve CMake integration of PgSQL build
    (github pull #4767 from ptosco)
  • Allow MolDraw2DCairo and MolDraw2DSVG to determine canvas size based on the molecule
    (github pull #4772 from greglandrum)
  • generate the sql update files in the binary (build) directory
    (github pull #4777 from rvianello)
  • Allow using heavy atoms only in the FragmentChooser
    (github pull #4791 from ptosco)
  • silence warnings in MSVC compilations
    (github pull #4796 from bp-kelley)
  • Support using the python logger
    (github issue #4840 from xavierholt)
  • Add support for quadruple bonds in SMILES
    (github issue #4842 from jasondbiggs)
  • Some refactoring of the depictor code
    (github pull #4865 from greglandrum)
  • Build documentation for 3 missing modules
    (github pull #4879 from ptosco)
  • Add access to query atom symbols from python or an option to render them in images
    (github issue #4880 from rachelnwalker)
  • Start adding move constructors and move-assignment operators
    (github pull #4909 from greglandrum)
  • Refactor mol draw2 d
    (github pull #4948 from DavidACosgrove)
  • [ENH]: Support greater use of findAtomEnvironmentOfRadiusN()
    (github pull #4970 from IchiruTake)
  • Move isEarlyAtom to a table to reduce lock contention in getPeriodicTable
    (github pull #4980 from bp-kelley)
  • Support writing V3000 reactions
    (github pull #4982 from greglandrum)
  • Make FMCS check bond stereo.
    (github pull #5009 from DavidACosgrove)
  • Improving atom colors for dark mode.
    (github pull #5038 from kaushaleshshukla)
  • enable the multithreaded LeaderPicker on linux
    (github pull #5043 from greglandrum)
  • Expose MolzipParams::atomSymbols to python
    (github pull #5054 from bp-kelley)
  • disable Info and Debug logs by default
    (github pull #5065 from greglandrum)
  • Add sanitize option to molzip
    (github pull #5069 from bp-kelley)
  • "Powered by RDKit" Badge
    (github pull #5085 from cbouy)
  • Add a couple of depiction helper functions and some JS bindings
    (github pull #5115 from ptosco)
  • Swig MolDraw2D cairo
    (github pull #5128 from jones-gareth)
  • Enables rdkit-structure-renderer.js in Jupyter Lab and Notebook
    (github pull #5132 from ptosco)

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

  • Python function rdkit.Chem.WrapLogs() is deprecated in favor of
    rdkit.rdBase.LogToPythonStderr(). rdkit.rdBase.WrapLogs() also exists,
    but unless you need the old teeing behavior, prefer the former.
  • Python function rdkit.Chem.LogWarning() is deprecated in favor of
    rdkit.rdBase.LogWarning().
  • Python function rdkit.Chem.LogError() is deprecated in favor of
    rdkit.rdBase.LogError().
  • The C++ class RDLog::BlockLogs is deprecated in favor of the the class RDLog::LogStateSetter.

Release_2021.09.1

(Changes relative to Release_2021.03.1)

Backwards incompatible changes

  • RWMol.replaceAtom() no longer removes SubstanceGroups which reference that atom.
  • The keepSGroups argument to RWMol.replaceBond() now defaults to true.
  • The SMARTS parser now by default accepts CXSMILES extensions and molecule
    names. SMARTS which previously failed to parse like CCC fail will now return
    valid molecules.
  • Molecule names in SMILES and SMARTS are now parsed by default. Previously they
    were ignored.
  • The getParams() function for retrieving UFF parameters now returns a const
    pointer instead of a standard pointer. This shouldn't affect the functionality
    of any code since the only method of the class is also const.

Highlights

  • Single reactant/single product reactions can now be applied in-place. This
    really helps with the performance of these kinds of transformations.
  • The CFFI wrapper around MinimalLib greatly expands the number of possible
    places the RDKit can be used from.
  • A number of general enhancements and quality-of-life improvements were made
    to the PostgreSQL cartridge.

Acknowledgements

Jason Biggs, Kit Choi, David Cosgrove, Eloy Félix, Harrison Green, Gareth Jones,
Eisuke Kawashima, Alan Kerstjens, Brian Kelley, John Konecny, Stephanie
Labouille, Rasmus Lundsgaard, Hadrien Mary, Michel Moreau, Dan Nealschneider,
Axel Pahl, Maximilian Peters, Alessio Ragno, Ricardo Rodriguez-Schmidt, Riccardo
Sabatini, Roger Sayle, Vincent F. Scalfani, Dan Skatov, David Slochower, Peter
St. John, Mihaly Szabo, Ichiru Take, Paolo Tosco, Ivan Tubert-Brohman, Kazuya
Ujihara, Alain Vaucher, Riccardo Vianello, Rachel Walker, Shuzhe Wang, Maciej
Wójcikowski, bzoracler, jungb-basf, charly828, yoer77,

Code removed in this release:

  • The minimizeOnly option for coordgen has been removed.

Contrib updates:

  • Contribute FreeWilson analysis
    (github pull #4026 from bp-kelley)

Bug Fixes:

  • cannot pass drawOptions to MolsToGridImage when using notebook
    (github issue #3101 from slochower)
  • Draw.MolToImage() cannot highlight with highlightMap (v > '2019.09.3' )
    (github issue #3616 from spideralessio)
  • EnumerateStereoisomers fail with STEREOANY bonds from molblock
    (github issue #3759 from TermeHansen)
  • Double bond stereo gets flipped by SMILES reader/writer
    (github issue #3967 from mwojcikowski)
  • SparseIntVect copy constructor and assignment operators not clearing existing data
    (github issue #3994 from AlanKerstjens)
  • MolFragmentToSmiles with kekuleSmiles=True raises AtomKekulizeException
    (github issue #3998 from kazuyaujihara)
  • update clang version for linux CI fuzzer builds
    (github pull #4012 from greglandrum)
  • Update coordgen to 2.0.3
    (github pull #4017 from d-b-w)
  • Get SWIG wrappers working with C# again
    (github pull #4020 from kazuyaujihara)
  • replaceSidechains creates aromatic dummy atoms
    (github pull #4022 from ptosco)
  • A set of fixes for problems caused by bad input
    (github pull #4033 from greglandrum)
  • Cleanup some problems found during an ASAN build
    (github pull #4054 from greglandrum)
  • Avoid that lone atoms which are part of a ring in one of the molecules become part of the MCS
    (github pull #4065 from ptosco)
  • StereoGroups not preserved by RenumberAtoms()
    (github issue #4071 from greglandrum)
  • call to pyAvalonTools.Generate2DCoords results in an assert violation
    (github issue #4075 from rvianello)
  • Update boost download location in Dockerfile
    (github pull #4094 from greglandrum)
  • HCount field in v2000 Mol blocks ignored
    (github issue #4099 from riccardosabatini)
  • Reactions don't propagate bond properties
    (github issue #4114 from d-b-w)
  • RemoveStereochemistry should also remove stereogroups
    (github issue #4115 from greglandrum)
  • Avoid that MolStandardizer segfaults on empty mols
    (github pull #4119 from ptosco)
  • SEGV in RWMol::commitBatchEdit
    (github issue #4122 from hgarrereyn)
  • SEGV in ROMol::getAtomDegree if atom is not in graph
    (github issue #4127 from hgarrereyn)
  • SEGV from unsigned integer overflow in Conformer::setAtomPos
    (github issue #4128 from hgarrereyn)
  • HCOUNT from v3000 CTABS incorrectly interpreted
    (github issue #4131 from greglandrum)
  • Empty query produces empty match, but at the same time is considered non-matching
    (github issue #4138 from i-tub)
  • fixed AddBond documentation
    (github pull #4142 from Ashafix)
  • Possible bug with EnumerateStereoisomers
    (github issue #4144 from stephanielabouille)
  • Odd drawing behavior with radicals and MolsToGridImage
    (github issue #4156 from pstjohn)
  • pre-condition violation when sanitizing a de-pickled reaction
    (github issue #4162 from jasondbiggs)
  • Many of the PMI descriptors are not being recalculated for different conformers
    (github issue #4167 from greglandrum)
  • bug in MDLParser.cpp when reading a rxn file in v3000 format that contains agents
    (github issue #4183 from jungb-basf)
  • Potentially chiral bridgehead atoms not being identified.
    (github pull #4192 from greglandrum)
  • allow more recoverable V3000 parsing errors when strictParsing=false
    (github pull #4210 from greglandrum)
  • RGD: Fix memory leak with deleting array
    (github pull #4211 from bp-kelley)
  • UnfoldedRDKFingerprintCountBased returns a different fingerprint length for every molecule
    (github issue #4212 from greglandrum)
  • rdMolHash.MolHash fails on non-standard valences
    (github issue #4222 from ricrogz)
  • Fix a couple of problems with fingerprint count simulation
    (github pull #4228 from greglandrum)
  • Chem.MolFromSmiles using SmilesParserParams throws exceptions
    (github issue #4232 from greglandrum)
  • Parse failure for data groups in CXSMILES
    (github issue #4233 from greglandrum)
  • double bonds now have EITHER stereo if no coordinates are present
    (github pull #4239 from greglandrum)
  • Fix CMakeLists for FileParsers
    (github pull #4240 from kazuyaujihara)
  • Multiple ATTCHPT entries for one atom handled incorrectly
    (github issue #4256 from greglandrum)
  • Exception thrown by reionizer when dealing with Mg+2
    (github issue #4260 from greglandrum)
  • Fallback ring finding failing on molecules with multiple fragments
    (github issue #4266 from avaucher)
  • Make sure that ResonanceMolSupplier substructure matches are uniquified consistently
    (github pull #4274 from ptosco)
  • FindPotentialStereo() doesn't find marked ring stereo when flagPossible=False
    (github issue #4279 from greglandrum)
  • The normalization pattern for pyridine N-oxide is not specific enough
    (github issue #4281 from ptosco)
  • computeCanonicalTransform may generate non-canonical coords
    (github issue #4302 from ptosco)
  • Unreasonable calculation of implicit valence for atoms with query bonds
    (github issue #4311 from greglandrum)
  • call to AvalonTools::set2DCoords results in an assert violation
    (github issue #4330 from jasondbiggs)
  • MolBlock writer gives non-stereo double bonds "unspecified" parity
    (github issue #4345 from d-b-w)
  • Specified trans stereo being ignored during conformation generation in macrocycles
    (github issue #4346 from greglandrum)
  • Two MinGW build fixes and one MSVC build fix
    (github pull #4347 from ptosco)
  • Fixes RDK_BUILD_THREADSAFE_SSS=OFF build
    (github pull #4349 from ptosco)
  • clean up some leaks identified by an ASAN build
    (github pull #4354 from greglandrum)
  • Three more Windows build fixes
    (github pull #4356 from ptosco)
  • Specified grid spacing for ShapeTanimotoDistance is ignored.
    (github issue #4364 from greglandrum)
  • Need implicit H cleanup after rdMolEnumerator.Enumerate()
    (github issue #4381 from greglandrum)
  • rdMolEnumerator.Enumerate fails on variable attachment points with queries
    (github issue #4382 from greglandrum)
  • RDKit reaction produces wrong double bond stereochemistry
    (github issue #4410 from mwojcikowski)
  • "to-Python converter already registered; second conversion method ignored." warnings issued at import
    (github issue #4425 from ricrogz)
  • v2000 SGroups do not generate an "index" property
    (github issue #4434 from ricrogz)
  • pg_restore does not work with some mol type molecule
    (github issue #4442 from mihalyszabo88)
  • Building with static dependencies breaks CMake exports
    (github issue #4449 from ricrogz)
  • DataStruct vectors leak when iterating
    (github issue #4465 from bp-kelley)
  • SGroups: Additional SDT properties not decoded if FIELDNAME is empty
    (github issue #4476 from greglandrum)
  • Test failure in reaction.sql
    (github issue #4486 from yoer77)
  • Small rings can have STEREOANY/EITHERDOUBLE bonds
    (github issue #4494 from ricrogz)
  • OR queries involving aromatic atoms cannot be drawn
    (github issue #4496 from ptosco)
  • MolFromSmiles and MolFromSmarts incorrectly accepting input with spaces
    (github issue #4503 from greglandrum)
  • Native 2D layout engine may generate overlapping coordinates
    (github issue #4504 from ptosco)
  • SubstanceGroup labels sometimes overlap with atoms in image generation
    (github issue #4508 from rachelnwalker)
  • SGroups do not have a way of unsetting properties from Python
    (github issue #4514 from ricrogz)
  • operator<< is declared for AtomPDBResidueInfo but not defined
    (github issue #4535 from greglandrum)
  • Improve test coverage and some bug fixes
    (github pull #4536 from greglandrum)
  • Seg fault in MolDraw2D::drawMolecules()
    (github issue #4538 from greglandrum)
  • Salt removal forces sanitization
    (github issue #4550 from ricrogz)
  • fix a thread-safety bug in the UFF parameter loading
    (github pull #4553 from greglandrum)
  • GetSubstructMatches() loops at 43690 iterations.
    (github issue #4558 from ricrogz)
  • failure to parse CTAB with LINKNODE and SGROUP
    (github issue #4561 from greglandrum)
  • Requesting "density" fingerprint Hydrogen molecule fails with exception
    (github issue #4567 from ricrogz)
  • Incorrect double bond stereo in output SMILES around ring closures
    (github issue #4582 from greglandrum)
  • migrate the MHFP implementation to use boost::random
    (github pull #4603 from rvianello)
  • Fix EnumerateStereoisomers with tryEmbedding
    (github pull #4615 from kazuyaujihara)

New Features and Enhancements:

  • Support Chemical Markup Language, CML, for writing
    (github pull #3024 from e-kwsm)
  • Add Eigen to ExternalProject and automatically download if RDK_BUILD_DESCRIPTORS3D
    (github pull #3075 from e-kwsm)
  • updates to postgreSQL cartridge
    (github pull #3976 from greglandrum)
  • Update Overview.md
    (github pull #3992 from charly828)
  • MinimalLib: add CFFI interface
    (github pull #4018 from greglandrum)
  • Contribute FreeWilson analysis
    (github pull #4026 from bp-kelley)
  • Allow partial deserialization of molecules
    (github pull #4040 from greglandrum)
  • Add datamol project
    (github pull #4046 from hadim)
  • Build BCUT when RDK_BUILD_DESCRIPTORS3D=OFF
    (github pull #4085 from kazuyaujihara)
  • Making RDKit minimallib (JS lib) available through the npm package manager
    (github pull #4086 from MichelML)
  • Normalize line endings in source code files
    (github pull #4104 from ptosco)
  • Allow MolToQPixmap to support PySide2
    (github pull #4110 from kitchoi)
  • update ChEMBL projects in Projects using RDKit
    (github pull #4116 from eloyfelix)
  • A collection of MolStandardize improvements
    (github pull #4118 from greglandrum)
  • Run clang-format against header files
    (github pull #4143 from e-kwsm)
  • Some miscellaneous MinimalLib enhancements
    (github pull #4169 from ptosco)
  • [MinimalLib] Add number of heavy atoms to descriptors
    (github issue #4184 from apahl)
  • Comments added to RGD core matching
    (github pull #4189 from jones-gareth)
  • Fix/rdprop integer conversions
    (github pull #4194 from bp-kelley)
  • RWMol cleanup
    (github pull #4198 from greglandrum)
  • Test comparing SVGs via hash code - ready for review
    (github pull #4199 from DavidACosgrove)
  • support getNumAtoms and getNumHeavyAtoms as Descriptors
    (github pull #4200 from greglandrum)
  • Canon.cpp canonicalizeDoubleBond function refactor
    (github pull #4204 from jfkonecn)
  • Add low level functions to bulk-update Substance Group atoms & bonds
    (github pull #4206 from ricrogz)
  • Run clang-tidy (modernize-pass-by-value)
    (github pull #4224 from e-kwsm)
  • Shift Trajectory and Snapshot constructors to methods on classes
    (github pull #4225 from bzoracler)
  • Allow depiction of "either" double bonds as "wiggly neighbors"
    (github issue #4238 from d-b-w)
  • Some cartridge enhancements
    (github pull #4271 from greglandrum)
  • [Enhancement]: Allow every bit-vect fixed-size fingerprints can be directly embedded || attached into the (Numpy) Array or return the Numpy Array
    (github issue #4273 from IchiruTake)
  • Turn MRV_COORDINATE_BOND_TYPE data Substance Groups into coordinate bonds
    (github pull #4299 from ricrogz)
  • Support using SubstructMatchParameters in RGD
    (github pull #4318 from greglandrum)
  • Add partial CXSMARTS support
    (github issue #4319 from greglandrum)
  • Support toggling components of CXSMILES output
    (github issue #4320 from greglandrum)
  • Switch to using InChI v1.06
    (github issue #4322 from greglandrum)
  • support using RGBA colors
    (github issue #4323 from greglandrum)
  • MinimalLib: return fingerprints as BitSets
    (github issue #4329 from dskatov)
  • Expose atomColourPalette as JSON drawOption
    (github pull #4337 from ptosco)
  • Improved sgroup output
    (github pull #4343 from greglandrum)
  • support get_json in the rdkitjs wrapper
    (github pull #4348 from greglandrum)
  • Enable using the URF library in Windows static builds
    (github pull #4357 from ptosco)
  • a few doxygen comment fixes
    (github pull #4368 from jasondbiggs)
  • Enable building Java wrappers with MinGW compilers
    (github pull #4384 from ptosco)
  • add exactmw to cartridge
    (github issue #4386 from greglandrum)
  • Some cartridge additions and fixes
    (github pull #4387 from greglandrum)
  • Remove SWIG kludge on Windows
    (github pull #4388 from ptosco)
  • CXSMILES improvements
    (github pull #4396 from greglandrum)
  • SubstructLibrary improvements
    (github pull #4403 from greglandrum)
  • Add 3 new examples to Cookbook.
    (github pull #4404 from vfscalfani)
  • cleanup the use of lambdas in the code
    (github pull #4432 from greglandrum)
  • Swap from RDUNUSED_PARAM to unnamed parameters
    (github pull #4433 from greglandrum)
  • Fix #4442 and other cartridge improvements
    (github pull #4448 from greglandrum)
  • RDKit Cartridge: qmol GiST support
    (github issue #4463 from mwojcikowski)
  • Add ToList method to Sparse/ExplicitBitVector
    (github pull #4467 from bp-kelley)
  • GiST support to qmol type
    (github pull #4470 from mwojcikowski)
  • be more tolerant when kekulizing
    (github pull #4492 from greglandrum)
  • Allow applying single-reactant/single-product reactions in place
    (github pull #4511 from greglandrum)
  • Add custom distance bounds parameter for ETKDG conformer generation
    (github pull #4516 from hjuinj)
  • cleanup some compiler warnings
    (github pull #4521 from greglandrum)
  • Improve test coverage and some bug fixes
    (github pull #4536 from greglandrum)
  • Additions to the jupyter integration
    (github pull #4541 from greglandrum)
  • another round of cartridge improvements
    (github pull #4543 from greglandrum)
  • Major speed-up of RGD scoring
    (github pull #4544 from ptosco)
  • Expose get_smarts to JS
    (github pull #4547 from ptosco)
  • Improve performance of removing substruct/tautomer duplicates
    (github pull #4560 from ricrogz)
  • Add support for SRUs to MolEnumerator
    (github pull #4563 from greglandrum)
  • Adds KeyFromPropHolder to hold user defined indices
    (github pull #4571 from bp-kelley)
  • add ROMol::atomNeighbors() and ROMol::atomBonds()
    (github pull #4573 from greglandrum)
  • Improvements to some constructors in python wrappers
    (github pull #4581 from greglandrum)
  • Add FreeSASA support to Windows builds
    (github pull #4584 from ptosco)
  • use V3K mol blocks in PNG metadata
    (github pull #4588 from greglandrum)
  • Prevent some loop variables from creating unnecessary copies
    (github pull #4610 from rvianello)
  • Rename the molLinkNode property to _molLinkNode
    (github pull #4614 from greglandrum)
  • Fix clang warning -Wabsolute-value
    (github pull #4616 from e-kwsm)

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

  • The useCountSimulation keyword argument for
    rdFingerprintGenerator.GetMorganGenerator and
    rdFingerprintGenerator.GetAtomPairGenerator has been deprecated and will be
    removed in the next release. Please use the countSimulation keyword argument
    instead.
  • The function mol_from_smarts() in the PostgreSQL cartridge has been
    deprecated and will be removed in the next release. Please use the
    qmol_from_smarts() function instead.
  • The computeBalabanJ() functions from the MolOps namespace have been
    deprecated and will be removed in the next release. These have not been
    exposed to Python, so this will not affect any Python code.

Release_2021.03.1

(Changes relative to Release_2020.09.1)

Backwards incompatible changes

  • The distance-geometry based conformer generation now by defaults generates
    trans(oid) conformations for amides, esters, and related structures. This can
    be toggled off with the forceTransAmides flag in EmbedParameters. Note that
    this change does not impact conformers created using one of the ET versions.
    (#3794)
  • The conformer generator now uses symmetry by default when doing RMS pruning.
    This can be disabled using the useSymmetryForPruning flag in
    EmbedParameters. (#3813)
  • Double bonds with unspecified stereochemistry in the products of chemical
    reactions now have their stereo set to STEREONONE instead of STEREOANY (#3078)
  • The MolToSVG() function has been moved from rdkit.Chem to rdkit.Chem.Draw
    (#3696)
  • There have been numerous changes to the RGroup Decomposition code which change
    the results. (#3767)
  • In RGroup Decomposition, when onlyMatchAtRGroups is set to false, each molecule
    is now decomposed based on the first matching scaffold which adds/uses the
    least number of non-user-provided R labels, rather than simply the first
    matching scaffold.
    Among other things, this allows the code to provide the same results for both
    onlyMatchAtRGroups=true and onlyMatchAtRGroups=false when suitable scaffolds
    are provided without requiring the user to get overly concerned about the
    input ordering of the scaffolds. (#3969)
  • There have been numerous changes to GenerateDepictionMatching2DStructure() (#3811)
  • Setting the kekuleSmiles argument (doKekule in C++) to MolToSmiles will now
    cause the molecule to be kekulized before SMILES generation. Note that this
    can lead to an exception being thrown. Previously this argument would only
    write kekulized SMILES if the molecule had already been kekulized (#2788)
  • Using the kekulize argument in the MHFP code will now cause the molecule to be
    kekulized before the fingerprint is generated. Note that becaues kekulization
    is not canonical, using this argument currently causes the results to depend
    on the input atom numbering. Note that this can lead to an exception being
    thrown. (#3942)
  • Gradients for angle and torsional restraints in both UFF and MMFF were computed
    incorrectly, which could give rise to potential instability during minimization.
    As part of fixing this problem, force constants have been switched to using
    kcal/degree^2 units instead of kcal/rad^2 units, consistently with the fact that
    angle and dihedral restraints are specified in degrees. (#3975)

Highlights

  • MolDraw2D now does a much better job of handling query features like common
    query bond types, atom lists, variable attachment points, and link nodes. It
    also supports adding annotations at the molecule level, displaying brackets
    for Sgroups, rendering the ABS flag for stereochemistry, and a new "comic"
    mode.
  • There are two new Contrib packages: NIBRStructureFilters and CalcLigRMSD
  • There have been a number of improvements made to the R-Group Decomposition
    code which make it both more flexible and considerably faster

Acknowledgements

Michael Banck, Christopher Von Bargen, Jason Biggs, Patrick Buder, Ivan
Chernyshov, Andrew Dalke, Xiaorui Dong, Carmen Esposito, Nicholas Firth, Enrico
Gandini, James Gayvert, Gareth Jones, Eisuke Kawashima, Steven Kearnes, Brian
Kelley, Mark Mackey, Niels Kristian Kjærgård Madsen, Luca Naef, Dan
Nealschneider, Jin Pan, Daniel Paoliello, António JM Ribeiro, Sereina Riniker,
Braxton Robbason, Jaime Rodríguez-Guerra, Ricardo Rodriguez-Schmidt, Steve
Roughley, Vincent F. Scalfani, Nadine Schneider, Philippe Schwaller, Dan Skatov,
Pascal Soveaux, Paolo Tosco, Kazuya Ujihara, Riccardo Vianello, Shuzhe Wang,
Piotr Wawrzyniak, Maciej Wójcikowski, Zhijiang Yang, Yutong Zhao
'driesvr', 'GintasKam', 'SPKorhonen', 'pkubaj', 'AnPallo', 'darintay',
'slchan3', 'Robins', 'sirbiscuit', 'amateurcat', 'noncomputable', 'yurivict',
'magattaca'

Contrib updates:

  • Added NIBRStructureFilters: a set of substructure filters for hit-list triaging together with python code for applying them. The filters are described in the publication https://dx.doi.org/10.1021/acs.jmedchem.0c01332
    (github pull #3516 from NadineSchneider)
  • Added CalcLigRMSD: flexible python code for calculating RMSD between pre-aligned molecules
    (github pull #3812 from cespos)

Bug Fixes:

  • Casting int to uint in MorganFingerprintHelper leads to unexpected behaviour.
    (github issue #1761 from SiPa13)
  • MolChemicalFeature.GetPos() returns value for molecule's default conformer
    (github issue #2530 from greglandrum)
  • Unable to catch RDKit exceptions in linked library when compiling with fvisibility=hidden
    (github issue #2753 from cdvonbargen)
  • Reaction rendering always shows molecules in aromatic form
    (github issue #2976 from greglandrum)
  • Reactions setting unspecified double-bond stereo to STEREOANY
    (github issue #3078 from ricrogz)
  • PDB output flavor&2 documentation change
    (github issue #3089 from adalke)
  • WedgeMolBonds() should prefer degree-1 atoms
    (github issue #3216 from greglandrum)
  • Error in ChemAxon SMILES "parsing"
    (github issue #3320 from IvanChernyshov)
  • Incorrect number of radical electrons calculated for metals
    (github issue #3330 from greglandrum)
  • Problem with lifetime linkage of mols and conformers
    (github issue #3492 from amateurcat)
  • Traceback when pickling ROMol after BCUT descriptors are calculated
    (github issue #3511 from d-b-w)
  • Fix AUTOCORR2D descriptors
    (github pull #3512 from ricrogz)
  • SDMolSupplier requires several attempts to load a SDF file in Python 3.6/3.7
    (github issue #3517 from jaimergp)
  • Remove accidentally included boost header
    (github pull #3518 from ricrogz)
  • legend_height_ should be preserved after drawing the molecule
    (github pull #3520 from greglandrum)
  • remove the include directive for unused <access/tuptoaster.h> header
    (github pull #3525 from rvianello)
  • C++ build fails when configured with RDKIT_USE_BOOST_SERIALIZATION=OFF
    (github issue #3529 from rvianello)
  • Newest RDKIT version allowing chemically invalid smiles
    (github issue #3531 from GintasKam)
  • Behaviour of generate_aligned_coords for erroneous inputs
    (github issue #3539 from dskatov)
  • Drawing artifacts in draw_to_canvas_with_offset
    (github issue #3540 from dskatov)
  • Error adding PNG metadata when kekulize=False
    (github issue #3543 from gayverjr)
  • Add missing methods to remove SubstanceGroup attributes
    (github pull #3547 from greglandrum)
  • Error writing SDF data containing UTF-8 to a StringIO object
    (github issue #3553 from greglandrum)
  • correct handling of amide distances for macrocycles
    (github pull #3559 from hjuinj)
  • rdMolDraw2D, problems during generation of pictures from SMARTS, differences between Cairo and SVG
    (github issue #3572 from wopozka)
  • Fix example of SmilesToMol
    (github pull #3575 from kazuyaujihara)
  • atom/bond notes handle capital letters incorrectly
    (github issue #3577 from greglandrum)
  • Get MolDraw2DQt working again
    (github pull #3592 from greglandrum)
  • Scientific notation in SDF V3000 files
    (github issue #3597 from mark-cresset)
  • Fix: add missing python wrappers for MolDraw2DQt
    (github pull #3613 from greglandrum)
  • V3K mol block parser not saving the chiral flag
    (github issue #3620 from greglandrum)
  • Inconsistent metal disconnectors
    (github issue #3625 from pschwllr)
  • Ring stereochemistry not properly removed from N atoms
    (github issue #3631 from greglandrum)
  • moldraw2djs should not close all polygonal paths
    (github pull #3634 from greglandrum)
  • Unidentifiable C++ Exception with FMCS
    (github issue #3635 from proteneer)
  • Bump catch2 version to allow builds on Apple M1
    (github pull #3641 from naefl)
  • Segmentation fault when parsing InChI
    (github issue #3645 from AnPallo)
  • RDK_BUILD_THREADSAFE_SSS does not work as expected
    (github issue #3646 from pascal-soveaux)
  • Disabling MaeParser and CoordGen Support Breaks the Build
    (github issue #3648 from proteneer)
  • BondStereo info lost in FragmentOnBonds()
    (github pull #3649 from bp-kelley)
  • memory leak when sanitization fails in InChIToMol()
    (github issue #3655 from greglandrum)
  • Qt GUI libraries being linked into rdmolops.so when Qt support is enabled
    (github issue #3658 from ricrogz)
  • Documentation of Chem.rdmolops.GetMolFrags's frag argument is wrong
    (github issue #3670 from noncomputable)
  • fmcs() + bogus input causes engine crash
    (github issue #3687 from robins)
  • qmol_from_ctab() with NULL crashes engine
    (github issue #3688 from robins)
  • qmol_from_smiles() + bogus input causes engine crash
    (github issue #3689 from robins)
  • Check PIL support for tostring and fromstring
    (github pull #3690 from sirbiscuit)
  • Move MolToSVG() to rdkit.Chem.Draw (Addresses #3694)
    (github pull #3696 from ricrogz)
  • Pandas AttributeError when rendering Molecule in DataFrame
    (github issue #3701 from enricogandini)
  • Memory leak in EnumerateLibrary
    (github issue #3702 from jose-mr)
  • Fix to add ZLIB_INCLUDE_DIRS for Windows build
    (github pull #3714 from kazuyaujihara)
  • Docs/Book: Unexpected unicode character makes pdflatex build fail
    (github issue #3738 from mbanck)
  • Test suite failures if eigen3 is not available
    (github issue #3740 from mbanck)
  • Regression in depiction of double bonds in aromatic rings
    (github issue #3744 from ptosco)
  • RGD with RGroupMatching.GA leaks memory and takes too long
    (github issue #3746 from ptosco)
  • Fix comment to match the code in RemoveHsParameters
    (github pull #3747 from jasondbiggs)
  • Inconsistent canonical tautomer on repeated application
    (github issue #3755 from darintay)
  • bonds no longer highlighted in substruct matches in jupyter
    (github issue #3762 from greglandrum)
  • SubstanceGroup output doesn't correctly quote " symbols
    (github issue #3768 from greglandrum)
  • MolToSmarts inverts direction of dative bond
    (github issue #3774 from IvanChernyshov)
  • Regression in dihedral constraints
    (github issue #3781 from ptosco)
  • Fix pillow error in IPythonConsole.py
    (github pull #3783 from skearnes)
  • lock swig version in MacOS CI builds
    (github pull #3789 from greglandrum)
  • DrawMorganBit errors when useSVG is False
    (github issue #3796 from ncfirth)
  • SubstructLibrary Cached Smiles Holders have bad behavior with bad smiles
    (github issue #3797 from bp-kelley)
  • MolFromSmiles('[He]') produces a diradical helium atom
    (github issue #3805 from jasondbiggs)
  • NaNs from AUTOCORR2D descriptor
    (github issue #3806 from greglandrum)
  • MaeMolSupplier throws an invariant exception on parsing an "undefined" chirality label
    (github issue #3815 from ricrogz)
  • Sanitize molecules when SMILES needs to be produced in PandasTools
    (github pull #3818 from mwojcikowski)
  • Tautomer Query copy constructor is shallow not deep causing segfaults in destructor
    (github issue #3821 from bp-kelley)
  • OptimizeMolecule and OptimizeMoleculeConfs Argument Bug
    (github issue #3824 from xiaoruiDong)
  • rdMolEnumerator.Enumerate() fragile w.r.t. atom ordering
    (github issue #3844 from greglandrum)
  • MinimalLib: Bonds are parallel in SVG but not on an HTML5 Canvas
    (github issue #3852 from dskatov)
  • AddHs creates H atom with nan coordinates on edge case 2D structure
    (github issue #3854 from ricrogz)
  • Build error with static boost libraries (v1.73)
    (github issue #3865 from nielskm)
  • Make sure that added R-groups have non-zero coordinates
    (github pull #3877 from ptosco)
  • Bad H coordinates on fused ring
    (github issue #3879 from greglandrum)
  • SubstructLibrary needs to check bond ring queries as well
    (github issue #3881 from bp-kelley)
  • Fixes Amine.Tertiary.Aromatic definition
    (github pull #3883 from bp-kelley)
  • inconsistency in seedSmarts in FMCS between and GetSubstructureMatches
    (github issue #3886 from proteneer)
  • PandasTools.RGroupDecomposition throws an error when redraw_sidechains is set to True.
    (github pull #3888 from greglandrum)
  • Dev/update glare to py3
    (github pull #3892 from bp-kelley)
  • ConfGen: Macrocycle torsion terms not being used with fused macrocycles
    (github pull #3894 from greglandrum)
  • Broken KNIME link in README
    (github issue #3897 from yurivict)
  • Change class to struct for forward declaration
    (github pull #3906 from bp-kelley)
  • Fixes issues with unlabelled groups on aromatic nitrogens
    (github pull #3908 from ptosco)
  • Fix #3659 regression introduced in #3832
    (github pull #3909 from ricrogz)
  • Error rendering SMARTS queries with atom OR lists
    (github issue #3912 from greglandrum)
  • MoDraw2D: Get tests working without freetype
    (github pull #3923 from greglandrum)
  • RGD default scoring function does not always work as expected
    (github issue #3924 from jones-gareth)
  • MolDraw2D: relative font size changes with bond lengths in molecule
    (github issue #3929 from greglandrum)
  • MolDraw2D: coordinates for reactions not being used
    (github issue #3931 from greglandrum)
  • Follow-on patch for changes in #3899
    (github issue #3932 from greglandrum)
  • Fix MolDraw2DQt exports
    (github pull #3935 from ricrogz)
  • Fix building JavaWrappers on Windows, dynamic linking
    (github pull #3936 from ricrogz)
  • Boost header warnings when compiling
    (github issue #3956 from jasondbiggs)
  • Adds removeAllHydrogenRGroupsAndLabels and fixes kekulization issues
    (github pull #3944 from ptosco)
  • MolToJSONData fails when mol has a property that can't be stringified
    (github issue #3956 from jasondbiggs)
  • RWMol should reset(), not release(), dp_delAtoms and dp_delBonds
    (github pull #3970 from greglandrum)

New Features and Enhancements:

  • add context managers for writers
    (github issue #2217 from greglandrum)
  • MolToSmiles(kekuleSmiles=True) gives SMILES with aromatic bonds
    (github issue #2788 from adalke)
  • allow specification of color map when drawing similarity maps
    (github issue #2904 from greglandrum)
  • Clean up CMake files
    (github pull #3417 from e-kwsm)
  • Speed up GraphMol/Chirality.cpp/iterateCIPRanks
    (github pull #3482 from jinpan)
  • Removes function which is an exact duplicate of another function
    (github pull #3524 from ptosco)
  • A couple of minor improvements to FindCairo
    (github pull #3535 from ptosco)
  • Give a bit more time to RGD test in debug builds
    (github pull #3536 from ptosco)
  • A couple of fixes to the build system
    (github pull #3538 from ptosco)
  • Modularized WASM module
    (github issue #3561 from dskatov)
  • A couple changes to speedup bulk similarity calculations from Python
    (github pull #3574 from greglandrum)
  • add documentation for the JS wrappers
    (github pull #3583 from greglandrum)
  • add a "comic mode" to MolDraw2D
    (github pull #3584 from greglandrum)
  • Add rendering of SGroup brackets to MolDraw2D
    (github pull #3586 from greglandrum)
  • Update Install.md
    (github pull #3589 from slchan3)
  • Add explicit support for remaining CTAB query bond types
    (github issue #3599 from greglandrum)
  • update Cookbook stereochemistry examples
    (github pull #3604 from vfscalfani)
  • Add support for rendering SGroup data fields to MolDraw2D
    (github pull #3619 from greglandrum)
  • Support rendering the "ABS" flag in MolDraw2D
    (github issue #3623 from greglandrum)
  • Support drawing some query bonds
    (github pull #3624 from greglandrum)
  • Support rendering variable attachment points
    (github pull #3626 from greglandrum)
  • add configuration option to disable atom symbols in the rendering
    (github pull #3630 from greglandrum)
  • Render link nodes in MolDraw2D
    (github issue #3637 from greglandrum)
  • First pass at MolZip (now with bond stereo!)
    (github pull #3644 from bp-kelley)
  • Add molecule annotations/notes to MolDraw2D
    (github pull #3651 from greglandrum)
  • support setting MolDraw2DOptions using JSON from Python
    (github pull #3660 from greglandrum)
  • Make the scope control for Qt more idiomatic
    (github pull #3663 from d-b-w)
  • Expanded MolEnumerator functionality
    (github pull #3664 from greglandrum)
  • add support for generating pattern fps for MolBundles
    (github pull #3665 from greglandrum)
  • Add a callback function to EmbedParameters struct
    (github issue #3667 from jasondbiggs)
  • update SequenceParsers.cpp
    (github pull #3683 from magattaca)
  • MCS: extend completeRingsOnly to cover atoms as well
    (github issue #3693 from driesvr)
  • Add Molbundle search to SWIG
    (github pull #3698 from jones-gareth)
  • Added getMessage method to exceptions
    (github pull #3700 from sroughley)
  • add context manager for MolSuppliers
    (github issue #3703 from greglandrum)
  • Make better use of strictParsing for SGroups
    (github pull #3705 from ptosco)
  • Allow using POPCNT on big-endian ppc64
    (github pull #3727 from pkubaj)
  • Cleanup: remove fromstring and tostring from functions working with pillow
    (github issue #3730 from greglandrum)
  • Set strictParsing to false in MinimalLib
    (github pull #3737 from ptosco)
  • 3D MCS - Minimal version, no refactoring
    (github pull #3749 from robbason)
  • Include Winsock2.h instead of Windows.h in DebugTrace.h
    (github pull #3756 from dpaoliello)
  • R group match any issue
    (github pull #3767 from jones-gareth)
  • Support new coordgen option to not always make bonds to metals zero-order
    (github pull #3769 from greglandrum)
  • DistanceGeometry: add flag to enforce trans amides
    (github pull #3794 from greglandrum)
  • MolDraw2D: first pass at rendering atom lists
    (github pull #3804 from greglandrum)
  • Issue a warning when embedding a molecule with no Hs
    (github pull #3807 from greglandrum)
  • Add tautomer query to the substructlibrary
    (github pull #3808 from bp-kelley)
  • Enhanced generateDepictionMatching2DStructure functionality
    (github pull #3811 from ptosco)
  • Confgen: add option to use symmetry when doing RMS pruning
    (github pull #3813 from greglandrum)
  • Remove boost::foreach from public headers
    (github pull #3820 from ricrogz)
  • Adds isotopeLabels and dummyIsotopeLabels MolDrawOptions
    (github pull #3825 from ptosco)
  • Added 2 Cookbook examples
    (github pull #3831 from vfscalfani)
  • Separate MolDraw2DQt into its own library
    (github pull #3832 from d-b-w)
  • Facilities for interactive modification of molecule drawing
    (github pull #3833 from SPKorhonen)
  • cleanup a bunch of compiler warnings
    (github pull #3849 from greglandrum)
  • add a new mol draw option to draw wedge bonds with a single color
    (github pull #3860 from jasondbiggs)
  • Add Kier Phi descriptor
    (github pull #3864 from greglandrum)
  • Add basic support for hydrogen bonds
    (github pull #3871 from greglandrum)
  • Allow batch editing of molecules: removal only
    (github pull #3875 from greglandrum)
  • Allow retrieving the _ErGAtomTypes property from Python
    (github pull #3878 from ptosco)
  • Exposes InsertMol to python RWMol
    (github pull #3907 from bp-kelley)
  • Use https for Avalon and Inchi downloads
    (github pull #3915 from ptosco)
  • support empty/missing SDT lines for SGroup data
    (github pull #3916 from greglandrum)
  • Cookbook entries should be updated
    (github issue #3917 from greglandrum)
  • MolDraw2D: support changing annotation colours
    (github pull #3919 from greglandrum)
  • include context managers for the multithreaded suppliers too
    (github pull #3920 from greglandrum)
  • Documentation cleanup and update
    (github pull #3922 from greglandrum)
  • remove an MSVC++ warning caused by #3849
    (github pull #3927 from greglandrum)
  • Adds removeAllHydrogenRGroupsAndLabels and fixes kekulization issues
    (github pull #3944 from ptosco)
  • Remove temporary labels from RGD results
    (github pull #3947 from ptosco)
  • appended a new project depend on RDKit
    (github pull #3955 from kotori-y)
  • Do not add unnecessary R-labels (and an optimization)
    (github pull #3969 from ptosco)
  • Add return codes and make RGroupDecomp less verbose
    (github pull #3971 from bp-kelley)
  • update to coordgen 2.0.0
    (github pull #3974 from greglandrum)

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

  • The "minimizeOnly" option for coordgen will be removed in the next RDKit release

Release_2020.09.1

(Changes relative to Release_2020.03.1)

Backwards incompatible changes

  • We've added additional allowed valences for Cl (now 1, 3, 5), Br (now 1, 3,
    5), I (now 1, 3, 5), At (now 1, 3, 5), Xe (now 0, 2, 4, 6), and Po (now 2, 4,
    6). Molecules with atoms in the new valence states will no longer generate
    sanitization errors. Note that this has an impact on the chemistry of
    molecules containing 3-valent I and at least one implict H (present 24 times
    in ChEMBL 27): previously this was incorrectly assigned two implicit Hs, now
    it has no implicit Hs.
  • Aromaticity perception of molecules like Cc1nnc2n1c1ccccc1n1c(C)nnc12 now
    correctly recognizes the full outer envelope, i.e. the bonds joining the rings
    are now also aromatic.
  • FindMCS() may return single atom MCSs, whereas previously it returned an empty
    MCS unless there was at least one commond bond across the input structures.
    So the MCS between molecules CC and CO is now [#6] rather than being null.
  • The fontSize()/setFontSize() (FontSize()/SetFontSize()) methods in MolDraw2D
    now work in units of pixels (more or less) instead of the molecule units.
  • The Open3DAlign functionality is now in its own separate library - O3AAlign
    in cmake. If you are working in C++ and using O3A functionality, you'll need
    to link against this library as well now.
  • Due to improvements in the tautomer enumeration code, the method
    TautomerEnumerator::enumerate now returns a TautomerEnumeratorResult
    object instead of a vector of molecules. Note that if you are iterating over
    the results of a call to enumerate() you shouldn't need to change your code.
    If you want to invoke the old (and deprecated, see below) form from C++, call
    TautomerNumerator::enumerate(mol, nullptr) or explicitly pass a
    boost::dynamic_bitset* to capture the modified atoms.
  • The default precision setting for coordgen has been changed. The new default
    was selected to greatly reduce the number of molecules for which it takes a
    very long time to generate coordinates while still producing nice looking
    structures. We may continue to tweak this default value if/when problems
    with it are reported. If you would like to go back to the previous setting, set
    CoordgenParams.minimizerPrecision to CoordgenParams.sketcherStandardPrecision
    when you invoke rdCoordGen.AddCoords()
  • Uncharger::uncharge() will now neutralize [Cl,Br,I][O-], [Cl,Br,I](=O)[O-], [Cl,Br,I](=O)(=O)[O-], [Cl,Br,I](=O)(=O)(=O)[O-], [O-]N=N[O-], [N,P](=O)[O-], [N+](=O)([O-])[O-], P(=O)([O-])[O-], P(=O)([O-])([O-])[O-], S([O-])[O-], S(=O)([O-])[O-], S(=O)(=O)([O-])[O-], S(=O)(=O)([O-])OOS(=O)(=O)[O-].
    Previously not all of these inorganic acid counterions were consistently
    neutralized.
  • The None value in the RGroupCoreAlignment enum was renamed to NoAlignment
    in both C++ and Python, in order to avoid issues when attempting to access it
    from Python.

Highlights

  • There's been another big improvement in the quality of molecule drawings:
    character and font handling is greatly improved thanks to the use of the
    FreeType library
  • A new feature has been added to efficiently allow tautomer-insensitive
    substructure search.
  • A new, much more accurate, algorithm is available for calculating CIP labels
    on atoms and bonds.
  • There's a new rdDeprotect module to allow automatically deprotecting molecules
    before putting them into reactions
  • Molecule and reaction metadata can now be added to PNG files generated by
    MolDraw2DCairo

Acknowledgements

Shrey Aryan, Jinserk Baik, Francois Berenger, Cédric Bouysset, David Cosgrove,
Ivan Chernyshov, Guillaume Godin, Manan Goel, Jan H. Jensen, Gareth Jones, Maria
Kadukova, Eisuke Kawashima, Steven Kearnes, Brian Kelley, Joos Kiener, Kenneth
Lum, Joshua Meyers, Rocco Moretti, Paul R Moses, Dan Nealschneider, Jin Pan,
Joann Prescott-Roy, Matthew Robinson, Jaime Rodríguez-Guerra, Ricardo
Rodriguez-Schmidt, Jeff van Santen, Roger Sayle Vincent F. Scalfani Eric Taw,
Ansgar Schuffenhauer, Paolo Tosco, Ivan Tubert-Brohman, Riccardo Vianello,
Rachel Walker, Maciej Wójcikowski, Christopher Zou, daverona, hjuinj,
intrigus-lgtm, autodataming, paconius, sailfish009

Bug Fixes:

  • Python tests fail when RDK_BUILD_COMPRESSED_SUPPLIERS is enabled
    (github issue #1888 from greglandrum)
  • ResonanceMolSupplier potentially stuck in infinite loop
    (github issue #2597 from tawe141)
  • ctest pythonTestDirChem failed
    (github issue #2757 from jinserk)
  • Issue with inversion/retention of stereochemistry
    (github issue #2891 from mc-robinson)
  • cannot parse reaction SMILES/SMARTS with dative bonds
    (github issue #2954 from greglandrum)
  • ResonanceMolSupplier can fail with small maxStructs values
    (github issue #3041 from greglandrum)
  • seg fault in ResonanceMolSupplier()
    (github issue #3048 from greglandrum)
  • Bug in image rendering of dative bonds
    (github issue #3056 from IvanChernyshov)
  • Coordinates from coordgen are not centered around the origin
    (github pull #3058 from DavidACosgrove)
  • fix a typo in ScaffoldNetwork/CMakeLists.txt
    (github pull #3060 from greglandrum)
  • Bad double bond placement in polycyclic aromatics
    (github issue #3061 from DavidACosgrove)
  • SGroups with more than one attachment point are now properly parsed
    (github pull #3072 from greglandrum)
  • Reactions should not use strict implicit valence calculations
    (github issue #3097 from mwojcikowski)
  • partial reacting atom detection
    (github issue #3119 from thegodone)
  • DrawMolecules does not center molecules
    (github issue #3126 from JoshuaMeyers)
  • results from coordgen are sometimes not centered
    (github issue #3131 from greglandrum)
  • GCC 10.0.1 compile error
    (github issue #3135 from rvianello)
  • Memory leak when parsing bad SMILES
    (github issue #3139 from intrigus-lgtm)
  • Error breaking StereoBonds in reactions
    (github issue #3147 from mc-robinson)
  • MolOps::removeHs() removes hydrides
    (github issue #3150 from jhjensen2)
  • Kekulization error from CreateScaffoldNetwork
    (github issue #3153 from greglandrum)
  • Fix drawing of N plus
    (github pull #3165 from DavidACosgrove)
  • RWMol::clear() does not explicitly clean up SubstanceGroups or StereoGroups
    (github issue #3167 from greglandrum)
  • Modifying a molecule should not automatically clear SubstanceGroups
    (github issue #3168 from greglandrum)
  • removeHs() should not remove atoms in SubstanceGroups
    (github issue #3169 from greglandrum)
  • fix a memory problem detected in malformed SMILES
    (github pull #3171 from greglandrum)
  • Python wrapper: SetQuery and ExpandQuery for bonds
    (github pull #3172 from i-tub)
  • S-groups: PARENT field should reference index
    (github issue #3175 from greglandrum)
  • rdScaffoldNetwork causes segmenation fault upon None molecule
    (github issue #3177 from AnsgarSchuffenhauer)
  • fix a small inconsistency in the name of the inchi package
    (github pull #3182 from rvianello)
  • Molecule constructed from CXSMILES cannot be translated to SMARTS
    (github issue #3197 from greglandrum)
  • Formatting fix of CalcRMS
    (github pull #3203 from chmnk)
  • fix the CompressedSDMolSupplier python iterator interface
    (github pull #3204 from rvianello)
  • Queries generated from PreprocessReaction cannot be translated to SMARTS
    (github issue #3206 from greglandrum)
  • Attachment point info not being read from V2000 mol blocks
    (github issue #3207 from greglandrum)
  • Memory Sanitizer fails on molFromPickle on empty file
    (github issue #3211 from intrigus-lgtm)
  • Throw exception when reading from stream fails.
    (github pull #3212 from intrigus-lgtm)
  • fix molstogridimage on certain fragments/smarts patterns
    (github pull #3217 from bp-kelley)
  • Lines in wedge bonds being drawn too closely together
    (github issue #3226 from paconius)
  • EnumerateStereochemistry should clear CIP labels
    (github issue #3231 from greglandrum)
  • lock CI cairo version to force an install from the rdkit repo
    (github pull #3240 from greglandrum)
  • XBCORR and XBHEAD in Sgroups no longer cause parse failures
    (github pull #3242 from greglandrum)
  • LINKNODEs are ignored by the CTAB parsers
    (github pull #3247 from greglandrum)
  • add GetStringVectProp() to SubstanceGroup class
    (github pull #3251 from greglandrum)
  • Envelope aromaticity not detected in complex fused system
    (github issue #3256 from greglandrum)
  • Draw.MolsToGridImage repeating atom indices
    (github issue #3258 from greglandrum)
  • Atom indices clash with atom symbols in small pictures.
    (github issue #3262 from DavidACosgrove)
  • MinimalLib Dockerfile is broken at HEAD
    (github issue #3267 from skearnes)
  • Fixes #2757
    (github pull #3268 from greglandrum)
  • RGroupDecomposition restructuring
    (github pull #3270 from bp-kelley)
  • Get PPC builds working
    (github pull #3285 from greglandrum)
  • ScaffoldNetwork not in C# wrappers
    (github pull #3289 from jones-gareth)
  • bonds with "either' stereo cannot be read from JSON
    (github pull #3290 from greglandrum)
  • Small bug fixes and cleanups from fuzz testing
    (github pull #3299 from greglandrum)
  • DrawOptions: bondLineWidth behaving differently since 2020 versions
    (github issue #3305 from kienerj)
  • Not possible to copy SubstanceGroups in Python
    (github issue #3312 from greglandrum)
  • Stereochemistry perception getting confused by a bad drawing.
    (github issue #3314 from greglandrum)
  • SubstanceGroups should not be written with quotes around missing fields
    (github issue #3315 from greglandrum)
  • SetDoubleBondNeighborDirections() not overwriting existing bond directions
    (github issue #3322 from greglandrum)
  • AdjustQueryParameters.adjustSingleBondsBetweenAromaticAtoms does not modify ring bonds
    (github issue #3325 from greglandrum)
  • Fixes for aromatic bond fuzzy queries
    (github pull #3328 from jones-gareth)
  • lock sphinx version in CI due to problem with v3.2.0
    (github pull #3332 from greglandrum)
  • Remove deprecated Sphinx options
    (github pull #3335 from greglandrum)
  • more bug fixes and cleanups from fuzz testing
    (github pull #3339 from greglandrum)
  • unspecified branch bonds in SMARTS don't have aromaticity set
    (github issue #3342 from greglandrum)
  • Incorrect resonance structures in presence of dative bonds
    (github issue #3349 from IvanChernyshov)
  • Converting atoms with high radical counts to InChI generates incorrect results
    (github issue #3365 from greglandrum)
  • Replace fill-opacity= with fill-opacity: in MolDraw2DSVG and tests
    (github pull #3368 from lummyk)
  • Fixes a bug in AddHs() involving sp2 centers with degree 1
    (github pull #3383 from ptosco)
  • Information about charges and isotopes lost when calling AdjustQueryProperties
    (github issue #3388 from greglandrum)
  • prepareMolForDrawing() incorrectly adds chiral Hs if no ring info is present
    (github issue #3392 from greglandrum)
  • CXSMILES parser should not set atom maps for attachment points
    (github issue #3393 from greglandrum)
  • Fixes a couple of query-related bugs
    (github pull #3398 from ptosco)
  • Doing a match of a recursive smarts leaves traces of the previous match
    (github issue #3403 from bp-kelley)
  • Recursive smarts cannot be used in the core for rgroup decomposition
    (github pull #3404 from bp-kelley)
  • Improvements to reaction chirality handling
    (github pull #3412 from greglandrum)
  • V3K mol blocks with no atoms fail to parse
    (github issue #3413 from greglandrum)
  • Problem parsing SGroup data comtaining ""
    (github issue #3415 from greglandrum)
  • MolEnumerator::enumerate() should call updatePropertyCache()
    (github pull #3420 from greglandrum)
  • Fixed bad draw scale in drawMolecules. Github3391. Take 2.
    (github pull #3424 from DavidACosgrove)
  • Replace fill-opacity= to fill-opacity: in reaction.out
    (github pull #3426 from daverona)
  • set the ChiralityPossible tag when using the new code with FindMolChiralCenters
    (github pull #3434 from greglandrum)
  • Silence deprecation warning
    (github pull #3439 from ptosco)
  • update minimallib python requirements to python3
    (github pull #3449 from greglandrum)
  • Fix dead links to inchi-trust
    (github pull #3451 from jvansan)
  • ringMatchesRingOnly=True produces a SMARTS query that return no substructure matches
    (github issue #3458 from jaimergp)
  • Normalization rule incorrectly matches sulfones
    (github issue #3460 from greglandrum)
  • BlockLogs was reenabling all logs, not just the ones that were disabled
    (github pull #3466 from bp-kelley)
  • Hydrogen is incorrectly identified as an "early" atom
    (github issue #3470 from greglandrum)
  • Fixes typo that causes the build to fail
    (github pull #3477 from ptosco)
  • Fix a crashing bug with None in rdMolStandardize
    (github pull #3481 from greglandrum)
  • zlib.h not found if not in system directories
    (github issue #3493 from ricrogz)
  • fix paths in ConformerParser tests
    (github pull #3504 from ricrogz)

New Features and Enhancements:

  • Add GetBestRMS function
    (github issue #1820 from chmnk)
  • Add reorder tautomers function and accompanying tests
    (github pull #3043 from chriswzou)
  • Set RDK_BOOST_VERSION to pass minimum required version to FindBoost
    (github pull #3074 from e-kwsm)
  • bug: the MCS of the molecules CH4 and CH3OH is empty. how to return C?
    (github issue #3095 from autodataming)
  • start using boost:stacktrace
    (github pull #3124 from greglandrum)
  • Add Fuzzing, fixes #2857
    (github pull #3128 from intrigus-lgtm)
  • Cookbook entry for ETKDG with rings
    (github pull #3129 from hjuinj)
  • Fixes #2795
    (github pull #3134 from manangoel99)
  • Bump Catch2 to v2.12.1
    (github pull #3136 from e-kwsm)
  • Modernize how legacy C headers are included
    (github pull #3137 from e-kwsm)
  • Avoid C preprocessor macros
    (github pull #3138 from e-kwsm)
  • Modernization: use nullptr
    (github pull #3143 from e-kwsm)
  • Update fuzzer dict
    (github pull #3162 from intrigus-lgtm)
  • Add BCUT2D and AUTOCORR2D to desclist
    (github pull #3178 from bp-kelley)
  • Remove usage of the deprecated random_shuffle() function
    (github pull #3187 from greglandrum)
  • clang-tidy modernize-use-default-member-init and modernize-use-emplace
    (github pull #3190 from greglandrum)
  • Tautomer search
    (github pull #3205 from jones-gareth)
  • Add optional timeout to RGroupDecomposition
    (github pull #3223 from greglandrum)
  • Allow symmetrization to be completely disabled in RGD code
    (github issue #3224 from greglandrum)
  • gitignore source and build files from the RingFamilies external lib
    (github pull #3228 from d-b-w)
  • Add new CIP labelling algorithm
    (github pull #3234 from ricrogz)
  • Adds more options to adjustQueryProperties
    (github pull #3235 from greglandrum)
  • Improve SSSR performance for large molecules
    (github pull #3236 from d-b-w)
  • Support using FreeType for text rendering
    (github pull #3237 from DavidACosgrove)
  • Cleanup warnings from clang-10
    (github pull #3238 from greglandrum)
  • DEB packaging: cairo support is needed to generate PNGs
    (github pull #3250 from UnixJunkie)
  • Added call to test legends.
    (github pull #3252 from DavidACosgrove)
  • Improve performance of aromaticity detection for large molecules
    (github pull #3253 from d-b-w)
  • Speed up ring finding by skipping nodes not in rings
    (github pull #3254 from d-b-w)
  • Support enumerating some mol file features into MolBundles
    (github pull #3257 from greglandrum)
  • Add cxsmiles query atoms to CTAB parsers and writers
    (github pull #3261 from greglandrum)
  • Update to Coordgen v1.4.1
    (github pull #3265 from ricrogz)
  • ScaffoldNetwork: add feature to count the number of molecules a scaffold originates from
    (github pull #3275 from greglandrum)
  • rgroup speedup
    (github pull #3279 from bp-kelley)
  • Stop trying to assign hybridization to actinides
    (github pull #3281 from greglandrum)
  • Decouple coordgen and maeparser integrations
    (github pull #3286 from greglandrum)
  • Avoid really slow Windows conda builds
    (github pull #3287 from ptosco)
  • Embed default truetype font
    (github pull #3288 from greglandrum)
  • Expanded support for CXSMILES features
    (github pull #3292 from greglandrum)
  • Deprotection Library
    (github pull #3294 from bp-kelley)
  • Use operator() and call() consistently across RDKit
    (github pull #3295 from ptosco)
  • Molecule metadata in PNGs
    (github pull #3316 from greglandrum)
  • Cleanup alignment dependencies
    (github pull #3317 from greglandrum)
  • Add the option to minimize structures with coordgen
    (github pull #3319 from greglandrum)
  • Updated code for chirality perception
    (github pull #3324 from greglandrum)
  • Some work on TautomerEnumerator
    (github pull #3327 from ptosco)
  • Add fragmentOnBonds to SWIG wrappers
    (github issue #3329 from greglandrum)
  • Sped up SSSR by not storing every path back to root
    (github pull #3333 from rachelnwalker)
  • Fix Cookbook formatting and added 4 new examples
    (github pull #3345 from vfscalfani)
  • switch to using target_compile_definitions instead of add_definitions
    (github pull #3350 from greglandrum)
  • [GSoC-2020] Generalized and Multithreaded File Reader
    (github pull #3363 from shrey183)
  • support new CIP code and StereoGroups in MolDraw2D_detail::addStereoAnnotation()
    (github issue #3369 from greglandrum)
  • expose additional SubstanceGroup data members to Python
    (github pull #3375 from greglandrum)
  • Add MolDraw2DJS
    (github pull #3376 from greglandrum)
  • Add APK package link for Alpine Linux distribution
    (github pull #3379 from daverona)
  • Add SubstanceGroups to the SWIG Wrappers
    (github pull #3390 from jones-gareth)
  • Add better support for isotopic Hs to removeHs() and addHs()
    (github pull #3396 from ptosco)
  • Add support for abbreviations
    (github pull #3406 from greglandrum)
  • Allow passing explicit removeHs, sanitize and strict flags to the MDL rxn parser
    (github pull #3411 from ptosco)
  • Improvements to reaction chirality handling
    (github pull #3412 from greglandrum)
  • RGD cleanup, optimization and a better fix for #1705
    (github pull #3428 from ptosco)
  • Tautomers with endocyclic double bonds should be preferred over exocyclic ones
    (github issue #3430 from ptosco)
  • RGD: Code modernization and an optimization
    (github pull #3437 from ptosco)
  • expose PNG metadata functions to python
    (github pull #3440 from greglandrum)
  • Replace basestring
    (github pull #3441 from iammosespaulr)
  • Get the Uncharger to deal with a larger set of acids correctly
    (github pull #3448 from ptosco)
  • expose templated coordinate generation to the JS Wrapper
    (github pull #3450 from greglandrum)
  • change default precision for coordgen
    (github pull #3452 from greglandrum)
  • add coordgen support to demo.html
    (github pull #3453 from greglandrum)
  • Two simple MolStandardizer code cleanups
    (github pull #3454 from ptosco)
  • A few improvements to MolStandardize::Normalizer
    (github pull #3455 from ptosco)
  • Add Cookbook entries 30-32
    (github pull #3459 from vfscalfani)
  • A few small tweaks to the drawing code
    (github pull #3464 from greglandrum)
  • Make MetalDisconnector more robust against metallorganics
    (github pull #3465 from greglandrum)
  • Add nocharge algorithm example to cookbook
    (github pull #3467 from vfscalfani)
  • ROMol: add inline impl for common getNumAtoms call
    (github pull #3469 from jinpan)
  • Improve sphinx formatting in rdSubstructLibrary
    (github issue #3471 from cbouy)
  • Cmake config improvements
    (github pull #3478 from rvianello)
  • allow fillColour to be changed from python
    (github pull #3480 from greglandrum)
  • Fix undefined behavior in testCoordGen test
    (github pull #3495 from roccomoretti)
  • Add a version for the pattern fingerprint
    (github pull #3496 from greglandrum)
  • Fixes a number of issues flagged by clang
    (github pull #3498 from ptosco)
  • Update to maeparser v1.2.4
    (github pull #3506 from sailfish009)
  • Fix python invalid escape sequences
    (github pull #3508 from ricrogz)

Code removed in this 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 have been removed in favor of what().
  • The old MolHash code has been removed from the C++ code, all wrappers, and the
    PostgreSQL cartridge.

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

  • The function FileParserUtils::replaceAtomWithQueryAtom() has been moved to
    the namespace QueryOps. Please use QueryOps::replaceAtomWithQueryAtom()
    instead. The version in the FileParserUtils namespace will be removed in the
    next release.
  • The method std::vector<ROMOL_SPTR> TautomerEnumerator::enumerate(const ROMol &mol, boost::dynamic_bitset<> *modifiedAtoms, boost::dynamic_bitset<> *modifiedBonds = nullptr)
    is deprecated and will be removed in a future release.
    Please use TautomerEnumeratorResult TautomerEnumerator::enumerate(const ROMol &mol,bool reassignStereo = true)
    instead.
  • The MolDraw2DQt class is no longer supported since we don't think anyone is
    using it. It will be removed in the 2021.03 release unless we learn otherwise.

Release_2020.03.1

(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

Highlights:

  • 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 (http://doi.org/dqnh) (#2999)

Acknowledgements:

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 sascorer.py
    (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 substr