RDKit Changelog

What's new in RDKit 2014.09.2

Dec 15, 2014
  • Bug Fixes:
  • SMILES parser doing the wrong thing for odd dot-disconnected construct (github issue #378)
  • O3A code generating incorrect results for multiconformer molecules (github issue #385)
  • Suppliers probably not safe to read really large files (github issue #392)
  • Torsion constraints not worrking properly for negative torsions (github issue #393)
  • Core leak in reactions (github issue #396)

New in RDKit 2014.09.1 (Oct 30, 2014)

  • Bug Fixes:
  • Bond query information not written to CTAB (github issue #266)
  • Bond topology queries not written to CTABs (github issue #268)
  • Combined bond query + topology query not correctly parsed from CTAB (github issue #269)
  • SWIG wrapped suppliers leak memory on .next() (github issue #270)
  • SWIG wrappers don't build with SWIG 3.0.x (github issue #277)
  • core leak from DataStructs.ConvertToNumpyArray (github issue #281)
  • MolTransforms not exposed to Java wrapper (github issue #285)
  • Seg fault in ReactionFromRxnBlock (github issue #290)
  • BitInfo from GetHashedMorganFingerprint() has non-folded values (github issue #295)
  • bad inchi for chiral S when the molecule is sanitized (github issue #296)
  • Cannot generate smiles for ChEBI 50252 (github issue #298)
  • Either molecule-molecule substruct matching is wrong *OR* the docs for Atom::Match incorrect (github issue #304)
  • fluorine F-F gives segmentation fault with MMFF forcefield (github issue #308)
  • cartridge: MACCS similarity wrong when using the builtin popcount and the index (github issue #311)
  • Substructure Search via SMARTS implicit hydrogens (github issue #313)
  • SMARTS output for [x] is wrong (github issue #314)
  • Bonds not being set up properly in renumberAtoms (github issue #317)
  • Python 2 code in python 3 branch (github issue #326)
  • Linking error with ICC 15.0 on Linux (github issue #327)
  • Using explicit hydrogens in the SMILES lead to the same AP FP for two different molecules (github issue #334)
  • memory leaks when smiles/smarts parsers fail (github issue #335)
  • No double bond stereo perception from CTABs when sanitization is turned off (github issue #337)
  • missing MACCS key 44 might be found (github issue #352)
  • Hydrogens in mol blocks have a valence value set (github issue #357)
  • Computed props on non-sanitized molecule interfering with substructure matching (github issue #360)
  • Fixed a weakness in the angular restraint code (github pull #261 from ptosco)
  • A few fixes to improve MMFF/UFF robustness (github pull #274 from ptosco)
  • Static webGL rendering fix (github pull #287 from patrickfuller)
  • Revert #include ordering in SmilesMolSupplier.cpp (github pull #297 from mcs07)
  • Add missing include for RDDepict::compute2DCoords (github pull #301 from baoilleach)
  • Herschbach-Laurie fallback implemented to fix GitHub 308 (github pull #312 from ptosco)
  • Issue #320 Making GetBestRMS more idiot-proof (github pull #322 from jandom)
  • Update URLs to InChI API after inchi-trust.org website redesign. (github pull #341 from rwest)
  • New Features:
  • Should be able to do intramolecular bond breaking in reactions. (github issue #58)
  • Support reactions in cartridge (github issue #223)
  • Documentation of Inchi methods (github issue #240)
  • add DescribeQuery() to Bond python wrapper (github issue #267)
  • support avalon fingerprint in cartridge (github issue #286)
  • support partial fragmentation with fragmentOnSomeBonds (github issue #288)
  • Add calcNumHeterocycles() descriptor (github issue #351)
  • C++ implementation of FMCS algorithm
  • Reordering feature for Butina clustering (github pull #302 from sriniker)
  • Changes and new functions for the calculation of RMS values between conformers of a molecule (github pull #306 from sriniker)
  • Extended chemical reaction functionality and add chemical reactions to cartridge (github pull #315 from NadineSchneider)
  • Custom color to highlight atoms in Mol2Image (github pull #316 from jandom)
  • Several different fingerprint algorithms for chemical reactions are now available
  • add Chem.Draw.MolToQPixmap (github pull #355 from mojaie)
  • New Database Cartridge Features:
  • *NOTE:* the configuration variable rdkit.ss_fp_size has been renamed to rdkit.sss_fp_size Chemical reactions and several operations on them are now supported
  • Avalon fingerprints now supported (when support has been compiled in)
  • New Java Wrapper Features:
  • FMCS implementation exposed
  • Fingerprints for chemical reactions
  • Possible core leak in some of the MolSuppliers was fixed Deprecated modules (to be removed in next release):
  • Projects/SDView4
  • rdkit/utils/
  • GUIDs.py
  • GenLicense.py
  • Licensing.py
  • PiddleTools.py
  • PilTools.py
  • REFile.py
  • SliceTools.py
  • rdkit/Logger Removed modules: Contrib
  • updates:
  • Other:
  • The RDKit now supports both python3 and python2.
  • There is now conda integration for the RDKit.
  • SMILES generation is substantially faster

New in RDKit 2014.03.1 (May 13, 2014)

  • Bug Fixes:
  • Dict::DataType declaration causing problems with C++11 std::lib (github issue 144)
  • Pre-condition Violation in AllChem.Compute2DCoords (github issue 146)
  • GetSimilarityMapForFingerprint() fails when similarity is zero (github issue 148)
  • PatternFingerprint failure for substructure matching (github issue 151)
  • query atoms don't match ring queries (github issue 153)
  • Incorrect SMILES generated after calling MMFF parameterization (github issue 162)
  • Problems with Xe from SDF (github issue 164)
  • Radicals not being used in atom--atom matches (github issue 165)
  • Cannot skip sanitization while reading PDB (github issue 166)
  • Distance Geometry embedding not thread safe (github issue 167)
  • O3A::align() and O3A::trans() now return "true" RMSD value (github pull 173)
  • RangeError when pre-incrementing or decrementing AtomIterators (github issue 180)
  • ctabs do not contain wedged bonds for chiral s (github issue 186)
  • ctabs do not contain "A" when appropriate (github issue 187)
  • Problems round-tripping Al2Cl6 via CTAB (github issue 189)
  • Don't merge Hs onto dummies (github issue 190)
  • Wavy bonds to Hs in CTABs should affect the stereochemistry of attached double bonds (github issue 191)
  • Rendering binary compounds as ClH, FH, BrH or IH rather than putting H first. (github issue 199)
  • Fixed data race condition in Code/GraphMol/MolAlign/testMolAlign.cpp (github pull 202)
  • Re-prepared SDF/SMILES files of the MMFF validation suite + a fix (github pull 205)
  • Problems round-tripping P with non-default valence. (github issue 206)
  • Added a stricter definition of rotatable bonds as a new function in the ... (github pull 211)
  • Code/GraphMol/AddHs patch proposal (github pull 212)
  • Fix: Changed getNumReactantTemplates to GetNumReactantTemplates. (github pull 219)
  • aromatic B ("b") causes errors from SMARTS parser (github issue 220)
  • Segmentation fault for MMFF optimization with dummy atoms (github issue 224)
  • isMoleculeReactantOfReaction() and isMoleculeProductOfReaction() not useable from SWIG wrappers (github issue 228)
  • cartridge: mol_from_ctab() ignores argument about keeping conformers (github issue 229)
  • Reaction not correctly preserving chirality on unmapped atoms. (github issue 233)
  • AllChem.AssignBondOrdersFromTemplate() fails with nitro groups (github issue 235)
  • Fix molecule dataframe rendering in pandas 0.13.x (github pull 236)
  • Dummy labels copied improperly into products (github issue 243)
  • Two bugfixes in MMFF code (github pull 248)
  • seg fault when trying to construct pharmacophore with no conformation (github issue 252)
  • EmbedMolecule() should not create a conformer for molecules that have zero atoms (github issue 256)
  • cartridge: dice similarity calculation does not use USE_BUILTIN_POPCOUNT flag (github issue 259)
  • cartridge: similarity calculations wrong for maccs fps when USE_BUILTIN_POPCOUNT flag is set (github issue 260)
  • New Features:
  • Expose gasteiger charge calculation to SWIG (github issue 152)
  • Added additional functionality to PandasTools (github pull 155)
  • Add MMFFHasAllMoleculeParams() to SWIG interface (github issue 157)
  • O3A code should throw an exception if the parameterization is not complete. (github issue 158)
  • Support zero order bonds (github issue 168)
  • Add attachmentPoint argument to ReplaceSubstructs (github issue 171)
  • Forcefield constraints (distances, angles, torsions, positions) (github pull 172)
  • Add kekulize flag to SDWriter (github issue 174)
  • Support operator= for RWMol (github issue 175)
  • Get GetAromaticAtoms() and GetQueryAtoms() working from python (github issue 181)
  • Support richer QueryAtom options in Python (github issue 183)
  • Support writing V3000 mol blocks (github issue 184)
  • Allow disabling the building of tests (github issue 185)
  • Expand DbCLI to allow updating databases (github issue 197)
  • Code refactoring and enhancement to allow for O3A alignment according to atom-based Crippen logP contribs (github pull 201)
  • call MolOps::assignStereochemistry() with flagPossibleStereoCenters true from within the molecule parsers. (github issue 210)
  • Support passing of file-like PandasTools.LoadSDF (github pull 221)
  • Reaction SMARTS parser should support agents (github issue 222)
  • Add function to MolOps to allow a molecule to be split into fragments based on a query function This is useable from python as Chem.SplitMolByPDBResidues() and Chem.SplitMolByPDBChainId() (github issue 234)
  • Adding option useCounts for Morgan fingerprints (github pull 238)
  • support SimpleEnum functionality for adding recursive queries to reactions (github issue 242)
  • Additional functions for bit vectors (github pull 244)
  • Support of RDK fingerprints added to SimilarityMaps (github pull 246)
  • add get3DDistance
  • support 3D distances in the atom pair fingerprints (github issue 251)
  • added MolOps::get3DDistanceMat() (Chem.Get3DDistanceMatrix() from python)
  • New Database Cartridge Features:
  • Support configuration of fingerprint sizes in cartridge. (github issue 216)
  • Add mol_to_ctab(mol, bool default true) to Postgres cartridge. (github pull 230)
  • Adds sum formula function to PG cartridge. (github pull 232)
  • New Java Wrapper Features:
  • Deprecated modules (to be removed in next release):
  • Removed modules:
  • The CMIM integration (previously available to python in the rdkit.ML.FeatureSelect package) has been removed due to license incompatibility.
  • Contrib updates:
  • Added Contribution to train ChEMBL-based models (github pull 213)
  • ConformerParser functionality (github pull 245)
  • Other:
  • The Open3DAlign code is considerably faster.
  • The SMILES parsing code is faster.
  • Fix Bison 3.x incompabtility (github pull 226)
  • Add Travis support (github pull 227)
  • port of rdkit.ML bindings from Python/C API to boost::python (github pull 237)
  • The code now builds more easily using the Anaconda python distribution's conda package manager (github pull 247)

New in RDKit 2013.09.1 (Nov 4, 2013)

  • Bug Fixes:
  • The pymol ShowMol method can now handle molecules with more than
  • 999 atoms (they are sent via PDB)
  • Various stability improvements to the Pandas integration.
  • Some RDKit methods require python lists and don't allow passing
  • numpy arrays or pandas series directly
  • mol2 parser not setting E/Z flags on double bonds
  • Incorrect angle terms in UFF
  • Problems with stereochemistry flags and PathToSubmol()
  • Bad Crippen atom type for pyrrole H
  • PandasTools tests fail with Pandas v0.12
  • Isotope information not affecting chirality
  • properties are not read from SDF files with V3000 mol blocks.
  • assignStereochemistry does not remove bond wedging that shouldn't be there.
  • Drawing code modifies wedge bonds in reactions
  • Stereochemistry not perceived when parsing CTABs unless sanitization is done.
  • 2D rendering issue for epoxide ( CAS 70951-83-6)
  • PandasTools doctests should be failing, but are not
  • Better handling of radicals to/from mol files
  • Benzothiazolium structure can be parsed from ctab, but the SMILES generated cannot be processed.
  • Chem.MolFromInch hangs on CID 23691477 and CID 23691480
  • Chem.MolFromInchi on CHEMBL104337 leads to segmentation fault
  • "Could not embed molecule." (The Anthony Conundrum)
  • New Features:
  • Add fragmentOnBonds() to python wrapper
  • Allow renumbering atoms in a molecule.
  • MMFF94 and MMFF94S support
  • implementation of the Open3DAlign rigid alignment algorithm
  • Support for reading and writing PDB files
  • The python function AllChem.AssignBondOrdersFromTemplate() can be
  • used to assign bond orders from a reference molecule to the bonds
  • in another molecule. This is helpful for getting bond orders
  • correct for PDB ligands.
  • Bond lengths, angles, and torsions can now be queries and adjusted.
  • Implementation of similarity maps
  • Python implementation of the Fraggle similarity algorithm.
  • See Jameed Hussain's presentation from the 2013 UGM for details:
  • https://github.com/rdkit/UGM_2013/blob/master/Presentations/Hussain.Fraggle.pdf?raw=true
  • SparseIntVects now support -=, +=, /=, and *= with ints from C++
  • and Python
  • support \\ in SMILES
  • Support a similarity threshold in DbCLI
  • Support construction molecules from other molecules in the python wrapper
  • support tversky similarity in DbCLI
  • support tversky similarity in cartridge
  • support reading and writing reactionComponentType and reactionComponentNumber from ctabs
  • Add in-place forms of addHs(), removeHs(), and mergeQueryHs()
  • modify MolOps::cleanUp() to support this azide formulation: C-N=N#N
  • Dihedral rotation exposed in python
  • Support for cairocffi (cairo drop-in replacement that plays nicely with virtualenv)
  • Grey color for Hydrogens
  • Improvements to the Dict interface in C++
  • customizable drawing options
  • Add method for setting the chiral flag in mol blocks
  • New descriptors added (Python only for now):
  • MaxPartialCharge(),MinPartialCharge(),MaxAbsPartialCharge(),MinAbsPartialCharge(),
  • MaxEStateIndex(),MinEStateIndex(),MaxAbsEStateIndex(),MinAbsEStateIndex()

New in RDKit 2013.06.1 (Jul 29, 2013)

  • Bug Fixes:
  • The docs for Descriptors.MolWt are now correct (GitHub #38)
  • Molecules coming from InChi now have the correct molecular
  • weight. (GitHub #40)
  • RemoveAtoms() no longer leads to problems in canonical SMILES
  • generation when chiral ring atoms are present. (GitHub #42)
  • Atom invariants higher than the number of atoms in the molecule can
  • now be provided to the atom pairs and topological torsions
  • fingerprinters. (GitHub #43)
  • A typo with the handling of log levels was fixed in the python
  • wrapper code for InChI generation. (GitHub #44)
  • Stereochemistry no longer affects canonical SMILES generation if
  • non-stereo SMILES is being generated. (GitHub #45)
  • The ExactMolWt of [H+] is no longer zero. (GitHub #56)
  • The MPL canvas now has an addCanvasDashedWedge() method. (GitHub
  • #57)
  • RWMol::insertMol() now copies atom coordinates (if
  • present). (GitHub #59)
  • The "h" primitive in SMARTS strings now uses the method
  • getTotalNumHs(false) instead of getImplicitValence().
  • (GitHub #60)
  • bzip2 files now work better with the SDWriter class. (GitHub #63)
  • a crashing bug in InChI generation was fixed. (GitHub #67)
  • New Features:
  • Sanitization can now be disabled when calling GetMolFrags() from
  • Python (GitHub #39)
  • Bond.GetBondTypeAsDouble() has been added to the python
  • wrapper. (GitHub #48)
  • The fmcs code now includes a threshold argument allowing the MCS
  • that hits a certain fraction of the input molecules (instead of all
  • of them) to be found. The code has also been synced with the most
  • recent version of Andrew Dalke's version.
  • Atoms now have a getTotalValence() (GetTotalValence() from Python)
  • method. (GitHub #61)
  • R labels from Mol files now can go from 0-99
  • chiral flags in CTABs are now handled on both reading and writing.
  • The property "_MolFileChiralFlag" is used.

New in RDKit 2013.03.2 (May 1, 2013)

  • The hashed topological torsion fingerprints generated are now the same as in previous rdkit versions.

New in RDKit 2013.03.1 (Apr 27, 2013)

  • Bug Fixes:
  • removeBond now updates bond indices (sf.net issue 284)
  • dummy labels are no longer lost when atoms are copied (sf.net issue
  • 285)
  • more specific BRICS queries now match before less specific ones
  • (sf.net issue 287, github issue 1)
  • molAtomMapNumber can now be set from Python (sf.net issue 288)
  • the legend centering for molecular image grids has been improved
  • (sf.net issue 289)
  • make install now includes all headers (github issue 2)
  • InChIs generaged after clearing computed properties are now correct
  • (github issue 3)
  • Reacting atoms that don't change connectivity no longer lose
  • stereochemistry (github issue 4)
  • Aromatic Si is now accepted (github issue 5)
  • removeAtom (and deleteSubstructs) now correctly updates stereoAtoms
  • (github issue 8)
  • [cartridge] pg_dump no longer fails when molecules cannot be
  • converted to SMILES (github issue 9)
  • a canonicalization bug in MolFragmentToSmiles was fixed (github issue 12)
  • atom labels at the edge of the drawing are no longer cut off (github issue 13)
  • a bug in query-atom -- query-atom matching was fixed (github issue 15)
  • calling ChemicalReaction.RunReactants from Python with None
  • molecules no longer leads to a seg fault. (github issue 16)
  • AllChem.ReactionFromSmarts now generates an error message when called
  • with an empty string.
  • Writing CTABs now includes information about atom aliases.
  • An error in the example fdef file
  • $RDBASE/Contrib/M_Kossner/BaseFeatures_DIP2_NoMicrospecies.fdef
  • has been fixed. (github issue 17)
  • Quantize.FindVarMultQuantBounds() no longer generates a seg fault
  • when called with bad arguments. (github issue 18)
  • New Features:
  • The handling of chirality in reactions has been reworked and
  • improved. Please see the RDKit Book for an explanation.
  • Atom-pair and topological-torsion fingerprints now support the
  • inclusion of chirality in the atom invariants.
  • A number of new compositional descriptors have been added:
  • calcFractionCSP3, calcNum{Aromatic,Aliphatic,Saturated}Rings,
  • calcNum{Aromatic,Aliphatic,Saturated}Heterocycles,
  • calcNum{Aromatic,Aliphatic,Saturated}Carbocycles
  • An implementation of the molecular quantum number (MQN) descriptors
  • has been added.
  • RDKFingerprintMol now takes an optional atomBits argument which is
  • used to return information about which bits atoms are involved in.
  • LayeredFingerprintMol no longer takes the arguments tgtDensity and
  • minSize. They were not being used.
  • LayeredFingerprintMol2 has been renamed to PatternFingerprintMol
  • The substructure matcher can now properly take stereochemistry into
  • account if the useChirality flag is provided.
  • The module rdkit.Chem.Draw.mplCanvas has been added back to svn.
  • New Database Cartridge Features:
  • The new compositional descriptors are available:
  • calcFractionCSP3, calcNum{Aromatic,Aliphatic,Saturated}Rings,
  • calcNum{Aromatic,Aliphatic,Saturated}Heterocycles,
  • calcNum{Aromatic,Aliphatic,Saturated}Carbocycles
  • MACCS fingerprints are available
  • the substruct_count function is now available
  • substructure indexing has improved. NOTE: indexes on molecule
  • columns will need to be rebuilt.
  • New Java Wrapper Features:
  • The new compositional descriptors are available:
  • calcFractionCSP3, calcNum{Aromatic,Aliphatic,Saturated}Rings,
  • calcNum{Aromatic,Aliphatic,Saturated}Heterocycles,
  • calcNum{Aromatic,Aliphatic,Saturated}Carbocycles
  • The molecular quantum number (MQN) descriptors are available
  • MACCS fingerprints are available
  • BRICS decomposition is available.

New in RDKit 2012.09.1 (Oct 25, 2012)

  • Bug Fixes:
  • The molecules that come from mergeQueryHs() now reset the RingInfo structure. (issue 245)
  • The output from MurckoScaffold.MakeScaffoldGeneric no longer includes stereochemistry or explicit Hs. (issue 246)
  • D and T atoms in CTABs now have their isotope information set. (issue 247)
  • Some problems with ring finding in large, complex molecules have been fixed. (issue 249)
  • The "rootedAtAtom" argument for FindAllSubgraphsOfLengthN is now handled properly. (issue 250)
  • Bonds now have a SetProp() method available in Python. (issue 251)
  • A number of problems with the Crippen atom parameters have been fixed. (issue 252)
  • Ring closure digits are no longer repeated on the same atom in SMILES generated by the RDKit. (issue 253)
  • Non-ring sulfur atoms adjacent to aromatic atoms are no longer set to be SP2 hybridized. This allows them to be stereogenic. (issue 254)
  • The combineMols() function now clears computed properties on the result molecule.
  • A couple of problems with the pickling functions on big endian hardware were fixed.
  • The molecule drawing code now uses isotope information
  • Superscript/Subscript handling in the agg canvas has been improved.
  • SKP lines in CTABS are now propertly handled. (Issue 255)
  • The name of the optional argument to mol.GetNumAtoms has been changed from onlyHeavy to onlyExplicit. The method counts the number of atoms in the molecular graph, not the number of heavy
  • atoms. These numbers happen to usually be the same (which is why this has taken so long to show up), but there are exceptions if Hs or dummy atoms are in the graph. (Issue 256)
  • Unknown bonds in SMILES are now output using '~' instead of '?'. The SMILES parser now recognizes '~' as an "any bond" query. (Issue 257)
  • Lines containing only white space in SDF property blocks are no longer treated as field separators.
  • Transition metals and lanthanides no longer have default valences assigned.
  • New Features:
  • The RDKit now has a maximum common substructure (MCS) implementation contributed by Andrew Dalke. This is currently implemented in Python and is available as: from rdkit.Chem import MCS Documentation is available as a docstring for the function MCS.FindMCS and in the GettingStarted document.
  • A few new functions have been added to rdkit.Chem.Draw: MolsToImage(), MolsToGridImage(), ReactionToImage() CalcMolFormula() now provides the option to include isotope information.
  • The RDKit and Layered fingerprinters both now accept "fromAtoms" arguments that can be used to limit which atoms contribute to the fingerprint.
  • Version information is now available in the Java wrapper.
  • The descriptor NumRadicalElectrons is now available.
  • The PyMol interface now supports a GetPNG() method which returns the current contents of the viewer window as an PIL Image object.
  • Molecules (ROMol in C++, rdkit.Chem.Mol in Python) now have a getNumHeavyAtoms() method.
  • Component-level grouping (parens) can be used in reaction SMARTS.

New in RDKit 2012.06.1 (Jul 11, 2012)

  • Bug Fixes:
  • Radicals are now indicated in molecular depictions.
  • Calling .next() on an SDMolSupplier at eof no longer results in an
  • infinite loop.
  • Chirality perception no longer fails in large molecules.
  • problem creating molblock for atom with four chiral nbrs
  • A second sanitization leads to a different molecule.
  • can't parse Rf atom in SMILES
  • generates [HH2-] but can't parse it
  • improper (re)perception of 1H-phosphole
  • ForwardSDMolSupplier not skipping forward on some errors
  • SMILES/SMARTS parsers don't recognize 0 atom maps
  • R group handling in SMILES
  • Canonical smiles failure in symmetric heterocycles
  • Canonical smiles failure with "extreme" isotopes
  • Canonical smiles failure with many symmetric fragments
  • Canonical smiles failure with dependent double bonds
  • Build Fails Due to Missing include in Code/RDBoost/Wrap.h
  • Incorrect template parameter use in std::make_pair
  • Canonicalization failure in cycle
  • incorrect values reported in ML analysis
  • Cartridge does not work on 32bit ubuntu 12.04
  • Murcko Decomposition generates unuseable molecule.
  • A few memory leaks were fixed in the Java Wrappers
  • The exact mass of molecules with non-standard isotopes is now
  • calculated correctly.
  • The default (Euclidean) distance metric should now work with Butina
  • clustering.
  • Some bugs in the depictor were fixed.
  • AvalonTools bug with coordinate generation for mols with no
  • conformers fixed.
  • New Features:
  • ChemicalFeatures now support an optional id
  • Isotope handling has been greatly improved. Atoms now have a
  • getIsotope() (GetIsotope() in Python) method that returns zero if
  • no isotope has been set, the isotope number otherwise.
  • The function MolFragmentToSmiles can be used to generate canonical
  • SMILES for pieces of molecules.
  • The function getHashedMorganFingerprint (GetHashedMorganFingerprint
  • in Python) has been added.
  • New Database Cartridge Features:
  • The functions mol_from_smiles(), mol_from_smarts(), and
  • mol_from_ctab() now return a null value instead of generating an
  • error when the molecule processing fails. This allows molecule
  • tables to be constructed faster.
  • The functions mol_to_smiles() and mol_to_smarts() have been added.
  • Creating gist indices on bit-vector fingerprint columns is faster.
  • The indexing fingerprint for molecular substructures has been changed.
  • The new fingerprint is a bit slower to generate, but is
  • considerably better at screening. More information here:
  • http://code.google.com/p/rdkit/wiki/ImprovingTheSubstructureFingerprint
  • New Java Wrapper Features:
  • Deprecated modules (to be removed in next release):
  • Support for older (pre9.1) postgresql versions.
  • Removed modules:
  • rdkit.Excel
  • the code in $RDBASE/Code/PgSQL/RDLib
  • rdkit.Chem.AvailDescriptors : the same functionality is now available
  • in a more useable manner from rdkit.Chem.Descriptors
  • Other:
  • Similarity calculations on ExplicitBitVectors should now be much faster
  • Use of [Xa], [Xb], etc. for dummy atoms in SMILES is no longer
  • possible. Use the "*" notation and either isotopes (i.e. [1*],
  • [2*]) or atom maps (i.e. [*:1], [*:2]) instead.
  • Initial work was done towards make the RDKit work on big endian
  • hardware (mainly changes to the way pickles are handled)
  • Canonical SMILES generation is now substantially faster.

New in RDKit 2012.03.1 (Apr 17, 2012)

  • Bug Fixes:
  • the older form of group evaluations in Mol blocks is now correctly
  • parsed. (Issue 3477283)
  • some problems with handling aromatic boron were fixed. (Issue 3480481)
  • the SD writer no longer adds an extra $$$$ when molecule parsing
  • fails (Issue 3480790)
  • molecules in SD files that don't contain atoms are now parsed
  • without warnings and their properties are read in. (Issue 3482695)
  • it's now possible to embed molecules despite failures in the triangle
  • bounds checking (Issue 3483968)
  • Isotope information in Mol blocks is now written to M ISO lines
  • instead of going in the atom block. (Issue 3494552)
  • Better 2D coordinates are now generated for neighbors of atoms with
  • unspecified hybridization. (Issue 3487469)
  • Dummy atoms and query atoms are now assigned UNSPECIFIED hybridization
  • instead of SP. (Issue 3487473)
  • Error reporting for SMARTS involving recursion has been improved.
  • (Issue 3495296)
  • Some problems of queries and generating SMARTS for queries were resolved.
  • (Issues 3496759, 3496799, 3496800)
  • It's now possible to do database queries with SMARTS that use the index.
  • (Issue 3493156).
  • A series of problems related to thread safety were fixed.
  • Tracking the lifetime of owning molecules across the C++/Python
  • border is now being handled better (Issue 3510149)
  • A bug with ring-finding in some complex fused ring systems was fixed.
  • (Issue 3514824)
  • New Features:
  • The molecular sanitization is now configurable using an optional
  • command-line argument.
  • It's now possible to get information from the sanitization routine
  • about which operation failed.
  • Suppliers support GetLastItemText()
  • ComputeDihedralAngle() and ComputeSignedDihedralAngle() were added
  • to the rdkit.Geometry module.
  • computeSignedDihedralAngle() was added to the C++ API
  • ChemicalReactions now support a GetReactingAtoms() method
  • the Mol file and Mol block parsers, as well as the SD suppliers,
  • now support an optional "strictParsing" argument.
  • When this is set to False, problems in the structure of the
  • input file are ignored when possible
  • EditableMols return the index of the atom/bond added by AddAtom/AddBond
  • rdkit.Chem.Draw.MolToImage() now supports an optional "legend" argument
  • New Database Cartridge Features:
  • the functions mol_from_smiles() and mol_from_smarts() were added
  • New Java Wrapper Features:
  • the diversity picker now supports an optional random-number seed
  • Deprecated modules (to be removed in next release):
  • rdkit.Excel
  • Removed modules:
  • rdkit.ML.Descriptors.DescriptorsCOM
  • rdkit.ML.Composite.CompositeCOM

New in RDKit 2011.12.1 (Jan 16, 2012)

  • Bug Fixes:
  • molecules with polymeric S group information are now rejected by the
  • Mol file parser. (Issue 3432136)
  • A bad atom type definition and a bad smarts definition were fixed in
  • $RDBASE/Data/Crippen.txt. This affects the values returned by the
  • logp and MR calculators. (Issue 3433771)
  • Unused atom-map numbers in reaction products now produce warnings
  • instead of errors. (Issue 3434271)
  • rdMolDescriptors.GetHashedAtomPairFingerprint() now works. (Issue
  • 3441641)
  • ReplaceSubstructs() now copies input molecule conformations to the
  • output molecule. (Issue 3453144)
  • three-coordinate S and Se are now stereogenic (i.e. the
  • stereochemistry of O=[S@](C)F is no longer ignored). (Issue 3453172)
  • New Features:
  • Integration with the new IPython graphical canvas has been
  • added. For details see this wiki page:
  • http://code.google.com/p/rdkit/wiki/IPythonIntegration
  • Input and output from Andrew Dalke's FPS format
  • (http://code.google.com/p/chem-fingerprints/wiki/FPS) for
  • fingerprints.
  • The descriptor CalcNumAmideBonds() was added.
  • New Database Cartridge Features:
  • Support for PostgreSQL v9.1
  • Integration with PostgreSQL's KNN-GIST functionality. (Thanks to
  • Adrian Schreyer)
  • the functions all_values_gt(sfp,N) and all_values_lt(sfp,N) were
  • added.
  • New Java Wrapper Features:
  • A function for doing diversity picking using fingerprint similarity.
  • support for the Avalon Toolkit (see below)
  • Deprecated modules (to be removed in next release):
  • rdkit.Excel
  • rdkit.ML.Descriptors.DescriptorsCOM
  • rdkit.ML.Composite.CompositeCOM
  • Removed modules:
  • rdkit.WebUtils
  • rdkit.Reports
  • rdkit.mixins
  • Other:
  • Improvements to the SMARTS parser (Roger Sayle)
  • The atom-pair and topological-torsion fingerprinting functions that
  • return bit vectors now simulate counts by setting multiple bits in
  • the fingerprint per atom-pair/torsion. The number of bits used is
  • controlled by the nBitsPerEntry argument, which now defaults to 4.
  • The new default behavior does a much better job of reproducing the
  • similarities calculated using count-based fingerprints: 95% of
  • calculated similarities are within 0.09 of the count-based value
  • compared with 0.22 or 0.17 for torsions and atom-pairs previously.
  • To get the old behavior, set nBitsPerEntry to 1.
  • Optional support has been added for the Avalon Toolkit
  • (https://sourceforge.net/projects/avalontoolkit/) to provide an
  • alternate smiles canonicalization, fingerprint, and 2D coordination
  • generation algorithm.
  • The SLN support can now be switched off using the cmake variable
  • RDK_BUILD_SLN_SUPPORT.
  • There are now instructions for building the RDKit and the SWIG
  • wrappers in 64bit mode on windows.

New in RDKit Q2 2011.06.1 (Jul 11, 2011)

  • Bug Fixes:
  • A problem with similarity values between SparseIntVects that contain negative values was fixed. (Issue 3295215)
  • An edge case in SmilesMolSupplier.GetItemText() was fixed. (Issue 3299878)
  • The drawing code now uses dashed lines for aromatic bonds without kekulization. (Issue 3304375)
  • AllChem.ConstrainedEmbed works again. (Issue 3305420)
  • atomic RGP values from mol files are accessible from python (Issue 3313539)
  • M RGP blocks are now written to mol files. (Issue 3313540)
  • Atom.GetSymbol() for R atoms read from mol files is now correct. (Issue 3316600) - The handling of isotope specifications is more robust.
  • A thread-safety problem in SmilesWrite::GetAtomSmiles() was fixed.
  • some of the MACCS keys definitions have been corrected - Atoms with radical counts > 2 are no longer always written to CTABs with a RAD value of 3. (Issue 3359739)
  • New Features:
  • The smiles, smarts, and reaction smarts parsers all now take an additional argument, "replacements", that carries out string substitutions pre-parsing.
  • There is now optional support for generating InChI codes and keys for molecules.
  • the atom pair and topological torsion fingerprint generators now take an optional "ignoreAtoms" argument - a function to calculate exact molecular weight was added. new java wrappers are now available in $RDBASE/Code/JavaWrappers
  • the methods getMostCommonIsotope() and getMostCommonIsotopeMass() have been added to the PeriodicTable class.
  • New Database Cartridge Features:
  • Support for generating InChIs and InChI keys (if the RDKit InChI support is enabled)
  • Deprecated modules (to be removed in next release):
  • The original SWIG wrappers in $RDBASE/Code/Demos/SWIG are deprecated

New in RDKit Q3 2011.03.1 (Apr 9, 2011)

  • Bug Fixes:
  • The performance of SSSR finding for molecules with multiple highly-fused
  • ring systems has been improved. (Issue 3185548)
  • Isotope information is now correctly saved when molecules are
  • serialized (pickled). (Issue 3205280)
  • Generating SMILES for a molecule no longer changes the
  • molecule. This fixes a round-trip bug with certain highly symmetric
  • molecules read from SD files. (Issue 3228150)
  • Another bounds-matrix generation bug for highly (con)strained
  • systems was fixed. (Issue 3238580)
  • Conformation information is now better handled by deleteSubstructs(),
  • replaceSubstructs(), and replaceCore().
  • New Features:
  • the rdkit.Chem.Draw package has been significantly refactored.
  • Code for doing Murcko decomposition of molecules has been
  • added. From Python this is in the module:
  • rdkit.Chem.Scaffolds.MurckoScaffold
  • It's available in C++ in the GraphMol/ChemTransforms area.
  • rdkit.Chem.AllChem.TransformMol() now takes optional arguments
  • allowing the conformation to be transformed to be specified and
  • other existing conformations to be preserved.
  • Calculations for most of the descriptors in rdkit.Chem.Lipinski and
  • rdkit.Chem.MolSurf have been moved into C++. The python API is the
  • same, but the calculations should be somewhat faster.
  • Extensive feature additions to the SWIG-based java wrapper.
  • The Chem.ReplaceCore() function is now better suited for use
  • in R-group decomposition.
  • The Morgan fingerprinting code can now return information about
  • which atoms set particular bits.
  • The function pathToSubmol() now copies coordinate information
  • from conformations (if present). The function is also now available
  • from Python
  • The path and subgraph finding code now takes an optional
  • rootedAtAtom argument to allow only paths/subgraphs that start at a
  • particular atom to be generated.
  • The function findAtomEnvironmentOfRadiusN has been added to allow
  • circular atom environments to be located in molecules.
  • MolOps::assignStereochemistry now can also flag potential
  • stereocenters that are not specified.

New in RDKit Q32010 Beta 1 (Sep 27, 2010)

  • Bug Fixes:
  • A typo in the parameters for the Crippen clogp calculator was
  • fixed. (issue 3057201)
  • some problems in the layered fingerprinting code were fixed. (issue
  • 3030388)
  • a bug in the ring-finding code that could lead to incorrect results
  • or crashes in large molecules was fixed.
  • the Murtagh clustering code should now execute correctly on recent
  • versions of the MacOS.
  • some problems with the cairo canvas were fixed
  • a problem with matching non-default isotope SSS queries for molecules
  • read in from CTABs was fixed (issue 3073163).
  • a problem with calculating AMW for molecules with non-default isotopes
  • was fixed.
  • New Features:
  • a PostgreSQL cartridge for similarity and substructure searching
  • has been added to the RDKit distribution.
  • The Morgan fingerprinting code accepts additional arguments that
  • control whether or not bond order and chirality are taken into
  • account. By default chirality is ignored and the bond order is
  • used. Another change with the MorganFPs is that ring information is
  • now included by default.
  • 2D coordinates can now be generated for chemical reactions.
  • The functions IsMoleculeReactantOfReaction and
  • IsMoleculeProductOfReaction have been added to the C++
  • interface. From python these are methods of the ChemicalReaction
  • class:
  • rxn.IsMoleculeReactant and rxn.IsMoleculeProduct
  • The default bond length for depiction can now be changed.
  • FCFP-like fingerprints can now be generated with the Morgan
  • fingerprinting code by starting with feature invariants.
  • The close() method has been added to MolWriters.
  • Morgan, atom-pair, and topological-torsion fingerprints can now
  • also be calculated as bit vectors.
  • RDKit and layered fingerprints can now be generated using only
  • linear paths.
  • the function findAllPathsOfLengthMtoN() was added

New in RDKit Q22010 (Jul 9, 2010)

  • Bug Fixes:
  • The depictor no longer generates NaNs for some molecules on
  • windows (issue 2995724)
  • [X] query features work correctly with chiral atoms. (issue
  • 3000399)
  • mols will no longer be deleted by python when atoms/bonds returned
  • from mol.Get{Atom,Bond}WithIdx() are still active. (issue 3007178)
  • a problem with force-field construction for five-coordinate atoms
  • was fixed. (issue 3009337)
  • double bonds to terminal atoms are no longer marked as "any" bonds
  • when writing mol blocks. (issue 3009756)
  • a problem with stereochemistry of double bonds linking rings was
  • fixed. (issue 3009836)
  • a problem with R/S assignment was fixed. (issue 3009911)
  • error and warning messages are now properly displayed when cmake
  • builds are used on windows.
  • a canonicalization problem with double bonds incident onto aromatic
  • rings was fixed. (issue 3018558)
  • a problem with embedding fused small ring systems was fixed.
  • (issue 3019283)
  • New Features:
  • RXN files can now be written. (issue 3011399)
  • reaction smarts can now be written.
  • v3000 RXN files can now be read. (issue 3009807)
  • better support for query information in mol blocks is present.
  • (issue 2942501)
  • Depictions of reactions can now be generated.
  • Morgan fingerprints can now be calculated as bit vectors (as
  • opposed to count vectors.
  • the method GetFeatureDefs() has been added to
  • MolChemicalFeatureFactory
  • repeated recursive SMARTS queries in a single SMARTS will now be
  • recognized and matched much faster.
  • the SMILES and SMARTS parsers can now be run safely in
  • multi-threaded code.
  • Deprecated modules (to be removed in next release):
  • rdkit/qtGui
  • Projects/SDView
  • Removed modules:
  • SVD code: External/svdlibc External/svdpackc rdkit/PySVD
  • rdkit/Chem/CDXMLWriter.py
  • Other:
  • The large scale changes in the handling of stereochemistry were
  • made for this release. These should make the code more robust.
  • If you are building the RDKit yourself, changes made in this
  • release require that you use a reasonably up-to-date version of
  • flex to build it. This is likely to be a problem on Redhat, and
  • redhat-derived systems. Specifically: if your version of flex is
  • something like 2.5.4 (as opposed to something like 2.5.33, 2.5.34,
  • etc.), you will need to get a newer version from
  • http://flex.sourceforge.net in order to build the RDKit.
  • Changes only affecting C++ programmers:
  • The code for calculating topological-torsion and atom-pair
  • fingerprints has been moved from $RDBASE/Code/GraphMol/Descriptors
  • to $RDBASE/Code/GraphMol/Fingerprints.
  • The naming convention for methods of ExplicitBitVect and
  • SparseBitVect have been changed to make it more consistent with
  • the rest of the RDKit.
  • the bjam-based build system should be considered
  • deprecated. This is the last release it will be actively
  • maintained.

New in RDKit Q42009 (Feb 18, 2010)

  • A bug fix in the SMARTS parser has changed the way atom-map numbers in Reaction SMARTS are parsed. Earlier versions of the RDKit required that atom maps be specified at the beginning of a complex atom query: [CH3:1,NH2]>>[*:1]O The corrected version only accepts this form: [CH3,NH2:1]>>[*:1]O This change may break existing SMARTS patterns.
  • A switch to using cmake as the build system instead of bjam has made the RDKit much easier to build.
  • Acknowledgements:
  • Andrew Dalke, Kirk DeLisle, David Hall, Markus Kossner, Adrian Schreyer, Nikolaus Stiefl, Jeremy Yang
  • Bug Fixes:
  • the SMARTS parser now correctly requires tha atom-map numbers be at the end of a complex atom query. (issue 1804420)
  • a bug in the way SMARTS matches are uniquified has been fixed (issue 2884178)
  • New Features:
  • The new SMARTS atomic query feature "x" (number of ring bonds) is now supported.
  • The proof-of-concept for a SWIG-based wrapper around the RDKit has been expanded a bit in functionality. Samples are now included for Java, C#, and Python.
  • Information about the current RDKit and boost versions is now available from C++ (file RDGeneral/versions.h) and Python (rdBase.rdkitVersion and rdBase.boostVersion)
  • The KNN code now supports weighted nearest-neighbors calculations with a radius cutoff.
  • Other:
  • The lapack dependency has been completely removed from the RDKit.
  • The supported build system for the RDKit is now cmake (http://www.cmake.org) instead of bjam. See the file INSTALL for the new installation instructions. Files for bjam are still included in the distribution but are deprecated and will be removed in a future version.

New in RDKit Q32009 (Dec 17, 2009)

  • IMPORTANT:
  • Due to bug fixes in the boost random-number generator, RDK fingerprints generated with boost 1.40 are not backwards compatible with those from earlier versions.
  • Bug Fixes:
  • the canonOrient argument to the depiction code now works
  • typo in the depictor 2D embedding code fixed
  • single aromatic atoms in chains now (correctly) fail sanitization
  • problem with embedding and fused rings fixed
  • crash when reading some large molecules fixed
  • trailing newline in TemplateExpand.py fixed
  • fingerprint incompatibility on 64bit machines fixed
  • PropertyMol properties are now written to SD files
  • New Features:
  • to the extent possible, reactions now transfer coordinates from reactant molecules to product molecules (issue 2832951)
  • Other:
  • the function DaylightFingerprintMol() has been removed
  • the outdated support for Interbase has been removed
  • the Compute2DCoords() function in Python now canonicalizes the orientation of the molecule by default.
  • the distance-geometry code should now generate less bad amide conformations. (issue 2819563)
  • the quality of distance-geometry embeddings for substituted- and fused-ring systems should be better.

New in RDKit Q22009 (Jun 29, 2009)

  • Bug Fixes
  • handling of crossed bonds in mol files fixed (issue 2804599)
  • serialization bug fixed (issue 2788233)
  • pi systems with 2 electrons now flagged as aromatic (issue 2787221)
  • Chirality swap on AddHs (issue 2762917)
  • core leak in UFFOptimizeMolecule fixed (issue 2757824)
  • New Features
  • cairo support in the mol drawing code (from Uwe Hoffmann) (issue 2720611)
  • Tversky and Tanimoto similarities now supported for SparseIntVects
  • AllProbeBitsMatch supported for BitVect-BitVect comparisons
  • ChemicalReactions support serialization (pickling) (issue 2799770)
  • GetAtomPairFingerprint() supports minLength and maxLength arguments
  • GetHashedTopologicalTorsionFingerprint() added
  • preliminary support added for v3K mol files
  • ForwardSDMolSupplier added
  • CompressedSDMolSupplier added (not supported on windows)
  • UFFHasAllMoleculeParams() added
  • substructure searching code now uses an RDKit implementation of
  • the vf2 algorithm. It's much faster.
  • Atom.GetPropNames() and Bond.GetPropNames() now available from
  • python
  • BRICS code now supports FindBRICSBonds() and BreakBRICSBonds()
  • atom labels Q, A, and * in CTABs are more correctly supported
  • (issue 2797708)
  • rdkit.Chem.PropertyMol added (issue 2742959)
  • support has been added for enabling and disabling logs
  • (issue 2738020)
  • Other
  • A demo has been added for using the MPI with the RDKit
  • ($RDBASE/Code/Demos/RDKit/MPI).
  • Embedding code is now better at handling chiral structures and
  • should produce results for molecules with atoms that don't have
  • UFF parameters.
  • the UFF code is more robust w.r.t. missing parameters
  • GetHashedAtomPairFingerprint() returns SparseIntVect instead of
  • ExplicitBitVect
  • the CTAB parser (used for mol files and SD files) is faster
  • extensive changes to the layered fingerprinting code;
  • fingerprinting queries is now possible
  • molecule discriminator code moved into $RDBASE/Code/GraphMol/Subgraphs
  • the SDView4 prototype has been expanded
  • $RDBASE/Regress has been added to contain regression and
  • benchmarking data and scripts.
  • support for sqlalchemy has been added to $RDBASE/rdkit/Chem/MolDb
  • the BRICS code has been refactored

New in RDKit Q42008 (Feb 4, 2009)

  • Bug Fixes:
  • core leaks in learning code (issue 2152622)
  • H-bond acceptor definitions (issue 2183240)
  • handling of aromatic dummies (issue 2196817)
  • errors in variable quantization (issue 2202974)
  • errors in information theory functions on 64 bit machines (issue 2202977)
  • kekulization problems (issue 2202977)
  • infinite loop in getShortestPaths() for disconnected structures (issue 2219400)
  • error in depictor for double bonds with stereochemistry connected to rings (issue 2303566)
  • aromaticity flags not copied to null atoms in reaction products (issue 2308128)
  • aromaticity perception in large molecule hangs (issue 2313979)
  • invariant error in canonicalization (issue 2316677)
  • mol file parser handling of bogus bond orders (issue 2337369)
  • UFF optimization not terminating when atoms are on top of each other (issue 2378119)
  • incorrect valence errors with 4 coordinate B- (issue 2381580)
  • incorrect parsing of atom-list queries with high-numbered atoms (issue 2413431)
  • MolOps::mergeQueryHs() crashing with non-query molecules. (issue 2414779)
  • New Features:
  • SLN parser (request 2136703).
  • Mol2 parser : Corina atom types (request 2136705).
  • Building under mingw (request 2292153).
  • Null bonds in reaction products are replaced with the corresponding bond from the reactants (request 2308123).
  • Other:
  • a bunch of deprecation warnings from numpy have been cleaned up (issue 2318431)
  • updated documentation
  • some optimization work on the fingerprinter