RDKit Changelog

What's new in RDKit Q1 2015.03.1

Jun 5, 2015
  • Highlights:
  • A new algorithm for generating canonical atom orders. The new algorithm is faster and more robust than the old one.
  • C++-based molecule drawing code, allows consistent molecule renderings from C++, Java, and Python. This will become the default renderer in the next release.
  • General performance improvements and reduction of memory usage.
  • Torsion Fingerprints for comparing 3D conformations to each other
  • MCS code now available from the PostgreSQL cartridge
  • Bug Fixes:
  • fmcs: use the zero bond type instead of other (github issue #368 from AlexanderSavelyev)
  • bug fixed in TorsionFingerprints.GetTFDMatrix (github issue #376 from sriniker)
  • rdkit.Chem.MolDb.Loader_sa does not work with python3.4 (github issue #390)
  • ChemReactions: Bugfix/Memleak-fix in runReactants (github issue #394 from NadineSchneider)
  • TorsionConstraint bug fix (github issue #395 from ptosco)
  • Fixed LoadSDF to keep 3D info (github pull #401 from samoturk)
  • Incorrect expected absolute stereochemistries in a test (github issue #407)
  • GetSubstructMatches() consumes all available memory (github issue #409)
  • Bugfix in the chirality handling of chemical reactions (github pull #410 from NadineSchneider)
  • fixed two minor bugs in MMFF code (github issue #416 from ptosco)
  • Varied sanitise rejection with hydrogen representation (github issue #418)
  • Fixed two trivial bugs (github issue #419 from ptosco)
  • RDKit learns how to roundtrip MOLFile values. (github issue #420 from bp-kelley)
  • cairoCanvas.py python3 compatibility (github issue #426 from bach-hardie)
  • Chem.FragmentOnSomeBonds() should update implicit H count on aromatic heteroatoms when addDummies is False (github issue #429)
  • Chem.FragmentOnSomeBonds() crashes if the bond list is empty (github issue #430)
  • Increase limit for smallest ring size (github issue #431 from cowsandmilk)
  • Problems caused by heteroatoms with radicals in aromatic rings. (github issue #432)
  • Conversion from mol to InChI getting ring stereo wrong (github issue #437)
  • Metals in mol2 blocks handled incorrectly (github issue #438)
  • Fixed a few tests failing when the Windows git client is used (github pull #439 from ptosco)
  • Fixed tests failing on Windows when retrieving sources through the Windows git client (github pull #440 from ptosco)
  • Conformers not copied correctly in renumberAtoms (github issue #441)
  • Radicals are not correctly assigned when reading from SMILES (github issue #447)
  • moving RDBoost/Exceptions.h to RDGeneral (github pull #458 from rvianello)
  • Add code to accept blank SMILES input. (github issue #468 from janholstjensen)
  • Accept empty SMILES and SMARTS (github issue #470)
  • Fix MolFile Atom Line List Writer (github issue #471 from bp-kelley)
  • Moved 3D ipython renderer to dependency (github pull #472 from patrickfuller)
  • Windows build/test failure fixes (github issue #473 from ptosco)
  • install missing FMCS/Graph.h header file (github pull #478 from rvianello)
  • added const qualifiers to some methods of Atom/Bond iterator classes (github pull #479 from rvianello)
  • Bugfix in SmilesWrite and some additional tests for getMolFrags function (github issue #482 from NadineSchneider)
  • Removed a while(1) {} in BFGSOpt.h which might result in an infinite loop (github issue #484 from ptosco)
  • Gasteiger charge calculation fails with hexavalent sulfur #485 (github issue #485)
  • SmilesWriter not creating automatic name values for molecules read from CTABs (github issue #488)
  • Fix StringType access, remove unused imports (github issue #494 from bp-kelley)
  • New Features:
  • Isomeric fix in PandasTools (github issue #369 from samoturk)
  • added SaveXlsxFromFrame - first version (github issue #371 from samoturk)
  • New feature: Torsion fingerprints (github issue #372 from sriniker)
  • Add function to extract a molecule with a single (particular) conformer from a multiconf mol (github issue #384)
  • Added C++ and Python helpers to retrieve force-field parameters (github issue #387 from ptosco)
  • Support providing all options to SWIG-wrapped FMCS (github issue #397)
  • Add function to request if calling UpdatePropertyCache is necessary (github issue #399)
  • Add function to test if UpdatePropertyCache is necessary (github issue #400 from NadineSchneider)
  • Substructure highlighting in pandas dataframe (fixes #362) (github issue #403 from nhfechner)
  • Added SDF Export to PandasTools and adjusted SDF Import (github issue #404 from nhfechner)
  • support count-based avalon fingerprint (github issue #408)
  • New C++ drawing code (github issue #412 from greglandrum)
  • RDKit learns how to compute code coverage for tests (github issue #413 from bp-kelley)
  • Dictionary access is saniztized and optimized. (github issue #414 from bp-kelley)
  • expose MolOps::rankAtoms() and MolOps::rankAtomsInFragment() to python (github issue #421)
  • Dev/expose rank atoms to python (github issue #422 from bp-kelley)
  • rdkit learns how to wrap a proper RWMol in python (github issue #423 from bp-kelley)
  • Docs: document "magic" property values that are used throughout the code (github issue #425)
  • MolDraw2D: expose class to Python (github issue #433)
  • RDKit learns how to query properties on Atoms (github issue #442 from bp-kelley)
  • Issue445: provide helper functions for multithreaded evaluation of some expensive functions (github issue #448 from greglandrum)
  • RDKit learns how to release the GIL in python (github pull #449 from bp-kelley)
  • Dev/property queries (github pull #450 from bp-kelley)
  • Support a confId argument to the atom pair fingerprinting code (github issue #453)
  • Save the atom bookmarks so we can deconvolute reaction products. (github pull #454 from bp-kelley)
  • Cartridge: Support converting no structs to InChI (github issue #455)
  • RDKit learns how to expose ChemicalReaction copy constructor to python (github pull #456 from bp-kelley)
  • chirality flag was implemented for fmcs() function (github pull #466 from AlexanderSavelyev)
  • Support copy and deepcopy properly for at least Mol and RWMol (github issue #467)
  • Cartridge: add qmol_from_smiles() and qmol_from_ctab() (github issue #469)
  • restore java and python wrappers. New parameter (matchChiralTag) (github issue #477 from AlexanderSavelyev)
  • Added a Python wrapper for getShortestPath() (github issue #487 from ptosco)
  • Dev/merge query hs no unmapped atoms (github issue #490 from bp-kelley)
  • New Database Cartridge Features:
  • The MCS code is now available within the cartridge
  • The functions qmol_from_smiles() and qmol_from_ctab()
  • New Java Wrapper Features:
  • The new molecule rendering code is accessible from the SWIG wrappers.
  • Deprecated code (to be removed in next release):
  • C++: The functionality in $RDBASE/Code/GraphMol/MolDrawing has been superseded by the new drawing code in $RDBASE/Code/GraphMol and will be removed in the next release.
  • Python:
  • rdkit/Dbase/Pubmed
  • rdkit/Chem/fmcs (this has been superseded by the C++ implementation)
  • Cartridge: support for v8.x of PostgreSQL (v8.4 is no longer supported by the PostgreSQL project team as of July 2014)
  • Removed code:
  • the method Atom::setMass() has been removed. Please use setIsotope() instead.
  • the methods involving an atom's dativeFlag have been removed.

New in RDKit Q3 2014.09.2 (Dec 15, 2014)

  • Bug Fixes:
  • SMILES parser doing the wrong thing for odd dot-disconnected construct
  • O3A code generating incorrect results for multiconformer molecules
  • Suppliers probably not safe to read really large files
  • Torsion constraints not worrking properly for negative torsions
  • Core leak in reactions

New in RDKit Q3 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
  • 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 Q1 2014.03.1 (May 13, 2014)

  • Due to a bug fix in the rotatable bonds definition, the default rotatable bond calculation returns different values than before. This also affects MQN descriptor #18.
  • Bug Fixes:
  • Dict::DataType declaration causing problems with C++11 std::lib
  • Pre-condition Violation in AllChem.Compute2DCoords
  • GetSimilarityMapForFingerprint() fails when similarity is zero
  • PatternFingerprint failure for substructure matching
  • query atoms don't match ring queries
  • Incorrect SMILES generated after calling MMFF parameterization
  • Problems with Xe from SDF
  • Radicals not being used in atom--atom matches
  • Cannot skip sanitization while reading PDB
  • Distance Geometry embedding not thread safe
  • O3A::align() and O3A::trans() now return "true" RMSD value
  • RangeError when pre-incrementing or decrementing AtomIterators
  • ctabs do not contain wedged bonds for chiral s
  • ctabs do not contain "A" when appropriate
  • Problems round-tripping Al2Cl6 via CTAB
  • Don't merge Hs onto dummies
  • Wavy bonds to Hs in CTABs should affect the stereochemistry of attached double bonds
  • Rendering binary compounds as ClH, FH, BrH or IH rather than putting H first.
  • Fixed data race condition in Code/GraphMol/MolAlign/testMolAlign.cpp
  • Re-prepared SDF/SMILES files of the MMFF validation suite + a fix
  • Problems round-tripping P with non-default valence.
  • Added a stricter definition of rotatable bonds as a new function in the ...
  • Code/GraphMol/AddHs patch proposal
  • Fix: Changed getNumReactantTemplates to GetNumReactantTemplates.
  • aromatic B ("b") causes errors from SMARTS parser
  • Segmentation fault for MMFF optimization with dummy atoms
  • isMoleculeReactantOfReaction() and isMoleculeProductOfReaction() not useable from SWIG wrappers
  • cartridge: mol_from_ctab() ignores argument about keeping conformers
  • Reaction not correctly preserving chirality on unmapped atoms.
  • AllChem.AssignBondOrdersFromTemplate() fails with nitro groups
  • Fix molecule dataframe rendering in pandas 0.13.x
  • Dummy labels copied improperly into products
  • Two bugfixes in MMFF code
  • seg fault when trying to construct pharmacophore with no conformation
  • EmbedMolecule() should not create a conformer for molecules that have zero atoms
  • cartridge: dice similarity calculation does not use USE_BUILTIN_POPCOUNT flag
  • cartridge: similarity calculations wrong for maccs fps when USE_BUILTIN_POPCOUNT flag is set
  • New Features:
  • Expose gasteiger charge calculation to SWIG
  • Added additional functionality to PandasTools
  • Add MMFFHasAllMoleculeParams() to SWIG interface
  • O3A code should throw an exception if the parameterization is not complete.
  • Support zero order bonds
  • Add attachmentPoint argument to ReplaceSubstructs
  • Forcefield constraints (distances, angles, torsions, positions)
  • Add kekulize flag to SDWriter
  • Support operator= for RWMol
  • Get GetAromaticAtoms() and GetQueryAtoms() working from python
  • Support richer QueryAtom options in Python
  • Support writing V3000 mol blocks
  • Allow disabling the building of tests
  • Expand DbCLI to allow updating databases
  • Code refactoring and enhancement to allow for O3A alignment according to atom-based Crippen logP contribs
  • call MolOps::assignStereochemistry() with flagPossibleStereoCenters true from within the molecule parsers.
  • Support passing of file-like PandasTools.LoadSDF
  • Reaction SMARTS parser should support agents
  • 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()
  • Adding option useCounts for Morgan fingerprints
  • support SimpleEnum functionality for adding recursive queries to reactions
  • Additional functions for bit vectors
  • Support of RDK fingerprints added to SimilarityMaps
  • add get3DDistance
  • support 3D distances in the atom pair fingerprints
  • added MolOps::get3DDistanceMat() (Chem.Get3DDistanceMatrix() from python)
  • New Database Cartridge Features:
  • Support configuration of fingerprint sizes in cartridge.
  • Add mol_to_ctab(mol, bool default true) to Postgres cartridge.
  • Adds sum formula function to PG cartridge.
  • 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
  • ConformerParser functionality
  • Other:
  • The Open3DAlign code is considerably faster.
  • The SMILES parsing code is faster.
  • Fix Bison 3.x incompabtility
  • Add Travis support
  • port of rdkit.ML bindings from Python/C API to boost::python
  • The code now builds more easily using the Anaconda python distribution's conda package manager

New in RDKit Q2 2013.09.2 (Jan 28, 2014)

  • Bug Fixes:
  • cannot pickle unsanitized molecules
  • Problems reading PDB files when locale is DE
  • calling RWMol::clear() leaves property dict empty
  • zero atom molecule generates exception in MolToSmiles when rootedAtAtom is provided
  • bond orders not being set when PDB files are read
  • GenMACCSKeys() raises an exception with an empty molecule
  • left-justified SDF bond topology of "0" raises an unexpected exception

New in RDKit Q2 2013.09.1 (Jan 28, 2014)

  • Due to a bug fix in the parameter set, the MolLogP and MolMR descriptor calculators now return different values for molecules with pyrrole (or pyrrole-like) Ns.
  • 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. (github issues 129 and 51)
  • Some RDKit methods require python lists and don't allow passing numpy arrays or pandas series directly (github issue 119)
  • mol2 parser not setting E/Z flags on double bonds (github issue 114)
  • Incorrect angle terms in UFF (github issue 105)
  • Problems with stereochemistry flags and PathToSubmol() (github issue 103)
  • Bad Crippen atom type for pyrrole H (github issue 92)
  • PandasTools tests fail with Pandas v0.12 (github issue 91)
  • Isotope information not affecting chirality (github issue 90)
  • properties are not read from SDF files with V3000 mol blocks. (github issue 88)
  • assignStereochemistry does not remove bond wedging that shouldn't be there. (github issue 87)
  • Drawing code modifies wedge bonds in reactions (github issue 86)
  • Stereochemistry not perceived when parsing CTABs unless sanitization i done. (github issue 82)
  • 2D rendering issue for epoxide ( CAS 70951-83-6) (github issue 78)
  • PandasTools doctests should be failing, but are not (github issue 75)
  • Better handling of radicals to/from mol files (github issue 73)
  • Benzothiazolium structure can be parsed from ctab, but the SMILES generated cannot be processed. (github issue 72)
  • Chem.MolFromInch hangs on CID 23691477 and CID 23691480 (github issue 68)
  • Chem.MolFromInchi on CHEMBL104337 leads to segmentation fault (github issue 67)
  • "Could not embed molecule." (The Anthony Conundrum) (github issue 55)
  • New Features:
  • Add fragmentOnBonds() to python wrapper (github issue 142)
  • Allow renumbering atoms in a molecule. (github issue 140)
  • 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. (github issue 135)
  • Bond lengths, angles, and torsions can now be queries and adjusted. (github issue 132)
  • Implementation of similarity maps (github issue 94)
  • Python implementation of the Fraggle similarity algorithm.
  • SparseIntVects now support -=, +=, /=, and *= with ints from C++ and Python
  • support \\ in SMILES (github issue 136)
  • Support a similarity threshold in DbCLI (github issue 134)
  • 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 Database Cartridge Features:
  • New Java Wrapper Features:
  • MMFF support
  • PDB reading and writing
  • Open3DAlign support
  • Deprecated modules (to be removed in next release):
  • Removed modules:
  • Contrib updates:
  • The MMPA implementation has been updated
  • An implementation of Ertl and Schuffenhauer's Synthetic
  • Accessibility score is available in Contrib/SA_Score
  • Command line scripts for the Fraggle similarity algorithm
  • Other:
  • Some of the changes to UFF deviate from the published force
  • field.
  • Reaction drawing has been improved. Support for reaction drawing
  • has been added to the IPython notebook.

New in RDKit Q2 2013.06.1 (Jul 29, 2013)

  • Bug Fixes:
  • The docs for Descriptors.MolWt are now correct
  • Molecules coming from InChi now have the correct molecular weight.
  • RemoveAtoms() no longer leads to problems in canonical SMILES generation when chiral ring atoms are present.
  • Atom invariants higher than the number of atoms in the molecule can now be provided to the atom pairs and topological torsions fingerprinters.
  • A typo with the handling of log levels was fixed in the python wrapper code for InChI generation.
  • Stereochemistry no longer affects canonical SMILES generation if non-stereo SMILES is being generated.
  • The ExactMolWt of [H+] is no longer zero.
  • The MPL canvas now has an addCanvasDashedWedge() method.
  • RWMol::insertMol() now copies atom coordinates (if present).
  • The "h" primitive in SMARTS strings now uses the method getTotalNumHs(false) instead of getImplicitValence().
  • bzip2 files now work better with the SDWriter class.
  • a crashing bug in InChI generation was fixed.
  • New Features:
  • Sanitization can now be disabled when calling GetMolFrags() from Python
  • Bond.GetBondTypeAsDouble() has been added to the python wrapper.
  • 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.
  • 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 Database Cartridge Features:
  • New Java Wrapper Features
  • {Get,Set}Prop() methods are now available for both Atoms and Bonds. (GitHub #32) Deprecated modules (to be removed in next release)
  • Removed modules:
  • rdkit.utils.pydoc_local
  • Other:
  • the handling of flex/bison output files as dependencies has been improved (GitHub #33)
  • the molecule drawing code should now also work with pillow (a fork of PIL) - the PANDAS integration has been improved.

New in RDKit Q1 2013.03.2 (May 1, 2013)

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

New in RDKit Q1 2013.03.1 (Apr 27, 2013)

  • The algorithm for hashing subgraphs used in the RDKit fingerprinter has changed. The new default behavior will return different fingerprints than previous RDKit versions. This affects usage from c++, python, and within the postgresql cartridge.
  • Bug Fixes:
  • removeBond now updates bond indices
  • dummy labels are no longer lost when atoms are copied
  • more specific BRICS queries now match before less specific ones
  • molAtomMapNumber can now be set from Python
  • the legend centering for molecular image grids has been improved
  • make install now includes all headers
  • InChIs generated after clearing computed properties are now correct
  • Reacting atoms that don't change connectivity no longer lose stereochemistry
  • Aromatic Si is now accepted
  • removeAtom (and deleteSubstructs) now correctly updates stereoAtoms
  • [cartridge] pg_dump no longer fails when molecules cannot be converted to SMILES
  • a canonicalization bug in MolFragmentToSmiles was fixed
  • atom labels at the edge of the drawing are no longer cut off
  • a bug in query-atom -- query-atom matching was fixed
  • calling ChemicalReaction.RunReactants from Python with None molecules no longer leads to a seg fault.
  • 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.
  • Quantize.FindVarMultQuantBounds() no longer generates a seg fault when called with bad arguments.
  • The length of SDMolSuppliers constructed from empty files is no longer reported as 1.
  • Partial charge calculations now work for B, Si, Be, Mg, and Al.
  • Two logging problems were fixed
  • Molecules that have had kappa descriptors generated can now be written to SD files
  • 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.
  • A new module integrating the RDKit with Pandas (rdkit.Chem.PandasTools) has been added.
  • 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
  • MACCS fingerprints are available
  • BRICS decomposition is available. Deprecated modules (to be removed in next release):
  • Removed modules:
  • Other:
  • RDKit fingerprint generation is now faster. The hashing algorithm used in the RDKit fingerprinter has changed.
  • Force-field calculations are substantially faster (sf.net issue 290) - The core of the BRICS implementation has been moved into C++.
  • The MACCS fingerprint implementation has been moved into C++.
  • New documentation has been added: Cartridge.rst, Overview.rst, Install.rst

New in RDKit Q4 2012.12.1 (Jan 22, 2013)

  • Bug Fixes:
  • Using parentheses for zero-level grouping now works in reaction SMARTS. This allows intramolecular reactions to be expressed.
  • SMILES generated for molecules with ring stereochemistry (e.g. N[C@H]1CC[C@H](CC1)C(O)=O) are now canonical.
  • SKP lines in a CTAB property block are now properly handled.
  • The molecular drawing code now shows dotted lines for Any bonds.
  • ROMol::debugMol() (ROMol.DebugMol() in Python) now reports isotope information.
  • The molecular drawing code now correctly highlights wedged bonds.
  • RWMol::addAtom() now adds atoms to conformers.
  • TDT files with atomic coordinates now have those coordinates in the correct order.
  • A ring-finding error/crash has been fixed.
  • Dummy atoms now have a default valence of 0 and no maximim valence.
  • The Python code no longer throws string exceptions.
  • Invalid/unrecognized atom symbols in CTABs are no longer accepted.
  • Chem.RDKFingerprint now accepts atom invariants with values larger than the number of atoms.
  • The code should now all work when the locale (LANG) is set to values other than "C" or one of the English locales.
  • Two-coordinate Hs are no longer removed by MolOps::removeHs().
  • R groups read from CTABs are now marked using setIsotope() instead of setMass().
  • Hs present in the molecule graph no longer incorrectly impact substructure matches.
  • Murcko decomposition of molecules with chiral ring atoms now works.
  • Methane now shows up in molecular drawings.
  • '&' in SLN properties is now correctly handled.
  • Molecules with string-valued molAtomMapNumber atomic properties can now be serialized.
  • SMARTS strings containing a dot in a recursive piece are now properly parsed.
  • The SMILES and SLN parsers no longer leak memory when sanitization of the result molecule fails.
  • The cairo canvas drawing code now works with PIL v1.1.6 as well as more recent versions.
  • New Features:
  • RDKit ExplicitBitVects and DiscreteValueVects can now be directly converted into numpy arrays.
  • Rogot-Goldberg similarity has been added.
  • C++: BitVects and SparseIntVects now support a size() method.
  • C++: DiscreteValueVects now support operator[].
  • An initial version of a SWIG wrapper for C# has been added.
  • Support for easily adding recursive queries to molecules and reactions has been added. More documentation is required for this feature.
  • To allow more control over the reaction, it is possible to flag reactant atoms as being protected by setting the "_protected" property on those atoms. Flagged atoms will not be altered in the reaction.
  • Atoms and Bonds now support a ClearProp() method from python.
  • The new Python module rdkit.ML.Scoring.Scoring includes a number of standard tools for evaluating virtual screening experiments: ROC curve generation, AUC, RIE, BEDROC, and Enrichment.
  • The function RDKit::Descriptors::getCrippenAtomContribs() (rdkit.Chem.rdMolDescriptors._CalcCrippenContribs() from Python) can now optionally return atom-type information as ints or text.
  • New Database Cartridge Features:
  • The Chi and Kappa descriptors are now available
  • New Java Wrapper Features:
  • The Chi and Kappa descriptors are now available Deprecated modules (to be removed in next release):
  • Removed modules:
  • The old SWIG wrapper code in $RDBASE/Code/Demos/SWIG has been removed. The SWIG wrappers are now in $RDBASE/Code/JavaWrappers
  • Other:
  • The C++ code for drawing molecules previously found in $RDBASE/Code/Demos/RDKit/Draw has been moved to $RDBASE/Code/GraphMol/MolDrawing
  • Calculation of the Chi and Kappa descriptors has been moved into C++.
  • To make builds easier, the thread-safety of the recursive-smarts matcher has been made optional. The build option is RDK_BUILD_THREADSAFE_SSS.
  • There are two new entries in the Contrib directory:
  • Contrib/PBF : An implementation of the Plane of Best Fit
  • Contrib/mmpa : An implementation of GSK's matched molecular pairs algorithm contributed
  • A new "Cookbook" has been added to the documentation to provide a collection of recipes for how to do useful tasks.

New in RDKit Q3 2012.09.1 (Oct 22, 2012)

  • Changes:
  • Some of the bug fixes affect the generation of SMILES. Canonical SMILES generated with this version of the RDKit will be different from previous versions.
  • The fix to Issue 252 will lead to changes in calculated logP and MR values for some compounds.
  • The fix to Issue 254 (see below) will lead to changes in some descriptors and geometries for sulfur-containing compounds.
  • The fix to Issue 256 (see below) has changed the name of the optional argument to mol.GetNumAtoms from onlyHeavy to onlyExplicit. For compatibility reasons, Python code that uses explicitly uses onlyHeavy will still work, but it will generate warnings. This compatibility will be removed in a future release.
  • 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). 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 Database Cartridge Features:
  • support for molecule pickle conversion via the functions mol_to_pkl, mol_from_pkl, and is_valid_mol_pkl.
  • support for bit vector binary text conversion via the functions bfp_to_binary_text, bfp_from_binary_text
  • New Java Wrapper Features:
  • Deprecated modules (to be removed in next release):
  • Removed modules:
  • Other:
  • During this release cycle, the sourceforge project was updated to their new hosting system. This explains the change in bug/issue ids.
  • the SMILES parser is now substantially faster.
  • The molecular drawings generated by Code/Demo/RDKit/Draw/MolDrawing.h have been improved.
  • There is now demo code available for using the C++ drawing code within Qt applications.
  • The directory $RDBASE/Regress now contains sample data and scripts for benchmarking the database cartridge.
  • Fused-ring aromaticity is now only considered in rings of up to size 24.
  • It is no longer necessary to have flex and bison installed in order to build the RDKit.

New in RDKit Q1 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 unusable 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.
  • 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 Q1 2012.03.1 (Apr 13, 2012)

  • Bug Fixes:
  • the older form of group evaluations in Mol blocks is now correctly parsed. some problems with handling aromatic boron were fixed.
  • the SD writer no longer adds an extra $$$$ when molecule parsing fails molecules in SD files that don't contain atoms are now parsed without warnings and their properties are read in.
  • it's now possible to embed molecules despite failures in the triangle bounds checking
  • Isotope information in Mol blocks is now written to M ISO lines instead of going in the atom block.
  • Better 2D coordinates are now generated for neighbors of atoms with unspecified hybridization.
  • Dummy atoms and query atoms are now assigned UNSPECIFIED hybridization instead of SP.
  • Error reporting for SMARTS involving recursion has been improved.
  • Some problems of queries and generating SMARTS for queries were resolved.
  • It's now possible to do database queries with SMARTS that use the index.
  • 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
  • A bug with ring-finding in some complex fused ring systems was fixed.
  • 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 Q4 2011.12.1 (Jan 16, 2012)

  • IMPORTANT:
  • The functions for creating bit vector fingerprints using atom pairs and topological torsions have been changed. The new default behavior will return different fingerprints than previous RDKit versions. This affects usage from c++, python, and within the postgresql cartridge. See the "Other" section below for more details.
  • Due to a bug fix in the parameter set, the MolLogP and MolMR descriptor calculators now return different values for some molecules. See the "Bug Fixes" section below for more details.
  • To make storage more efficient, the size of the fingerprint used to store morgan fingerprints in the database cartridge has been changed from 1024 bits to 512 bits. If you update the cartridge version all morgan and featmorgan fingerprints and indices will need to be re-generated.
  • 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.
  • 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
  • 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 Q3 2011.09.1 (Oct 8, 2011)

  • Chirality for phosphates and sulfates is not longer automatically removed.
  • A bug with the reading of query information from mol files was fixed.
  • Sterochemistry is now cleaned up after processing mol2 files.
  • mergeQueryHs now correctly handles atoms with multiple Hs
  • mergeQueryHs now correctly handles atoms without initial query information
  • the calcLipinskiHBD() (equivalent to Lipinski.NHOHCount) descriptor now correctly handles Ns or Os with multiple Hs.
  • Morgan fingerprints generated using the fromAtoms argument now have all bits from those atoms set.
  • A problem with the way MolSuppliers handle the EOF condition when built with the most recent versions of g++ was fixed.
  • Translation of RDKit stereochemistry information into InChI stereochemistry information is improved.
  • New Features:
  • New Database Cartridge
  • Features:
  • molecules can now be built from mol blocks using the function mol_from_ctab(). The corresponding is_valid_ctab() function was also added. the radius argument is now optional for the functions morganbv_fp, morgan_fp, featmorganbv_fp, and featmorgan_fp. The default radius for all four functions is 2. Deprecated modules (to be removed in next release):
  • Other:
  • The documentation in $RDBASE/Docs/Book has been migrated to use Sphinx instead of OpenOffice.
  • The optional InChI support can now be built using a system installation of the InChI library.