1# Release_2021.03.5
2(Changes relative to Release_2021.03.4)
3
4## Acknowledgements
5Jason Biggs, Brian Kelley, Lewis J. Martin, Dan Nealschneider, Ricardo
6Rodriguez-Schmidt, David Slochower, Paolo Tosco, Maciej Wójcikowski
7
8## Bug Fixes:
9  - cannot pass drawOptions to MolsToGridImage when using notebook
10 (github #3101 from slochower)
11  - call to AvalonTools::set2DCoords results in an assert violation
12 (github #4330 from jasondbiggs)
13  - MolBlock writer gives non-stereo double bonds "unspecified" parity
14 (github #4345 from d-b-w)
15  - Specified trans stereo being ignored during conformation generation in macrocycles
16 (github #4346 from greglandrum)
17  - Two MinGW build fixes and one MSVC build fix
18 (github #4347 from ptosco)
19  - Fixes RDK_BUILD_THREADSAFE_SSS=OFF build
20 (github #4349 from ptosco)
21  - Three more Windows build fixes
22 (github #4356 from ptosco)
23  - Specified grid spacing for ShapeTanimotoDistance is ignored.
24 (github #4364 from greglandrum)
25  - Need implicit H cleanup after rdMolEnumerator.Enumerate()
26 (github #4381 from greglandrum)
27  - rdMolEnumerator.Enumerate fails on variable attachment points with queries
28 (github #4382 from greglandrum)
29  - RDKit reaction produces wrong double bond stereochemistry
30 (github #4410 from mwojcikowski)
31  - v2000 SGroups do not generate an "index" property
32 (github #4434 from ricrogz)
33
34
35# Release_2021.03.4
36(Changes relative to Release_2021.03.3)
37
38## Acknowledgements
39Brian Kelley, Rasmus Lundsgaard, Dan Nealschneider, Ricardo Rodriguez-Schmidt,
40Matt Swain, Paolo Tosco, Kazuya Ujihara, Alain Vaucher, 'jungb-basf'
41
42## Bug Fixes:
43  - EnumerateStereoisomers fail with STEREOANY bonds from molblock
44 (github #3759 from TermeHansen)
45  - MolFragmentToSmiles with kekuleSmiles=True raises AtomKekulizeException
46 (github #3998 from kazuyaujihara)
47  - bug in MDLParser.cpp when reading a rxn file in v3000 format that contains agents
48 (github #4183 from jungb-basf)
49  - allow more recoverable V3000 parsing errors when strictParsing=false
50 (github #4210 from greglandrum)
51  - Fix a couple of problems with fingerprint count simulation
52 (github #4228 from greglandrum)
53  - Chem.MolFromSmiles using SmilesParserParams throws exceptions
54 (github #4232 from greglandrum)
55  - double bonds now have EITHER stereo if no coordinates are present
56 (github #4239 from greglandrum)
57  - Fix CMakeLists for FileParsers
58 (github #4240 from kazuyaujihara)
59  - Multiple ATTCHPT entries for one atom handled incorrectly
60 (github #4256 from greglandrum)
61  - Exception thrown by reionizer when dealing with Mg+2
62 (github #4260 from greglandrum)
63  - Fallback ring finding failing on molecules with multiple fragments
64 (github #4266 from avaucher)
65  - FindPotentialStereo() doesn't find *marked* ring stereo when flagPossible=False
66 (github #4279 from greglandrum)
67  - The normalization pattern for pyridine N-oxide is not specific enough
68 (github #4281 from ptosco)
69  - Unreasonable calculation of implicit valence for atoms with query bonds
70 (github #4311 from greglandrum)
71
72
73# Release_2021.03.3
74(Changes relative to Release_2021.03.2)
75
76## Acknowledgements
77Jason Biggs, James Davidson, Harrison Green, Brian Kelley, Stephanie Labouille,
78Dan Nealschneider, Maximilian Peters, Ricardo Rodriguez-Schmidt, Riccardo
79Sabatini, Peter St. John, Paolo Tosco, Ivan Tubert-Brohman, Rachel Walker,
80Maciej Wójcikowski,
81
82## Bug Fixes:
83  - Double bond stereo gets flipped by SMILES reader/writer
84 (github #3967 from mwojcikowski)
85  - StereoGroups not preserved by RenumberAtoms()
86 (github #4071 from greglandrum)
87  - HCount field in v2000 Mol blocks ignored
88 (github #4099 from riccardosabatini)
89  - Reactions don't propagate bond properties
90 (github #4114 from d-b-w)
91  - SEGV in ROMol::getAtomDegree if atom is not in graph
92 (github #4127 from hgarrereyn)
93  - SEGV from unsigned integer overflow in Conformer::setAtomPos
94 (github #4128 from hgarrereyn)
95  - HCOUNT from v3000 CTABS incorrectly interpreted
96 (github #4131 from greglandrum)
97  - Empty query produces empty match, but at the same time is considered non-matching
98 (github #4138 from i-tub)
99  - fixed AddBond documentation
100 (github #4142 from Ashafix)
101  - Possible bug with `EnumerateStereoisomers`
102 (github #4144 from stephanielabouille)
103  - Odd drawing behavior with radicals and MolsToGridImage
104 (github #4156 from pstjohn)
105  - pre-condition violation when sanitizing a de-pickled reaction
106 (github #4162 from jasondbiggs)
107  - Many of the PMI descriptors are not being recalculated for different conformers
108 (github #4167 from greglandrum)
109  - Fix python to C++ pointer conversion issue in moldrawFromQPainter
110 (github #4182 from rachelnwalker)
111  - Potentially chiral bridgehead atoms not being identified.
112 (github #4192 from greglandrum)
113  - allow more recoverable V3000 parsing errors when strictParsing=false
114 (github #4210 from greglandrum)
115  - RGD: Fix memory leak with deleting array
116 (github #4211 from bp-kelley)
117  - UnfoldedRDKFingerprintCountBased returns a different fingerprint length for every molecule
118 (github #4212 from greglandrum)
119  - rdMolHash.MolHash fails on non-standard valences
120 (github #4222 from ricrogz)
121
122
123# Release_2021.03.2
124(Changes relative to Release_2021.03.1)
125
126## Acknowledgements
127Harrison Green, Brian Kelley, Alan Kerstjens, Dan Nealschneider, Alessio Ragno,
128Paolo Tosco, Kazuya Ujihara, Riccardo Vianello
129
130## Bug Fixes:
131  - Draw.MolToImage() cannot highlight with highlightMap (v > '2019.09.3' )
132 (github #3616 from spideralessio)
133  - SparseIntVect copy constructor and assignment operators not clearing existing data
134 (github #3994 from AlanKerstjens)
135  - update clang version for linux CI fuzzer builds
136 (github #4012 from greglandrum)
137  - Update coordgen to 2.0.3
138 (github #4017 from d-b-w)
139  - Get SWIG wrappers working with C# again
140 (github #4020 from kazuyaujihara)
141  - replaceSidechains creates aromatic dummy atoms
142 (github #4022 from ptosco)
143  - A set of fixes for problems caused by bad input
144 (github #4033 from greglandrum)
145  - Cleanup some problems found during an ASAN build
146 (github #4054 from greglandrum)
147  - Avoid that lone atoms which are part of a ring in one of the molecules become part of the MCS
148 (github #4065 from ptosco)
149  - call to pyAvalonTools.Generate2DCoords results in an assert violation
150 (github #4075 from rvianello)
151  - Update boost download location in Dockerfile
152 (github #4094 from greglandrum)
153  - RemoveStereochemistry should also remove stereogroups
154 (github #4115 from greglandrum)
155  - Avoid that MolStandardizer segfaults on empty mols
156 (github #4119 from ptosco)
157  - SEGV in RWMol::commitBatchEdit
158 (github #4122 from hgarrereyn)
159
160
161# Release_2021.03.1
162(Changes relative to Release_2020.09.1)
163
164## Backwards incompatible changes
165- The distance-geometry based conformer generation now by defaults generates
166  trans(oid) conformations for amides, esters, and related structures. This can
167  be toggled off with the `forceTransAmides` flag in EmbedParameters. Note that
168  this change does not impact conformers created using one of the ET versions.
169  (#3794)
170- The conformer generator now uses symmetry by default when doing RMS pruning.
171  This can be disabled using the `useSymmetryForPruning` flag in
172  EmbedParameters. (#3813)
173- Double bonds with unspecified stereochemistry in the products of chemical
174  reactions now have their stereo set to STEREONONE instead of STEREOANY (#3078)
175- The MolToSVG() function has been moved from rdkit.Chem to rdkit.Chem.Draw
176  (#3696)
177- There have been numerous changes to the RGroup Decomposition code which change
178  the results. (#3767)
179- In RGroup Decomposition, when onlyMatchAtRGroups is set to false, each molecule
180  is now decomposed based on the first matching scaffold which adds/uses the
181  least number of non-user-provided R labels, rather than simply the first
182  matching scaffold.
183  Among other things, this allows the code to provide the same results for both
184  onlyMatchAtRGroups=true and onlyMatchAtRGroups=false when suitable scaffolds
185  are provided without requiring the user to get overly concerned about the
186  input ordering of the scaffolds. (#3969)
187- There have been numerous changes to `GenerateDepictionMatching2DStructure()` (#3811)
188- Setting the kekuleSmiles argument (doKekule in C++) to MolToSmiles will now
189  cause the molecule to be kekulized before SMILES generation. Note that this
190  can lead to an exception being thrown. Previously this argument would only
191  write kekulized SMILES if the molecule had already been kekulized (#2788)
192- Using the kekulize argument in the MHFP code will now cause the molecule to be
193  kekulized before the fingerprint is generated. Note that becaues kekulization
194  is not canonical, using this argument currently causes the results to depend
195  on the input atom numbering. Note that this can lead to an exception being
196  thrown. (#3942)
197- Gradients for angle and torsional restraints in both UFF and MMFF were computed
198  incorrectly, which could give rise to potential instability during minimization.
199  As part of fixing this problem, force constants have been switched to using
200  kcal/degree^2 units instead of kcal/rad^2 units, consistently with the fact that
201  angle and dihedral restraints are specified in degrees. (#3975)
202
203## Highlights
204- MolDraw2D now does a much better job of handling query features like common
205  query bond types, atom lists, variable attachment points, and link nodes. It
206  also supports adding annotations at the molecule level, displaying brackets
207  for Sgroups, rendering the ABS flag for stereochemistry, and a new "comic"
208  mode.
209- There are two new Contrib packages: NIBRStructureFilters and CalcLigRMSD
210- There have been a number of improvements made to the R-Group Decomposition
211  code which make it both more flexible and considerably faster
212
213## Acknowledgements
214Michael Banck, Christopher Von Bargen, Jason Biggs, Patrick Buder, Ivan
215Chernyshov, Andrew Dalke, Xiaorui Dong, Carmen Esposito, Nicholas Firth, Enrico
216Gandini, James Gayvert, Gareth Jones, Eisuke Kawashima, Steven Kearnes, Brian
217Kelley, Mark Mackey, Niels Kristian Kjærgård Madsen, Luca Naef, Dan
218Nealschneider, Jin Pan, Daniel Paoliello, António JM Ribeiro, Sereina Riniker,
219Braxton Robbason, Jaime Rodríguez-Guerra, Ricardo Rodriguez-Schmidt, Steve
220Roughley, Vincent F. Scalfani, Nadine Schneider, Philippe Schwaller, Dan Skatov,
221Pascal Soveaux, Paolo Tosco, Kazuya Ujihara, Riccardo Vianello, Shuzhe Wang,
222Piotr Wawrzyniak, Maciej Wójcikowski, Zhijiang Yang, Yutong Zhao
223'driesvr', 'GintasKam', 'SPKorhonen', 'pkubaj', 'AnPallo', 'darintay',
224'slchan3', 'Robins', 'sirbiscuit', 'amateurcat', 'noncomputable', 'yurivict',
225'magattaca'
226
227## Contrib updates:
228  - Added NIBRStructureFilters: a set of substructure filters for hit-list triaging together with python code for applying them. The filters are described in the publication https://dx.doi.org/10.1021/acs.jmedchem.0c01332
229   (github pull #3516 from NadineSchneider)
230  - Added CalcLigRMSD: flexible python code for calculating RMSD between pre-aligned molecules
231   (github pull #3812 from cespos)
232
233## Bug Fixes:
234  - Casting int to uint in MorganFingerprintHelper leads to unexpected behaviour.
235 (github issue #1761 from SiPa13)
236  - MolChemicalFeature.GetPos() returns value for molecule's default conformer
237 (github issue #2530 from greglandrum)
238  - Unable to catch RDKit exceptions in linked library when compiling with fvisibility=hidden
239 (github issue #2753 from cdvonbargen)
240  - Reaction rendering always shows molecules in aromatic form
241 (github issue #2976 from greglandrum)
242  - Reactions setting unspecified double-bond stereo to STEREOANY
243 (github issue #3078 from ricrogz)
244  - PDB output flavor&2 documentation change
245 (github issue #3089 from adalke)
246  - WedgeMolBonds() should prefer degree-1 atoms
247 (github issue #3216 from greglandrum)
248  - Error in ChemAxon SMILES "parsing"
249 (github issue #3320 from IvanChernyshov)
250  - Incorrect number of radical electrons calculated for metals
251 (github issue #3330 from greglandrum)
252  - Problem with lifetime linkage of mols and conformers
253 (github issue #3492 from amateurcat)
254  - Traceback when pickling ROMol after BCUT descriptors are calculated
255 (github issue #3511 from d-b-w)
256  - Fix AUTOCORR2D descriptors
257 (github pull #3512 from ricrogz)
258  - SDMolSupplier requires several attempts to load a SDF file in Python 3.6/3.7
259 (github issue #3517 from jaimergp)
260  - Remove accidentally included boost header
261 (github pull #3518 from ricrogz)
262  - legend_height_ should be preserved after drawing the molecule
263 (github pull #3520 from greglandrum)
264  - remove the include directive for unused <access/tuptoaster.h> header
265 (github pull #3525 from rvianello)
266  - C++ build fails when configured with RDKIT_USE_BOOST_SERIALIZATION=OFF
267 (github issue #3529 from rvianello)
268  - Newest RDKIT version allowing chemically invalid smiles
269 (github issue #3531 from GintasKam)
270  - Behaviour of generate_aligned_coords for erroneous inputs
271 (github issue #3539 from dskatov)
272  - Drawing artifacts in draw_to_canvas_with_offset
273 (github issue #3540 from dskatov)
274  - Error adding PNG metadata when kekulize=False
275 (github issue #3543 from gayverjr)
276  - Add missing methods to remove SubstanceGroup attributes
277 (github pull #3547 from greglandrum)
278  - Error writing SDF data containing UTF-8 to a StringIO object
279 (github issue #3553 from greglandrum)
280  - correct handling of amide distances for macrocycles
281 (github pull #3559 from hjuinj)
282  - rdMolDraw2D, problems during generation of pictures from SMARTS, differences between Cairo and SVG
283 (github issue #3572 from wopozka)
284  - Fix example of SmilesToMol
285 (github pull #3575 from kazuyaujihara)
286  - atom/bond notes handle capital letters incorrectly
287 (github issue #3577 from greglandrum)
288  - Get MolDraw2DQt working again
289 (github pull #3592 from greglandrum)
290  - Scientific notation in SDF V3000 files
291 (github issue #3597 from mark-cresset)
292  - Fix: add missing python wrappers for MolDraw2DQt
293 (github pull #3613 from greglandrum)
294  - V3K mol block parser not saving the chiral flag
295 (github issue #3620 from greglandrum)
296  - Inconsistent metal disconnectors
297 (github issue #3625 from pschwllr)
298  - Ring stereochemistry not properly removed from N atoms
299 (github issue #3631 from greglandrum)
300  - moldraw2djs should not close all polygonal paths
301 (github pull #3634 from greglandrum)
302  - Unidentifiable C++ Exception with FMCS
303 (github issue #3635 from proteneer)
304  - Bump catch2 version to allow builds on Apple M1
305 (github pull #3641 from naefl)
306  - Segmentation fault when parsing InChI
307 (github issue #3645 from AnPallo)
308  - RDK_BUILD_THREADSAFE_SSS does not work as expected
309 (github issue #3646 from pascal-soveaux)
310  - Disabling MaeParser and CoordGen Support Breaks the Build
311 (github issue #3648 from proteneer)
312  - BondStereo info lost in FragmentOnBonds()
313 (github pull #3649 from bp-kelley)
314  - memory leak when sanitization fails in InChIToMol()
315 (github issue #3655 from greglandrum)
316  - Qt GUI libraries being linked into rdmolops.so when Qt support is enabled
317 (github issue #3658 from ricrogz)
318  - Documentation of Chem.rdmolops.GetMolFrags's frag argument is wrong
319 (github issue #3670 from noncomputable)
320  - fmcs() + bogus input causes engine crash
321 (github issue #3687 from robins)
322  - qmol_from_ctab() with NULL crashes engine
323 (github issue #3688 from robins)
324  - qmol_from_smiles() + bogus input causes engine crash
325 (github issue #3689 from robins)
326  - Check PIL support for tostring and fromstring
327 (github pull #3690 from sirbiscuit)
328  - Move MolToSVG() to rdkit.Chem.Draw (Addresses #3694)
329 (github pull #3696 from ricrogz)
330  - Pandas AttributeError when rendering Molecule in DataFrame
331 (github issue #3701 from enricogandini)
332  - Memory leak in EnumerateLibrary
333 (github issue #3702 from jose-mr)
334  - Fix to add ZLIB_INCLUDE_DIRS for Windows build
335 (github pull #3714 from kazuyaujihara)
336  - Docs/Book: Unexpected unicode character makes pdflatex build fail
337 (github issue #3738 from mbanck)
338  - Test suite failures if eigen3 is not available
339 (github issue #3740 from mbanck)
340  - Regression in depiction of double bonds in aromatic rings
341 (github issue #3744 from ptosco)
342  - RGD with RGroupMatching.GA leaks memory and takes too long
343 (github issue #3746 from ptosco)
344  - Fix comment to match the code in RemoveHsParameters
345 (github pull #3747 from jasondbiggs)
346  - Inconsistent canonical tautomer on repeated application
347 (github issue #3755 from darintay)
348  - bonds no longer highlighted in substruct matches in jupyter
349 (github issue #3762 from greglandrum)
350  - SubstanceGroup output doesn't correctly quote " symbols
351 (github issue #3768 from greglandrum)
352  - MolToSmarts inverts direction of dative bond
353 (github issue #3774 from IvanChernyshov)
354  - Regression in dihedral constraints
355 (github issue #3781 from ptosco)
356  - Fix pillow error in IPythonConsole.py
357 (github pull #3783 from skearnes)
358  - lock swig version in MacOS CI builds
359 (github pull #3789 from greglandrum)
360  - DrawMorganBit errors when useSVG is False
361 (github issue #3796 from ncfirth)
362  - SubstructLibrary Cached Smiles Holders have bad behavior with bad smiles
363 (github issue #3797 from bp-kelley)
364  - MolFromSmiles('[He]') produces a diradical helium atom
365 (github issue #3805 from jasondbiggs)
366  - NaNs from AUTOCORR2D descriptor
367 (github issue #3806 from greglandrum)
368  - MaeMolSupplier throws an invariant exception on parsing an "undefined" chirality label
369 (github issue #3815 from ricrogz)
370  - Sanitize molecules when SMILES needs to be produced in PandasTools
371 (github pull #3818 from mwojcikowski)
372  - Tautomer Query copy constructor is shallow not deep causing segfaults in destructor
373 (github issue #3821 from bp-kelley)
374  - OptimizeMolecule and OptimizeMoleculeConfs Argument Bug
375 (github issue #3824 from xiaoruiDong)
376  - rdMolEnumerator.Enumerate() fragile w.r.t. atom ordering
377 (github issue #3844 from greglandrum)
378  - MinimalLib: Bonds are parallel in SVG but not on an HTML5 Canvas
379 (github issue #3852 from dskatov)
380  - AddHs creates H atom with nan coordinates on edge case 2D structure
381 (github issue #3854 from ricrogz)
382  - Build error with static boost libraries (v1.73)
383 (github issue #3865 from nielskm)
384  - Make sure that added R-groups have non-zero coordinates
385 (github pull #3877 from ptosco)
386  - Bad H coordinates on fused ring
387 (github issue #3879 from greglandrum)
388  - SubstructLibrary needs to check bond ring queries as well
389 (github issue #3881 from bp-kelley)
390  - Fixes Amine.Tertiary.Aromatic definition
391 (github pull #3883 from bp-kelley)
392  - inconsistency in seedSmarts in FMCS between and GetSubstructureMatches
393 (github issue #3886 from proteneer)
394  - PandasTools.RGroupDecomposition throws an error when redraw_sidechains is set to True.
395 (github pull #3888 from greglandrum)
396  - Dev/update glare to py3
397 (github pull #3892 from bp-kelley)
398  - ConfGen: Macrocycle torsion terms not being used with fused macrocycles
399 (github pull #3894 from greglandrum)
400  - Broken KNIME link in README
401 (github issue #3897 from yurivict)
402  - Change class to struct for forward declaration
403 (github pull #3906 from bp-kelley)
404  - Fixes issues with unlabelled groups on aromatic nitrogens
405 (github pull #3908 from ptosco)
406  - Fix #3659 regression introduced in #3832
407 (github pull #3909 from ricrogz)
408  - Error rendering SMARTS queries with atom OR lists
409 (github issue #3912 from greglandrum)
410  - MoDraw2D: Get tests working without freetype
411 (github pull #3923 from greglandrum)
412  - RGD default scoring function does not always work as expected
413 (github issue #3924 from jones-gareth)
414  - MolDraw2D: relative font size changes with bond lengths in molecule
415 (github issue #3929 from greglandrum)
416  - MolDraw2D: coordinates for reactions not being used
417 (github issue #3931 from greglandrum)
418  - Follow-on patch for changes in #3899
419 (github issue #3932 from greglandrum)
420  - Fix MolDraw2DQt exports
421 (github pull #3935 from ricrogz)
422  - Fix building JavaWrappers on Windows, dynamic linking
423 (github pull #3936 from ricrogz)
424  - Boost header warnings when compiling
425 (github issue #3956 from jasondbiggs)
426  - Adds removeAllHydrogenRGroupsAndLabels and fixes kekulization issues
427 (github pull #3944 from ptosco)
428  - MolToJSONData fails when mol has a property that can't be stringified
429 (github issue #3956 from jasondbiggs)
430  - RWMol should reset(), not release(), dp_delAtoms and dp_delBonds
431 (github pull #3970 from greglandrum)
432
433
434## New Features and Enhancements:
435  - add context managers for writers
436 (github issue #2217 from greglandrum)
437  - MolToSmiles(kekuleSmiles=True) gives SMILES with aromatic bonds
438 (github issue #2788 from adalke)
439  - allow specification of color map when drawing similarity maps
440 (github issue #2904 from greglandrum)
441  - Clean up CMake files
442 (github pull #3417 from e-kwsm)
443  - Speed up GraphMol/Chirality.cpp/iterateCIPRanks
444 (github pull #3482 from jinpan)
445  - Removes function which is an exact duplicate of another function
446 (github pull #3524 from ptosco)
447  - A couple of minor improvements to FindCairo
448 (github pull #3535 from ptosco)
449  - Give a bit more time to RGD test in debug builds
450 (github pull #3536 from ptosco)
451  - A couple of fixes to the build system
452 (github pull #3538 from ptosco)
453  - Modularized WASM module
454 (github issue #3561 from dskatov)
455  - A couple changes to speedup bulk similarity calculations from Python
456 (github pull #3574 from greglandrum)
457  - add documentation for the JS wrappers
458 (github pull #3583 from greglandrum)
459  - add a "comic mode" to MolDraw2D
460 (github pull #3584 from greglandrum)
461  - Add rendering of SGroup brackets to MolDraw2D
462 (github pull #3586 from greglandrum)
463  - Update Install.md
464 (github pull #3589 from slchan3)
465  - Add explicit support for remaining CTAB query bond types
466 (github issue #3599 from greglandrum)
467  - update Cookbook stereochemistry examples
468 (github pull #3604 from vfscalfani)
469  - Add support for rendering SGroup data fields to MolDraw2D
470 (github pull #3619 from greglandrum)
471  - Support rendering the "ABS" flag in MolDraw2D
472 (github issue #3623 from greglandrum)
473  - Support drawing some query bonds
474 (github pull #3624 from greglandrum)
475  - Support rendering variable attachment points
476 (github pull #3626 from greglandrum)
477  - add configuration option to disable atom symbols in the rendering
478 (github pull #3630 from greglandrum)
479  - Render link nodes in MolDraw2D
480 (github issue #3637 from greglandrum)
481  - First pass at MolZip (now with bond stereo!)
482 (github pull #3644 from bp-kelley)
483  - Add molecule annotations/notes to MolDraw2D
484 (github pull #3651 from greglandrum)
485  - support setting MolDraw2DOptions using JSON from Python
486 (github pull #3660 from greglandrum)
487  - Make the scope control for Qt more idiomatic
488 (github pull #3663 from d-b-w)
489  - Expanded MolEnumerator functionality
490 (github pull #3664 from greglandrum)
491  - add support for generating pattern fps for MolBundles
492 (github pull #3665 from greglandrum)
493  - Add a callback function to EmbedParameters struct
494 (github issue #3667 from jasondbiggs)
495  - update SequenceParsers.cpp
496 (github pull #3683 from magattaca)
497  - MCS: extend completeRingsOnly to cover atoms as well
498 (github issue #3693 from driesvr)
499  - Add Molbundle search to SWIG
500 (github pull #3698 from jones-gareth)
501  - Added getMessage method to exceptions
502 (github pull #3700 from sroughley)
503  - add context manager for MolSuppliers
504 (github issue #3703 from greglandrum)
505  - Make better use of strictParsing for SGroups
506 (github pull #3705 from ptosco)
507  - Allow using  POPCNT on big-endian ppc64
508 (github pull #3727 from pkubaj)
509  - Cleanup: remove fromstring and tostring from functions working with pillow
510 (github issue #3730 from greglandrum)
511  - Set strictParsing to false in MinimalLib
512 (github pull #3737 from ptosco)
513  - 3D MCS - Minimal version, no refactoring
514 (github pull #3749 from robbason)
515  - Include Winsock2.h instead of Windows.h in DebugTrace.h
516 (github pull #3756 from dpaoliello)
517  - R group match any issue
518 (github pull #3767 from jones-gareth)
519  - Support new coordgen option to not always make bonds to metals zero-order
520 (github pull #3769 from greglandrum)
521  - DistanceGeometry: add flag to enforce trans amides
522 (github pull #3794 from greglandrum)
523  - MolDraw2D: first pass at rendering atom lists
524 (github pull #3804 from greglandrum)
525  - Issue a warning when embedding a molecule with no Hs
526 (github pull #3807 from greglandrum)
527  - Add tautomer query to the substructlibrary
528 (github pull #3808 from bp-kelley)
529  - Enhanced generateDepictionMatching2DStructure functionality
530 (github pull #3811 from ptosco)
531  - Confgen: add option to use symmetry when doing RMS pruning
532 (github pull #3813 from greglandrum)
533  - Remove boost::foreach from public headers
534 (github pull #3820 from ricrogz)
535  - Adds isotopeLabels and dummyIsotopeLabels MolDrawOptions
536 (github pull #3825 from ptosco)
537  - Added 2 Cookbook examples
538 (github pull #3831 from vfscalfani)
539  - Separate MolDraw2DQt into its own library
540 (github pull #3832 from d-b-w)
541  - Facilities for interactive modification of molecule drawing
542 (github pull #3833 from SPKorhonen)
543  - cleanup a bunch of compiler warnings
544 (github pull #3849 from greglandrum)
545  - add a new mol draw option to draw wedge bonds with a single color
546 (github pull #3860 from jasondbiggs)
547  - Add Kier Phi descriptor
548 (github pull #3864 from greglandrum)
549  - Add basic support for hydrogen bonds
550 (github pull #3871 from greglandrum)
551  - Allow batch editing of molecules: removal only
552 (github pull #3875 from greglandrum)
553  - Allow retrieving the _ErGAtomTypes property from Python
554 (github pull #3878 from ptosco)
555  - Exposes InsertMol to python RWMol
556 (github pull #3907 from bp-kelley)
557  - Use https for Avalon and Inchi downloads
558 (github pull #3915 from ptosco)
559  - support empty/missing SDT lines for SGroup data
560 (github pull #3916 from greglandrum)
561  - Cookbook entries should be updated
562 (github issue #3917 from greglandrum)
563  - MolDraw2D: support changing annotation colours
564 (github pull #3919 from greglandrum)
565  - include context managers for the multithreaded suppliers too
566 (github pull #3920 from greglandrum)
567  - Documentation cleanup and update
568 (github pull #3922 from greglandrum)
569  - remove an MSVC++ warning caused by #3849
570 (github pull #3927 from greglandrum)
571  - Adds removeAllHydrogenRGroupsAndLabels and fixes kekulization issues
572 (github pull #3944 from ptosco)
573  - Remove temporary labels from RGD results
574 (github pull #3947 from ptosco)
575  - appended a new project depend on RDKit
576 (github pull #3955 from kotori-y)
577  - Do not add unnecessary R-labels (and an optimization)
578 (github pull #3969 from ptosco)
579  - Add return codes and make RGroupDecomp less verbose
580 (github pull #3971 from bp-kelley)
581  - update to coordgen 2.0.0
582 (github pull #3974 from greglandrum)
583
584
585## Deprecated code (to be removed in a future release):
586- The "minimizeOnly" option for coordgen will be removed in the next RDKit release
587
588# Release_2020.09.1
589(Changes relative to Release_2020.03.1)
590
591
592## Backwards incompatible changes
593- We've added additional allowed valences for Cl (now 1, 3, 5), Br (now 1, 3,
594  5), I (now 1, 3, 5), At (now 1, 3, 5), Xe (now 0, 2, 4, 6), and Po (now 2, 4,
595  6). Molecules with atoms in the new valence states will no longer generate
596  sanitization errors. Note that this has an impact on the chemistry of
597  molecules containing 3-valent I and at least one implict H (present 24 times
598  in ChEMBL 27): previously this was incorrectly assigned two implicit Hs, now
599  it has no implicit Hs.
600- Aromaticity perception of molecules like `Cc1nnc2n1c1ccccc1n1c(C)nnc12` now
601  correctly recognizes the full outer envelope, i.e. the bonds joining the rings
602  are now also aromatic.
603- FindMCS() may return single atom MCSs, whereas previously it returned an empty
604  MCS unless there was at least one commond bond across the input structures.
605  So the MCS between molecules `CC` and `CO` is now `[#6]` rather than being null.
606- The fontSize()/setFontSize() (FontSize()/SetFontSize()) methods in MolDraw2D
607  now work in units of pixels (more or less) instead of the molecule units.
608- The Open3DAlign functionality is now in its own separate library - `O3AAlign`
609  in cmake. If you are working in C++ and using O3A functionality, you'll need
610  to link against this library as well now.
611- Due to improvements in the tautomer enumeration code, the method
612  `TautomerEnumerator::enumerate` now returns a `TautomerEnumeratorResult`
613  object instead of a vector of molecules. Note that if you are iterating over
614  the results of a call to `enumerate()` you shouldn't need to change your code.
615  If you want to invoke the old (and deprecated, see below) form from C++, call
616  `TautomerNumerator::enumerate(mol, nullptr)` or explicitly pass a
617  `boost::dynamic_bitset*` to capture the modified atoms.
618- The default precision setting for coordgen has been changed. The new default
619  was selected to greatly reduce the number of molecules for which it takes a
620  very long time to generate coordinates while still producing nice looking
621  structures. We may continue to tweak this default value if/when problems
622  with it are reported. If you would like to go back to the previous setting, set
623  CoordgenParams.minimizerPrecision to CoordgenParams.sketcherStandardPrecision
624  when you invoke rdCoordGen.AddCoords()
625- Uncharger::uncharge() will now neutralize `[Cl,Br,I][O-], [Cl,Br,I](=O)[O-],
626  [Cl,Br,I](=O)(=O)[O-], [Cl,Br,I](=O)(=O)(=O)[O-], [O-]N=N[O-], [N,P](=O)[O-],
627  [N+](=O)([O-])[O-], P(=O)([O-])[O-], P(=O)([O-])([O-])[O-], S([O-])[O-],
628  S(=O)([O-])[O-], S(=O)(=O)([O-])[O-], S(=O)(=O)([O-])OOS(=O)(=O)[O-]`.
629  Previously not all of these inorganic acid counterions were consistently
630  neutralized.
631- The `None` value in the `RGroupCoreAlignment` enum was renamed to `NoAlignment`
632  in both C++ and Python, in order to avoid issues when attempting to access it
633  from Python.
634
635## Highlights
636- There's been another big improvement in the quality of molecule drawings:
637  character and font handling is greatly improved thanks to the use of the
638  FreeType library
639- A new feature has been added to efficiently allow tautomer-insensitive
640  substructure search.
641- A new, much more accurate, algorithm is available for calculating CIP labels
642  on atoms and bonds.
643- There's a new rdDeprotect module to allow automatically deprotecting molecules
644  before putting them into reactions
645- Molecule and reaction metadata can now be added to PNG files generated by
646  MolDraw2DCairo
647
648## Acknowledgements
649Shrey Aryan, Jinserk Baik, Francois Berenger, Cédric Bouysset, David Cosgrove,
650Ivan Chernyshov, Guillaume Godin, Manan Goel, Jan H. Jensen, Gareth Jones, Maria
651Kadukova, Eisuke Kawashima, Steven Kearnes, Brian Kelley, Joos Kiener, Kenneth
652Lum, Joshua Meyers, Rocco Moretti, Paul R Moses, Dan Nealschneider, Jin Pan,
653Joann Prescott-Roy, Matthew Robinson, Jaime Rodríguez-Guerra, Ricardo
654Rodriguez-Schmidt, Jeff van Santen, Roger Sayle Vincent F. Scalfani Eric Taw,
655Ansgar Schuffenhauer, Paolo Tosco, Ivan Tubert-Brohman, Riccardo Vianello,
656Rachel Walker, Maciej Wójcikowski, Christopher Zou, daverona, hjuinj,
657intrigus-lgtm, autodataming, paconius, sailfish009
658
659## Bug Fixes:
660  - Python tests fail when RDK_BUILD_COMPRESSED_SUPPLIERS is enabled
661 (github issue #1888 from greglandrum)
662  - ResonanceMolSupplier potentially stuck in infinite loop
663 (github issue #2597 from tawe141)
664  - ctest pythonTestDirChem failed
665 (github issue #2757 from jinserk)
666  - Issue with inversion/retention of stereochemistry
667 (github issue #2891 from mc-robinson)
668  - cannot parse reaction SMILES/SMARTS with dative bonds
669 (github issue #2954 from greglandrum)
670  - ResonanceMolSupplier can fail with small maxStructs values
671 (github issue #3041 from greglandrum)
672  - seg fault in ResonanceMolSupplier()
673 (github issue #3048 from greglandrum)
674  - Bug in image rendering of dative bonds
675 (github issue #3056 from IvanChernyshov)
676  - Coordinates from coordgen are not centered around the origin
677 (github pull #3058 from DavidACosgrove)
678  - fix a typo in ScaffoldNetwork/CMakeLists.txt
679 (github pull #3060 from greglandrum)
680  - Bad double bond placement in polycyclic aromatics
681 (github issue #3061 from DavidACosgrove)
682  - SGroups with more than one attachment point are now properly parsed
683 (github pull #3072 from greglandrum)
684  - Reactions should not use strict implicit valence calculations
685 (github issue #3097 from mwojcikowski)
686  - partial reacting atom detection
687 (github issue #3119 from thegodone)
688  - DrawMolecules does not center molecules
689 (github issue #3126 from JoshuaMeyers)
690  - results from coordgen are sometimes not centered
691 (github issue #3131 from greglandrum)
692  - GCC 10.0.1 compile error
693 (github issue #3135 from rvianello)
694  - Memory leak when parsing bad SMILES
695 (github issue #3139 from intrigus-lgtm)
696  - Error breaking StereoBonds in reactions
697 (github issue #3147 from mc-robinson)
698  - MolOps::removeHs() removes hydrides
699 (github issue #3150 from jhjensen2)
700  - Kekulization error from CreateScaffoldNetwork
701 (github issue #3153 from greglandrum)
702  - Fix drawing of N plus
703 (github pull #3165 from DavidACosgrove)
704  - RWMol::clear() does not explicitly clean up SubstanceGroups or StereoGroups
705 (github issue #3167 from greglandrum)
706  - Modifying a molecule should not automatically clear SubstanceGroups
707 (github issue #3168 from greglandrum)
708  - removeHs() should not remove atoms in SubstanceGroups
709 (github issue #3169 from greglandrum)
710  - fix a memory problem detected in malformed SMILES
711 (github pull #3171 from greglandrum)
712  - Python wrapper: SetQuery and ExpandQuery for bonds
713 (github pull #3172 from i-tub)
714  - S-groups: PARENT field should reference index
715 (github issue #3175 from greglandrum)
716  - rdScaffoldNetwork causes segmenation fault upon None molecule
717 (github issue #3177 from AnsgarSchuffenhauer)
718  - fix a small inconsistency in the name of the inchi package
719 (github pull #3182 from rvianello)
720  - Molecule constructed from CXSMILES cannot be translated to SMARTS
721 (github issue #3197 from greglandrum)
722  - Formatting fix of CalcRMS
723 (github pull #3203 from chmnk)
724  - fix the CompressedSDMolSupplier python iterator interface
725 (github pull #3204 from rvianello)
726  - Queries generated from PreprocessReaction cannot be translated to SMARTS
727 (github issue #3206 from greglandrum)
728  - Attachment point info not being read from V2000 mol blocks
729 (github issue #3207 from greglandrum)
730  - Memory Sanitizer fails on molFromPickle on empty file
731 (github issue #3211 from intrigus-lgtm)
732  - Throw exception when reading from stream fails.
733 (github pull #3212 from intrigus-lgtm)
734  - fix molstogridimage on certain fragments/smarts patterns
735 (github pull #3217 from bp-kelley)
736  - Lines in wedge bonds being drawn too closely together
737 (github issue #3226 from paconius)
738  - EnumerateStereochemistry should clear CIP labels
739 (github issue #3231 from greglandrum)
740  - lock CI cairo version to force an install from the rdkit repo
741 (github pull #3240 from greglandrum)
742  - XBCORR and XBHEAD in Sgroups no longer cause parse failures
743 (github pull #3242 from greglandrum)
744  - LINKNODEs are ignored by the CTAB parsers
745 (github pull #3247 from greglandrum)
746  - add GetStringVectProp() to SubstanceGroup class
747 (github pull #3251 from greglandrum)
748  - Envelope aromaticity not detected in complex fused system
749 (github issue #3256 from greglandrum)
750  - Draw.MolsToGridImage repeating atom indices
751 (github issue #3258 from greglandrum)
752  - Atom indices clash with atom symbols in small pictures.
753 (github issue #3262 from DavidACosgrove)
754  - MinimalLib Dockerfile is broken at HEAD
755 (github issue #3267 from skearnes)
756  - Fixes #2757
757 (github pull #3268 from greglandrum)
758  - RGroupDecomposition restructuring
759 (github pull #3270 from bp-kelley)
760  - Get PPC builds working
761 (github pull #3285 from greglandrum)
762  - ScaffoldNetwork not in C# wrappers
763 (github pull #3289 from jones-gareth)
764  - bonds with "either' stereo cannot be read from JSON
765 (github pull #3290 from greglandrum)
766  - Small bug fixes and cleanups from fuzz testing
767 (github pull #3299 from greglandrum)
768  - DrawOptions: bondLineWidth behaving differently since 2020 versions
769 (github issue #3305 from kienerj)
770  - Not possible to copy SubstanceGroups in Python
771 (github issue #3312 from greglandrum)
772  - Stereochemistry perception getting confused by a bad drawing.
773 (github issue #3314 from greglandrum)
774  - SubstanceGroups should not be written with quotes around missing fields
775 (github issue #3315 from greglandrum)
776  - SetDoubleBondNeighborDirections() not overwriting existing bond directions
777 (github issue #3322 from greglandrum)
778  - AdjustQueryParameters.adjustSingleBondsBetweenAromaticAtoms does not modify ring bonds
779 (github issue #3325 from greglandrum)
780  - Fixes for aromatic bond fuzzy queries
781 (github pull #3328 from jones-gareth)
782  - lock sphinx version in CI due to problem with v3.2.0
783 (github pull #3332 from greglandrum)
784  - Remove deprecated Sphinx options
785 (github pull #3335 from greglandrum)
786  - more bug fixes and cleanups from fuzz testing
787 (github pull #3339 from greglandrum)
788  - unspecified branch bonds in SMARTS don't have aromaticity set
789 (github issue #3342 from greglandrum)
790  - Incorrect resonance structures in presence of dative bonds
791 (github issue #3349 from IvanChernyshov)
792  - Converting atoms with high radical counts to InChI generates incorrect results
793 (github issue #3365 from greglandrum)
794  - Replace fill-opacity= with fill-opacity: in MolDraw2DSVG and tests
795 (github pull #3368 from lummyk)
796  - Fixes a bug in AddHs() involving sp2 centers with degree 1
797 (github pull #3383 from ptosco)
798  - Information about charges and isotopes lost when calling AdjustQueryProperties
799 (github issue #3388 from greglandrum)
800  - prepareMolForDrawing() incorrectly adds chiral Hs if no ring info is present
801 (github issue #3392 from greglandrum)
802  - CXSMILES parser should not set atom maps for attachment points
803 (github issue #3393 from greglandrum)
804  - Fixes a couple of query-related bugs
805 (github pull #3398 from ptosco)
806  - Doing a match of a recursive smarts leaves traces of the previous match
807 (github issue #3403 from bp-kelley)
808  - Recursive smarts cannot be used in the core for rgroup decomposition
809 (github pull #3404 from bp-kelley)
810  - Improvements to reaction chirality handling
811 (github pull #3412 from greglandrum)
812  - V3K mol blocks with no atoms fail to parse
813 (github issue #3413 from greglandrum)
814  - Problem parsing SGroup data comtaining `""`
815 (github issue #3415 from greglandrum)
816  - MolEnumerator::enumerate() should call updatePropertyCache()
817 (github pull #3420 from greglandrum)
818 - Fixed bad draw scale in drawMolecules. Github3391.  Take 2.
819 (github pull #3424 from DavidACosgrove)
820  - Replace fill-opacity= to fill-opacity: in reaction.out
821 (github pull #3426 from daverona)
822  - set the ChiralityPossible tag when using the new code with FindMolChiralCenters
823 (github pull #3434 from greglandrum)
824  - Silence deprecation warning
825 (github pull #3439 from ptosco)
826  - update minimallib python requirements to python3
827 (github pull #3449 from greglandrum)
828  - Fix dead links to inchi-trust
829 (github pull #3451 from jvansan)
830  - ringMatchesRingOnly=True produces a SMARTS query that return no substructure matches
831 (github issue #3458 from jaimergp)
832  - Normalization rule incorrectly matches sulfones
833 (github issue #3460 from greglandrum)
834  - BlockLogs was reenabling all logs, not just the ones that were disabled
835 (github pull #3466 from bp-kelley)
836  - Hydrogen is incorrectly identified as an "early" atom
837 (github issue #3470 from greglandrum)
838  - Fixes typo that causes the build to fail
839 (github pull #3477 from ptosco)
840  - Fix a crashing bug with None in rdMolStandardize
841 (github pull #3481 from greglandrum)
842  - zlib.h not found if not in system directories
843 (github issue #3493 from ricrogz)
844  - fix paths in ConformerParser tests
845 (github pull #3504 from ricrogz)
846
847## New Features and Enhancements:
848  - Add GetBestRMS function
849 (github issue #1820 from chmnk)
850  - Add reorder tautomers function and accompanying tests
851 (github pull #3043 from chriswzou)
852  - Set RDK_BOOST_VERSION to pass minimum required version to FindBoost
853 (github pull #3074 from e-kwsm)
854  - bug: the MCS of the molecules CH4 and CH3OH is empty. how to return C?
855 (github issue #3095 from autodataming)
856  - start using boost:stacktrace
857 (github pull #3124 from greglandrum)
858  - Add Fuzzing, fixes #2857
859 (github pull #3128 from intrigus-lgtm)
860  - Cookbook entry for ETKDG with rings
861 (github pull #3129 from hjuinj)
862  - Fixes #2795
863 (github pull #3134 from manangoel99)
864  - Bump Catch2 to v2.12.1
865 (github pull #3136 from e-kwsm)
866  - Modernize how legacy C headers are included
867 (github pull #3137 from e-kwsm)
868  - Avoid C preprocessor macros
869 (github pull #3138 from e-kwsm)
870  - Modernization: use nullptr
871 (github pull #3143 from e-kwsm)
872  - Update fuzzer dict
873 (github pull #3162 from intrigus-lgtm)
874  - Add BCUT2D and AUTOCORR2D to desclist
875 (github pull #3178 from bp-kelley)
876  - Remove usage of the deprecated random_shuffle() function
877 (github pull #3187 from greglandrum)
878  - clang-tidy modernize-use-default-member-init and modernize-use-emplace
879 (github pull #3190 from greglandrum)
880  - Tautomer search
881 (github pull #3205 from jones-gareth)
882  - Add optional timeout to RGroupDecomposition
883 (github pull #3223 from greglandrum)
884  - Allow symmetrization to be completely disabled in RGD code
885 (github issue #3224 from greglandrum)
886  - gitignore source and build files from the RingFamilies external lib
887 (github pull #3228 from d-b-w)
888  - Add new CIP labelling algorithm
889 (github pull #3234 from ricrogz)
890  - Adds more options to adjustQueryProperties
891 (github pull #3235 from greglandrum)
892  - Improve SSSR performance for large molecules
893 (github pull #3236 from d-b-w)
894  - Support using FreeType for text rendering
895 (github pull #3237 from DavidACosgrove)
896  - Cleanup warnings from clang-10
897 (github pull #3238 from greglandrum)
898  - DEB packaging: cairo support is needed to generate PNGs
899 (github pull #3250 from UnixJunkie)
900  - Added call to test legends.
901 (github pull #3252 from DavidACosgrove)
902  - Improve performance of aromaticity detection for large molecules
903 (github pull #3253 from d-b-w)
904  - Speed up ring finding by skipping nodes not in rings
905 (github pull #3254 from d-b-w)
906  - Support enumerating some mol file features into `MolBundles`
907 (github pull #3257 from greglandrum)
908  - Add cxsmiles query atoms to CTAB parsers and writers
909 (github pull #3261 from greglandrum)
910  - Update to Coordgen v1.4.1
911 (github pull #3265 from ricrogz)
912  - ScaffoldNetwork: add feature to count the number of molecules a scaffold originates from
913 (github pull #3275 from greglandrum)
914  - rgroup speedup
915 (github pull #3279 from bp-kelley)
916  - Stop trying to assign hybridization to actinides
917 (github pull #3281 from greglandrum)
918  - Decouple coordgen and maeparser integrations
919 (github pull #3286 from greglandrum)
920  - Avoid really slow Windows conda builds
921 (github pull #3287 from ptosco)
922  - Embed default truetype font
923 (github pull #3288 from greglandrum)
924  - Expanded support for CXSMILES features
925 (github pull #3292 from greglandrum)
926  - Deprotection Library
927 (github pull #3294 from bp-kelley)
928  - Use operator() and __call__() consistently across RDKit
929 (github pull #3295 from ptosco)
930  - Molecule metadata in PNGs
931 (github pull #3316 from greglandrum)
932  - Cleanup alignment dependencies
933 (github pull #3317 from greglandrum)
934  - Add the option to minimize structures with coordgen
935 (github pull #3319 from greglandrum)
936  - Updated code for chirality perception
937 (github pull #3324 from greglandrum)
938  - Some work on TautomerEnumerator
939 (github pull #3327 from ptosco)
940  - Add fragmentOnBonds to SWIG wrappers
941 (github issue #3329 from greglandrum)
942  - Sped up SSSR by not storing every path back to root
943 (github pull #3333 from rachelnwalker)
944  - Fix Cookbook formatting and added 4 new examples
945 (github pull #3345 from vfscalfani)
946  - switch to using target_compile_definitions instead of add_definitions
947 (github pull #3350 from greglandrum)
948  - [GSoC-2020] Generalized and Multithreaded File Reader
949 (github pull #3363 from shrey183)
950  - support new CIP code and StereoGroups in MolDraw2D_detail::addStereoAnnotation()
951 (github issue #3369 from greglandrum)
952  - expose additional SubstanceGroup data members to Python
953 (github pull #3375 from greglandrum)
954  - Add MolDraw2DJS
955 (github pull #3376 from greglandrum)
956  - Add APK package link for Alpine Linux distribution
957 (github pull #3379 from daverona)
958  - Add SubstanceGroups to the SWIG Wrappers
959 (github pull #3390 from jones-gareth)
960  - Add better support for isotopic Hs to removeHs() and addHs()
961 (github pull #3396 from ptosco)
962  - Add support for abbreviations
963 (github pull #3406 from greglandrum)
964  - Allow passing explicit removeHs, sanitize and strict flags to the MDL rxn parser
965 (github pull #3411 from ptosco)
966  - Improvements to reaction chirality handling
967 (github pull #3412 from greglandrum)
968  - RGD cleanup, optimization and a better fix for #1705
969 (github pull #3428 from ptosco)
970  - Tautomers with endocyclic double bonds should be preferred over exocyclic ones
971 (github issue #3430 from ptosco)
972  - RGD: Code modernization and an optimization
973 (github pull #3437 from ptosco)
974  - expose PNG metadata functions to python
975 (github pull #3440 from greglandrum)
976  - Replace basestring
977 (github pull #3441 from iammosespaulr)
978  - Get the Uncharger to deal with a larger set of acids correctly
979 (github pull #3448 from ptosco)
980  - expose templated coordinate generation to the JS Wrapper
981 (github pull #3450 from greglandrum)
982  - change default precision for coordgen
983 (github pull #3452 from greglandrum)
984  - add coordgen support to demo.html
985 (github pull #3453 from greglandrum)
986  - Two simple MolStandardizer code cleanups
987 (github pull #3454 from ptosco)
988  - A few improvements to MolStandardize::Normalizer
989 (github pull #3455 from ptosco)
990  - Add Cookbook entries 30-32
991 (github pull #3459 from vfscalfani)
992  - A few small tweaks to the drawing code
993 (github pull #3464 from greglandrum)
994  - Make MetalDisconnector more robust against metallorganics
995 (github pull #3465 from greglandrum)
996  - Add nocharge algorithm example to cookbook
997 (github pull #3467 from vfscalfani)
998  - ROMol: add inline impl for common getNumAtoms call
999 (github pull #3469 from jinpan)
1000  - Improve sphinx formatting in rdSubstructLibrary
1001 (github issue #3471 from cbouy)
1002  - Cmake config improvements
1003 (github pull #3478 from rvianello)
1004  - allow fillColour to be changed from python
1005 (github pull #3480 from greglandrum)
1006  - Fix undefined behavior in testCoordGen test
1007 (github pull #3495 from roccomoretti)
1008  - Add a version for the pattern fingerprint
1009 (github pull #3496 from greglandrum)
1010  - Fixes a number of issues flagged by clang
1011 (github pull #3498 from ptosco)
1012  - Update to maeparser v1.2.4
1013 (github pull #3506 from sailfish009)
1014  - Fix python invalid escape sequences
1015 (github pull #3508 from ricrogz)
1016
1017## Code removed in this release:
1018- To improve API consistency of the exceptions in RDKit with the default ones in
1019  the STL, the several `message()` methods and `Invariant::getMessage()` in RDKit's
1020  exceptions have been removed in favor of `what()`.
1021- The old MolHash code has been removed from the C++ code, all wrappers, and the
1022  PostgreSQL cartridge.
1023
1024## Deprecated code (to be removed in a future release):
1025- The function `FileParserUtils::replaceAtomWithQueryAtom()` has been moved to
1026  the namespace QueryOps. Please use `QueryOps::replaceAtomWithQueryAtom()`
1027  instead. The version in the `FileParserUtils` namespace will be removed in the
1028  next release.
1029- The method `std::vector<ROMOL_SPTR> TautomerEnumerator::enumerate(const ROMol &mol, boost::dynamic_bitset<> *modifiedAtoms, boost::dynamic_bitset<> *modifiedBonds = nullptr)`
1030  is deprecated and will be removed in a future release.
1031  Please use `TautomerEnumeratorResult TautomerEnumerator::enumerate(const ROMol &mol,bool reassignStereo = true)`
1032  instead.
1033- The `MolDraw2DQt` class is no longer supported since we don't think anyone is
1034  using it. It will be removed in the 2021.03 release unless we learn otherwise.
1035
1036
1037
1038# Release_2020.03.1
1039(Changes relative to Release_2019.09.1)
1040
1041## Backwards incompatible changes
1042- Searches for equal molecules (i.e. `mol1 @= mol2`) in the PostgreSQL cartridge
1043  now use the `do_chiral_sss` option. So if `do_chiral_sss` is false (the
1044  default), the molecules `CC(F)Cl` and `C[C@H](F)Cl` will be considered to be equal.
1045  Previously these molecules were always considered to be different.
1046- Attempting to create a MolSupplier from a filename pointing to an empty file,
1047  a file that does not exist or sometihing that is not a standard file (i.e.
1048  something like a directory) now generates an exception.
1049- The cmake option `RDK_OPTIMIZE_NATIVE` has been renamed to `RDK_OPTIMIZE_POPCNT`
1050
1051## Highlights:
1052- The drawings generated by the MolDraw2D objects are now significantly improved
1053  and can include simple atom and bond annotations (#2931 and #3010)
1054- An initial implementation of a modified scaffold network algorithm is now
1055  available (#2911)
1056- A few new descriptor/fingerprint types are available - BCUTs (#2957), Morse
1057  atom fingerprints (#1773), Coulomb matrices (#2993), and MHFP and SECFP
1058  fingerprints (#2643)
1059- There is a new, and greatly improved, version of the RDKit Cookbook (#2884)
1060- There is a new version (v3) of the ETKDG conformer generator along with
1061  optional new terms for handling small rings and macrocyles (http://doi.org/dqnh) (#2999)
1062
1063
1064## Acknowledgements:
1065Marcel Baltruschat, Jason Biggs, Eliane Briand, Ben Cornett, David Cosgrove,
1066Andrew Dalke, Tim Dudgeon, Zhenting Gao, Guillaume Godin, Manan Goel, Gareth
1067Jones, Zachary Kaplan, Eisuke Kawashima, Steven Kearnes, Brian Kelley, Maxim
1068Koltsov, Franziska Kruger, Mieszko Manijak, Dan Nealschneider, Daniil
1069Polykovskiy, Daniel Probst, Sereina Riniker, Matthew Robinson, Steve Roughley,
1070Kevin Ryan, Vincent F. Scalfani, Ricardo Rodriguez Schmidt, Rim Shayakhmetov,
1071Aryan Shrey, Nik Stiefl, Matt Swain, Paolo Tosco, Wiep van der Toorn, Riccardo
1072Vianello, Shuzhe Wang, Piotr Wawrzyniak, Hsiao Yi, 'jasad1', 'luancarvalhomartins'
1073
1074
1075## Bug Fixes:
1076  - Mol rendering within DataFrames in a Jupyter Notebook is broken with Pandas 0.25.1
1077 (github issue #2673 from mrcblt)
1078  - Removed RDKIT_SIMDIVPICKERS_EXPORT
1079 (github pull #2740 from ptosco)
1080  - - enable building RDKitRingDecomposerLib.dll under Windows
1081 (github pull #2742 from ptosco)
1082  - Do a windows DLL build as part of the Azure DevOps setup
1083 (github pull #2743 from greglandrum)
1084  - Fix data race in sascorer.py
1085 (github pull #2744 from skearnes)
1086  - Uncharger not properly setting explicit/implicit H count
1087 (github issue #2749 from greglandrum)
1088  - MSVC compile error: MolHash scoped enum cannot be redeclared as unscoped
1089 (github issue #2752 from mcs07)
1090  - Molecules whose Y size is very small won't display as SVG
1091 (github issue #2762 from ptosco)
1092  - Make the cartridge tests work with PostgreSQL 12
1093 (github pull #2767 from greglandrum)
1094  - Salt stripper should consider bond matches as well as atom matches
1095 (github pull #2768 from greglandrum)
1096  - Bismuth should count as an early element
1097 (github issue #2775 from greglandrum)
1098  - addHs() fails on atoms with "bad" valences
1099 (github issue #2782 from greglandrum)
1100  - Element symbol lookup for some transuranics returns incorrect results
1101 (github issue #2784 from LeanAndMean)
1102  - [cartridge] molecular equality should use do_chiral_sss setting
1103 (github issue #2790 from greglandrum)
1104  - uncharger removes Hs from carbocations instead of adding them
1105 (github issue #2792 from greglandrum)
1106  - Fix build without boost serialization library
1107 (github pull #2796 from maksbotan)
1108  - Using `SetBoundsMat` significantly slows down conformer generation process.
1109 (github issue #2800 from hjuinj)
1110  - rdkit.Ched.rdFMCS.FindMCS generates invalid smarts
1111 (github issue #2801 from luancarvalhomartins)
1112  - Remove confId from *FFOptimizeMoleculeConfs Python docs
1113 (github issue #2805 from ptosco)
1114  - Hybridization queries on dummy atoms not written properly to SMARTS
1115 (github issue #2814 from greglandrum)
1116  - Charge range queries not properly written to SMARTS
1117 (github issue #2815 from greglandrum)
1118  - RDKit segfaults in MMFFOptimizeMoleculeConfs()
1119 (github issue #2820 from ptosco)
1120  - Trusted Smiles holder doesn't handle ring queries
1121 (github issue #2830 from bp-kelley)
1122  - Fix windows substructure crash
1123 (github pull #2836 from greglandrum)
1124  - Fix YAeHMOP build
1125 (github pull #2838 from ptosco)
1126  - testGithub2245 in testPickers.cpp occasionally fails
1127 (github issue #2839 from ptosco)
1128  - add define for RDK_USE_BOOST_SERIALIZATION
1129 (github pull #2859 from greglandrum)
1130  - fix start/end atoms when wedging bonds
1131 (github pull #2861 from greglandrum)
1132  - Fixes the size of the reduced charge matrix from eHT calculations
1133 (github pull #2864 from greglandrum)
1134  - Dev/pvs studio cleanups2
1135 (github pull #2877 from greglandrum)
1136  - segfault in MaeMolSupplier
1137 (github issue #2881 from greglandrum)
1138  - update maven url in build system
1139 (github pull #2889 from greglandrum)
1140  - EnumerateStereoisomers cannot handle STEREOANY bonds
1141 (github issue #2890 from ricrogz)
1142  - Update one of the cartridge tests that got missed
1143 (github pull #2894 from greglandrum)
1144  - acepentalene aromaticity perception
1145 (github issue #2895 from adalke)
1146  - New Similarity Maps drawing code Java Wrappers non-functional
1147 (github issue #2896 from sroughley)
1148  - Fix to allow multistructure images in Java/C# and use MCS for c# wrapper
1149 (github pull #2898 from jones-gareth)
1150  - Remove bogus URFLib library
1151 (github pull #2900 from greglandrum)
1152  - java wrapper build cleanups
1153 (github pull #2901 from greglandrum)
1154  - SMARTS parser fails on high-numbered ring closures in branches
1155 (github issue #2909 from greglandrum)
1156  - patch to make PandasTools tests pass with pandas v0.22
1157 (github pull #2913 from greglandrum)
1158  - fix doctest problem with Pandas v1.0
1159 (github pull #2918 from greglandrum)
1160  - Build with -D RDK_BUILD_COORDGEN_SUPPORT=OFF includes a test case that depends on MaeMolSupplier
1161 (github issue #2929 from rvianello)
1162  - MinimalLib: get_stereo_tags() should also return unspecified centers
1163 (github issue #2936 from greglandrum)
1164  - Fix regression introduced by e245349c
1165 (github pull #2945 from cornett)
1166  - Avoid data race warning in SmilesParse.cpp
1167 (github pull #2946 from skearnes)
1168  - Empty molecule has non-zero LabuteASA
1169 (github issue #2948 from jasondbiggs)
1170  - Fix a problem with aromatic heteroatom tautomer enumeration
1171 (github pull #2952 from greglandrum)
1172  - Molecule properties not retained with MolStandardize.rdMolStandardize.Cleanup()
1173 (github issue #2965 from ZacharyKaplan)
1174  - Fix build without boost serialization.
1175 (github pull #2972 from ricrogz)
1176  - RDKFuncs.chargeParent() core dumps when standardization is skipped
1177 (bithub issue #2970 from tdudgeon)
1178  - fix a typo in the scaffold network wrappers and add some tests
1179 (github pull #2982 from greglandrum)
1180  - Tautomer enumeration should remove stereo in all tautomers
1181 (github issue #2990 from greglandrum)
1182  - Segmentation fault on EmbedMolecule
1183 (github issue #3019 from shayakhmetov)
1184  - Removed dllexport from a function that lives in the anonymous namespace
1185 (github pull #3027 from ptosco)
1186
1187
1188## New Features and Enhancements:
1189  - Morse atom fingerprint
1190 (github pull #1773 from thegodone)
1191  - Allow serializing coordinates as doubles
1192 (github issue #2510 from danpol)
1193  - Rework MaeMolSupplier, fix #2617
1194 (github pull #2620 from ricrogz)
1195  - Implementation of MHFP and SECFP Fingerprints
1196 (github pull #2643 from daenuprobst)
1197  - MatchFusedRings does not imply CompleteRingsOnly anymore
1198 (github pull #2748 from ptosco)
1199  - Improvements to JS wrappers
1200 (github pull #2751 from greglandrum)
1201  - Fix installed header directory structure
1202 (github pull #2754 from ricrogz)
1203  - Add doRandom to the header docs
1204 (github pull #2756 from bp-kelley)
1205  - Add queryMol data member to MCSResult
1206 (github pull #2759 from ptosco)
1207  - Add functions to enable/disable the substructure matching monkey patching in IPythonConsole.py
1208 (github issue #2786 from greglandrum)
1209  - Add a function to assign chiral tags from sss atom parity
1210 (github issue #2823 from ptosco)
1211  - Support MRV_IMPLICIT_H S groups when reading Mol blocks
1212 (github issue #2829 from greglandrum)
1213  - Unset executable flag
1214 (github pull #2833 from e-kwsm)
1215  - Remove O(N) behavior of getNumBonds
1216 (github pull #2847 from bp-kelley)
1217  - Feature proposal: add remove_stereochemistry=False flag for RemoveHs()
1218 (github issue #2848 from shayakhmetov)
1219  - Expose SubstructLibrary serialization stream
1220 (github pull #2853 from bp-kelley)
1221  - Fix typo
1222 (github pull #2862 from e-kwsm)
1223  - Rename RDK_OPTIMIZE_NATIVE to RDK_OPTIMIZE_POPCNT
1224 (github pull #2865 from ElianeBriand)
1225  - Update Draw.MolToImage() and Draw.MolToFile() to use the new drawing code
1226 (github pull #2866 from greglandrum)
1227  - Improve PostgreSQL cartridge install documentation
1228 (github pull #2870 from yellowBirdy)
1229  - Fixes #2858
1230 (github pull #2871 from greglandrum)
1231  - Add a cartridge test to the azure devops config
1232 (github pull #2873 from greglandrum)
1233  - Add a new Cookbook v2 to the RDKit docs
1234 (github pull #2884 from vfscalfani)
1235  - Add MolVS tautomer canonicalization
1236 (github pull #2886 from greglandrum)
1237  - add a convenience function for RGD--Pandas integration
1238 (github pull #2887 from greglandrum)
1239  - run clang-tidy with readability-braces-around-statements
1240 (github pull #2899 from greglandrum)
1241  - Allow RDProps::clearProp to succeed even if the prop doesn't exist
1242 (github issue #2910 from greglandrum)
1243  - Add a scaffold network implementation
1244 (github pull #2911 from greglandrum)
1245  - cleanup of the SMILES/SMARTS parsing and writing code
1246 (github pull #2912 from greglandrum)
1247  - Add _ctab, _mol2, _pdb to allow direct mol construction from strings
1248 (github issue #2916 from greglandrum)
1249  - Parse and handle the stereoCare or STBOX flags in CTABs
1250 (github pull #2917 from greglandrum)
1251  - RDKit exceptions do not override the default `what()` method
1252 (github issue #2920 from ricrogz)
1253  - Allow custom post-match filters for substructure matching
1254 (github pull #2927 from greglandrum)
1255  - Proposed improvements to 2D Drawing Code
1256 (github issue #2931 from DavidACosgrove)
1257  - Include running the documentation tests as part of the CI runs
1258 (github pull #2932 from greglandrum)
1259  - Add support for phosphine and arsine chirality
1260 (github issue #2949 from wopozka)
1261  - A couple additions to the extended Hueckel integration
1262 (github pull #2955 from greglandrum)
1263  - Add BCUT 2D descriptors
1264 (github pull #2957 from bp-kelley)
1265  - Add multithreaded pattern/fp generator
1266 (github pull #2973 from bp-kelley)
1267  - Description for the data files.
1268 (github pull #2975 from zhentg)
1269  - Enable larger ring matches in SMARTS expressions
1270 (github pull #2981 from d-b-w)
1271  - ScaffoldNetwork rearrangements
1272 (github pull #2985 from greglandrum)
1273  - add add_hs() and remove_hs() to JS wrappers
1274 (github pull #2986 from greglandrum)
1275  - Add Atom Feature Vectors
1276 (github pull #2988 from thegodone)
1277  - Add CoulombMat calculator
1278 (github pull #2993 from thegodone)
1279  - Update azure-pipelines.yml
1280 (github pull #2997 from greglandrum)
1281  - Improve Conformational Sampling of Small and Large Ring Molecules
1282 (github pull #2999 from hjuinj)
1283  - Fix atom highlighting in notebook PNGs
1284 (github pull #3000 from greglandrum)
1285  - adds a one-liner for getting a vector of random smiles for a molecule
1286 (github pull #3002 from greglandrum)
1287  - Allow enhanced stereo to be used in substructure search
1288 (github pull #3003 from d-b-w)
1289  - Add support for the rest of the v3000 atom properties
1290 (github pull #3007 from greglandrum)
1291  - Move jupyter extension logging to the python logger
1292 (github pull #3008 from bp-kelley)
1293  - Commit of 2D draw annotation.
1294 (github pull #3010 from DavidACosgrove)
1295  - Update Maeparser & Coordgen Dependencies
1296 (github pull #3011 from ricrogz)
1297  - Remove unnecessary files
1298 (github pull #3012 from e-kwsm)
1299  - allow retrieval of the atoms/bonds modified by the tautomerization
1300 (github pull #3013 from greglandrum)
1301  - Add 5 new recipes to Cookbook
1302 (github pull #3014 from vfscalfani)
1303  - Turns on cairo support (and testing) in the Azure DevOps CI builds
1304 (github pull #3022 from greglandrum)
1305  - Added support for Python FMCS functors
1306 (github pull #3023 from ptosco)
1307  - add random seed to docs to get reproducible conformations
1308 (github pull #3026 from greglandrum)
1309  - update docs for 2020.03
1310 (github pull #3028 from greglandrum)
1311  - update Getting Started in C++ document
1312 (github pull #3039 from DavidACosgrove)
1313
1314
1315
1316## Deprecated code (to be removed in a future release):
1317- To improve API consistency of the exceptions in RDKit with the default ones in
1318  the STL, the several `message()` methods and `Invariant::getMessage()` in RDKit's
1319  exceptions are from now on deprecated in favor of `what()`. Both `message()` and
1320  `Invariant::getMessage()` will be removed in the next release.
1321- The old MolHash code should be considered deprecated. This release introduces
1322  a more flexible alternative. Specifically the following pieces will be removed in the next release:
1323  - The python functionality `rdkit.Chem.rdMolHash.GenerateMoleculeHashString()`
1324  - The C++ functionality directly present in the header file `GraphMol/MolHash/MolHash.h`
1325
1326# Release_2019.09.1
1327(Changes relative to Release_2019.03.1)
1328
1329## Important
1330- The atomic van der Waals radii used by the RDKit were corrected/updated in #2154.
1331  This leads to different results when generating conformations, molecular volumes,
1332  and molecular shapes.
1333
1334## Backwards incompatible changes
1335- See the note about atomic van der Waals radii above.
1336- As part of the enhancements to the MolDraw2D class, we changed the type of
1337  DrawColour from a tuple to be an actual struct. We also added a 4th element to
1338  capture alpha values. This should have no affect on Python code (the alpha
1339  value is optional when providing color tuples), but will require changes to C++
1340  and Java/C# code that is using DrawColour.
1341- When reading Mol blocks, atoms with the symbol "R" are now converted into
1342  queries that match any atom when doing a substructure search (analogous to "*"
1343  in SMARTS). The previous behavior was to only match other dummy atoms
1344- When loading SDF files using PandasTools.LoadSDF(), we now default to
1345  producing isomeric smiles in pandas tables.  To reproduce the original
1346  behavior, use isomericSmiles=False in the call to the function.
1347- The SMARTS generated by the RDKit no longer contains redundant wildcard
1348  queries. This means the SMARTS strings generated by this release will generally
1349  be different from that in previous releases, although the results produced by
1350  the queries should not change.
1351- The RGroupDecomposition code now removes Hs from output R groups by default.
1352  To restore the old behavior create an RGroupDecompositionParameters object and
1353  set removeHydrogensPostMatch to false.
1354- The default values for some of the new fingerprint generators have been changed so
1355  that they more closely resemble the original fingerprinting code. In
1356  particular most fingerprinters no longer do count simulation by default and
1357  the RDKit fingerprint now sets two bits per feature by default.
1358- The SMARTS generated for MCS results using the ringMatchesRingOnly or
1359  completeRingsOnly options now includes ring-membership queries.
1360
1361## Highlights:
1362- The substructure matching code is now about 30% faster. This also improves the
1363  speed of reaction matching and the FMCS code. (#2500)
1364- A minimal JavaScript wrapper has been added as part of the core release. (#2444)
1365- It's now possible to get information about why molecule sanitization failed. (#2587)
1366- A flexible new molecular hashing scheme has been added. (#2636)
1367
1368## Acknowledgements:
1369Patricia Bento, Francois Berenger, Jason Biggs, David Cosgrove, Andrew Dalke,
1370Thomas Duigou, Eloy Felix, Guillaume Godin, Lester Hedges, Anne Hersey,
1371Christoph Hillisch, Christopher Ing, Jan Holst Jensen, Gareth Jones, Eisuke
1372Kawashima, Brian Kelley, Alan Kerstjens, Karl Leswing, Pat Lorton, John
1373Mayfield, Mike Mazanetz, Dan Nealschneider, Noel O'Boyle, Stephen Roughley,
1374Roger Sayle, Ricardo Rodriguez Schmidt, Paula Schmiel, Peter St. John, Marvin
1375Steijaert, Matt Swain, Amol Thakkar Paolo Tosco, Yi-Shu Tu, Ricardo Vianello,
1376Marc Wittke, '7FeiW', 'c56pony', 'sirbiscuit'
1377
1378
1379## Bug Fixes:
1380  - MCS returning partial rings with completeRingsOnly=True
1381 (github issue #945 from greglandrum)
1382  - Alternating canonical SMILES for fused ring with N
1383 (github issue #1028 from greglandrum)
1384  - Atom index out of range error
1385 (github issue #1868 from A-Thakkar)
1386  - Incorrect cis/trans stereo symbol for conjugated ring
1387 (github issue #2023 from baoilleach)
1388  - Hardcoded max length of SMARTs string cut of input query for FragCatlog
1389 (github issue #2163 from 7FeiW)
1390  - VSA_EState {1, ..., 10} calculated by rdkit doesn't seem correct.
1391 (github issue #2372 from c56pony)
1392  - MolStandardize: FragmentRemover should not sanitize fragments
1393 (github issue #2411 from greglandrum)
1394  - MolStandardize: combinatorial explosion in Normalizer
1395 (github issue #2414 from greglandrum)
1396  - MCS code doesn't return envelope MCS if CompleteRingsOnly is true
1397 (github issue #2420 from greglandrum)
1398  - RemoveHs() does not remove all hydrogens.
1399 (github issue #2422 from paulaju)
1400  - Incorrect assignment of explicit Hs to Al+3 read from mol block
1401 (github issue #2423 from greglandrum)
1402  - Cannot set maxProducts > 1000 in RunReactants
1403 (github issue #2427 from tduigou)
1404  - Chem.MolStandardize.standardize.Standardizer drops molecular properties
1405 (github pull #2431 from lilleswing)
1406  - Canon::rankMolAtoms results in crossed double bonds in rings
1407 (github issue #2437 from greglandrum)
1408  - make boost::iostreams optional
1409 (github pull #2440 from greglandrum)
1410  - Fix/rgroup sdf isotope
1411 (github pull #2449 from bp-kelley)
1412  - Uncharger incorrectly removing charge from boron anions
1413 (github issue #2452 from greglandrum)
1414  - Add java builds to azure devops
1415 (github pull #2460 from greglandrum)
1416  - Cart fixes
1417 (github pull #2462 from jones-gareth)
1418  - Typo in UFF torsion terms for SP2-SP2
1419 (github issue #2463 from jasad1)
1420  - Negative atom map values cause depickling to fail
1421 (github issue #2465 from greglandrum)
1422  - Deserialization failures crash Java wrapper
1423 (github issue #2466 from greglandrum)
1424  - rdkit.six fix and cleanup
1425 (github pull #2469 from rvianello)
1426  - dummy atom queries are flagged as complex
1427 (github issue #2471 from greglandrum)
1428  - 3D structure display broken in jupyter notebook
1429 (github issue #2473 from greglandrum)
1430  - Inconsistent defaults for nonBondedThresh in MMFF optimization
1431 (github issue #2475 from greglandrum)
1432  - Fix/rgroup multiple labels
1433 (github pull #2481 from bp-kelley)
1434  - 2D Depiction clipped atom highlighting
1435 (github issue #2486 from DavidACosgrove)
1436  - BRICSBuild now passes scrambleReagents to children
1437 (github pull #2488 from greglandrum)
1438  - Pattern Fingerprint Issues
1439 (github issue #2501 from jones-gareth)
1440  - CMake Error: Wrap directories being used when python build is turned off
1441 (github issue #2516 from jasondbiggs)
1442  - - fixes ResonanceMolSupplier bug in perceiving conjugated groups
1443 (github pull #2517 from ptosco)
1444  - Fix/mmff threadsafety issues
1445 (github pull #2518 from bp-kelley)
1446  - update expected SVG output in cartridge tests
1447 (github pull #2520 from greglandrum)
1448  - fix to SDWriter docs
1449 (github pull #2521 from pstjohn)
1450  - Fix the azure pipelines builds
1451 (github pull #2522 from greglandrum)
1452  - Code cleanups from PVS/Studio
1453 (github pull #2531 from greglandrum)
1454  - getAtomNeighbors() and getAtomBonds() not in SWIG wrappers.
1455 (github issue #2532 from greglandrum)
1456  - Default sanitizerxn doesn't aromatize if possible
1457 (github issue #2547 from bp-kelley)
1458  - Add RDKIT_FILEPARSERS_EXPORT to finishMolProcessing
1459 (github pull #2551 from d-b-w)
1460  - Chem.rdFMCS.FindMCS hangs for certain ligand pairs
1461 (github issue #2581 from lohedges)
1462  - fix the inclusion path for the targets file (#2584)
1463 (github pull #2589 from rvianello)
1464  - Fix inocuous typo/bug in Dative bond matching
1465 (github pull #2593 from ricrogz)
1466  - E/Z and CIS/TRANS stereo bonds are incorrectly matched
1467 (github pull #2596 from ricrogz)
1468  - Uncharger ignores dications
1469 (github issue #2602 from greglandrum)
1470  - Possible Garbage Collection Bug in Pharmacophore Generation
1471 (github issue #2603 from cing)
1472  - Uncharger incorrectly neutralizes cations when non-neutralizable anions are present.
1473 (github issue #2605 from greglandrum)
1474  - Bad valence corrections on Pb, Sn
1475 (github issue #2606 from greglandrum)
1476  - Pb and Sn should support valence 2
1477 (github issue #2607 from greglandrum)
1478  - Uncharger incorrectly modifying a zwitterion
1479 (github issue #2610 from greglandrum)
1480  - CanonicalRankAtomsInFragment breakTies doesn't
1481 (github issue #2611 from bp-kelley)
1482  - Pattern fingerprint failing substructure condition in very large molecules
1483 (github issue #2614 from greglandrum)
1484  - Memory leak with Chem.Atom() constructor
1485 (github issue #2639 from AlanKerstjens)
1486  - Fixes: Atoms in non-standard valences not being properly written to mol blocks
1487 (github pull #2646 from greglandrum)
1488  - C++ MCS code returns a null MCS between methylcyclopentane and methylcyclohexane
1489 (github issue #2662 from ptosco)
1490  - CXSMILES writer has error if mol comes from v3000 molfile
1491 (github issue #2666 from d-b-w)
1492  - MolToCXSmiles generates error for empty molecule
1493 (github issue #2667 from greglandrum)
1494  - fix a problem with normalize, ringinfo, and fragments
1495 (github pull #2685 from greglandrum)
1496  - Error when a squiggle bond is in an aromatic ring
1497 (github issue #2695 from greglandrum)
1498  - Cannot combine multiple range queries on a single atom.
1499 (github issue #2709 from greglandrum)
1500  - setBondStereoFromDirections() returning incorrect results.
1501 (github issue #2712 from greglandrum)
1502  - update supplier documentation to reflect python 3 iterator syntax
1503 (github pull #2719 from greglandrum)
1504  - removeHs messing up double bond stereo in partially sanitized molecules
1505 (github issue #2721 from greglandrum)
1506  - seg fault in ReactionRunner
1507 (github issue #2722 from greglandrum)
1508  - Intermittent test failures for JavaDistanceGeometryTests
1509 (github issue #2727 from greglandrum)
1510  - Fixes a bug in TorsionConstraint
1511 (github pull #2732 from ptosco)
1512  - Apply fix for #1592 to _MolsToGridSVG
1513 (github pull #2737 from yishutu)
1514
1515## New Features and Enhancements:
1516  - Added rankAtoms to ROMol wrapper and added Java test case
1517 (github pull #1540 from sroughley)
1518  - Use van der Waals radii from blue obelisk
1519 (github pull #2154 from UnixJunkie)
1520  - add generateDepictionMatching2DStructure() to SWIG wrappers
1521 (github issue #2239 from greglandrum)
1522  - Added OptimizeMoleculeConfs with pre-generated force-field
1523 (github pull #2401 from ptosco)
1524  - FreeSASA improvements
1525 (github pull #2402 from ptosco)
1526  - Speed up symmetrizeSSSR
1527 (github issue #2403 from d-b-w)
1528  - Trim whitespace from mol fragment SMARTS and check SMARTS presence
1529 (github pull #2406 from ricrogz)
1530  - Run clang-tidy over the entire codebase
1531 (github pull #2408 from greglandrum)
1532  - Enable Azure Pipelines builds for CI
1533 (github pull #2409 from ricrogz)
1534  - Add RDProps interface to Conformers
1535 (github issue #2441 from greglandrum)
1536  - Add minimal JavaScript wrapper
1537 (github pull #2444 from greglandrum)
1538  - Fixes annoying warnings on MSVC
1539 (github pull #2454 from ptosco)
1540  - add prepareMolsBeforeDrawing option for drawMols
1541 (github pull #2455 from greglandrum)
1542  - computeGasteigerCharges quality of life improvement for python api
1543 (github issue #2480 from bp-kelley)
1544  - Preserve bond direction in fragmentOnBonds
1545 (github pull #2484 from greglandrum)
1546  - SanitizeRxn code and docstring cleanup
1547 (github pull #2491 from greglandrum)
1548  - Support XYZ format for output
1549 (github pull #2498 from e-kwsm)
1550  - vf2 optimisations
1551 (github pull #2500 from johnmay)
1552  - Python wrap enhanced stereo setters
1553 (github pull #2509 from d-b-w)
1554  - Fix the azure pipelines builds
1555 (github pull #2522 from greglandrum)
1556  - add a script for benchmarking fingerprint screenout and substructure performance
1557 (github pull #2523 from greglandrum)
1558  - make "R" in CTABs an AtomNull query
1559 (github pull #2528 from greglandrum)
1560  - Expose SDF loading options to LoadSDF
1561 (github pull #2534 from bp-kelley)
1562  - Remove unused ctest: testCanon
1563 (github pull #2541 from ricrogz)
1564  - Update maeparser and coordgen versions
1565 (github pull #2542 from ricrogz)
1566  - Improved handling of bond stereo in reactions
1567 (github pull #2553 from ricrogz)
1568  - Code simplification for fingerprints to np array
1569 (github pull #2557 from ChrisHill8)
1570  - Integrate Unique Ring Families from RingDecomposerLib
1571 (github pull #2558 from greglandrum)
1572  - Allow providing a bounds matrix to EmbedMol
1573 (github pull #2560 from greglandrum)
1574  - Enable SimilarityMaps in C++
1575 (github pull #2562 from greglandrum)
1576  - Do not run UnitTestMCS.py::TestTimeout in debug builds
1577 (github pull #2569 from ricrogz)
1578  - Expose more drawing methods to Python
1579 (github issue #2571 from greglandrum)
1580  - Allow Point2D to be constructed from Point3D
1581 (github pull #2572 from greglandrum)
1582  - Allows dative bonds to be drawn
1583 (github pull #2573 from greglandrum)
1584  - Allow identification of chemistry problems
1585 (github pull #2587 from greglandrum)
1586  - Adds MolFragmentToSmarts to generate smarts for a subset of a Molecule
1587 (github pull #2594 from d-b-w)
1588  - Removal of redundant wildcards in SMARTS (Null Atom/Bond Query combination)
1589 (github pull #2595 from ricrogz)
1590  - Support range-based charge queries from SMARTS
1591 (github issue #2604 from greglandrum)
1592  - Keep PDB info from Maestro files if available
1593 (github pull #2619 from lorton)
1594  - optimization of the MolStandardize code
1595 (github pull #2621 from greglandrum)
1596  - Assign stereo bond labels in molecules read from SMARTS
1597 (github pull #2623 from ricrogz)
1598  - Automatically load the ipython extensions running in Jupyter
1599 (github pull #2626 from bp-kelley)
1600  - draw zero-order bonds
1601 (github pull #2630 from greglandrum)
1602  - Updated cartridge documentation
1603 (github pull #2635 from msteijaert)
1604  - Add new mol hashing code
1605 (github pull #2636 from greglandrum)
1606  - emolecules link updated
1607 (github pull #2638 from marcwittke)
1608  - Update maeparser to 1.2.1 and coorgen to 1.3.1
1609 (github pull #2652 from ricrogz)
1610  - Get numpy include dir programmatically
1611 (github pull #2653 from sirbiscuit)
1612 - Fix long columns pandas
1613 (github pull #2655 from sirbiscuit)
1614  - Added AtomComparator.AtomCompareAnyHeavyAtom and test cases to FMCS code
1615 (github pull #2656 from sroughley)
1616  - The C++ MCS code generates ambiguous SMARTS strings
1617 (github issue #2663 from ptosco)
1618  - add bond-selector info to SVGs
1619 (github pull #2664 from greglandrum)
1620  - support writing CXSMILES from the cartridge
1621 (github issue #2668 from greglandrum)
1622  - support the new hashing code in the cartridge
1623 (github pull #2671 from greglandrum)
1624  - Adds additional capabilities to the minimal JS wrapper
1625 (github pull #2676 from greglandrum)
1626  - Add MolHash to Java Wrappers
1627 (github issue #2677 from sroughley)
1628  - A bunch of changes to the new fingerprinter code
1629 (github pull #2679 from greglandrum)
1630  - Add viewBox to default SVG output
1631 (github issue #2680 from bp-kelley)
1632  - Allow Java to see RGroup labels in the std::map wrapper.
1633 (github pull #2681 from bp-kelley)
1634  - Update maeparser to v1.2.2.
1635 (github pull #2682 from ricrogz)
1636  - Update coordgen to v1.3.2
1637 (github pull #2686 from ricrogz)
1638  - Add a drawOptions object to IPythonConsole
1639 (github pull #2691 from greglandrum)
1640  - Make StructureGroups editable from Python
1641 (github pull #2692 from greglandrum)
1642  - Update documentation
1643 (github pull #2697 from greglandrum)
1644  - Make removeHydrogensPostMatch=true the default for RGD
1645 (github pull #2701 from greglandrum)
1646  - Eat our own dogfood, Clone is deprecated so use copy
1647 (github pull #2711 from bp-kelley)
1648  - The MCS smartsString may still be ambiguous
1649 (github issue #2714 from ptosco)
1650  - Add threaded runner for the filter catalog
1651 (github pull #2718 from bp-kelley)
1652  - Add Leader picker implementation
1653 (github pull #2724 from greglandrum)
1654  - Add consideration of ring fusion to the MCS algorithm
1655 (github pull #2731 from ptosco)
1656
1657
1658## Deprecated code (to be removed in a future release):
1659
1660- The old MolHash code should be considered deprecated. This release introduces
1661  a more flexible alternative. Specifically the following pieces will be removed in a future release:
1662  - The python functionality `rdkit.Chem.rdMolHash.GenerateMoleculeHashString()`
1663  - The C++ functionality directly present in the header file `GraphMol/MolHash/MolHash.h`
1664
1665
1666# Release_2019.03.1
1667(Changes relative to Release_2018.09.1)
1668
1669## REALLY IMPORTANT ANNOUNCEMENT
1670- As of this realease (2019.03.1) the RDKit no longer supports Python 2. Please
1671  read this rdkit-discuss post to learn what your options are if you need to
1672  keep using Python 2:
1673  https://www.mail-archive.com/rdkit-discuss@lists.sourceforge.net/msg08354.html
1674
1675## Backwards incompatible changes
1676- The fix for github #2245 means that the default behavior of the MaxMinPicker
1677  is now truly random. If you would like to reproduce the previous behavior,
1678  provide a seed value of 42.
1679- The uncharging method in the MolStandardizer now attempts to generate
1680  canonical results for a given molecule. This may result in different output
1681  for some molecules.
1682
1683## Highlights:
1684- There's now a Japanese translation of large parts of the RDKit documentation
1685- SGroup data can now be read from and written to Mol/SDF files
1686- The enhanced stereo handling has been improved: the information is now
1687  accessible from Python, EnumerateStereoisomers takes advantage of it, and it
1688  can be read from and written to CXSmiles
1689
1690## Acknowledgements:
1691Michael Banck, Francois Berenger, Thomas Blaschke, Brian Cole, Andrew Dalke,
1692Bakary N'tji Diallo, Guillaume Godin, Anne Hersey, Jan Holst Jensen, Sunhwan Jo,
1693Brian Kelley, Petr Kubat, Karl Leswing, Susan Leung, John Mayfield, Adam Moyer,
1694Dan Nealschneider, Noel O'Boyle, Stephen Roughley, Takayuki Serizawa, Gianluca
1695Sforna, Ricardo Rodriguez Schmidt, Gianluca Sforna, Matt Swain, Paolo Tosco,
1696Ricardo Vianello, 'John-Videogames', 'magattaca', 'msteijaert', 'paconius',
1697'sirbiscuit'
1698
1699## Bug Fixes:
1700  - PgSQL: fix boolean definitions for Postgresql 11
1701 (github pull #2129 from pkubatrh)
1702  - update fingerprint tutorial notebook
1703 (github pull #2130 from greglandrum)
1704  - Fix typo in RecapHierarchyNode destructor
1705 (github pull #2137 from iwatobipen)
1706  - SMARTS roundtrip failure
1707 (github issue #2142 from mcs07)
1708  - Error thrown in rdMolStandardize.ChargeParent
1709 (github issue #2144 from paconius)
1710  - SMILES parsing inconsistency based on input order
1711 (github issue #2148 from coleb)
1712  - MolDraw2D: line width not in python wrapper
1713 (github issue #2149 from greglandrum)
1714  - Missing Python API Documentation
1715 (github issue #2158 from greglandrum)
1716  - PgSQL: mol_to_svg() changes input molecule.
1717 (github issue #2174 from janholstjensen)
1718  - Remove Unicode From AcidBasePair Name
1719 (github pull #2185 from lilleswing)
1720  - Inconsistent treatment of `[as]` in SMILES and SMARTS
1721 (github issue #2197 from greglandrum)
1722  - RGroupDecomposition fixes, keep userLabels more robust onlyMatchAtRGroups
1723 (github pull #2202 from bp-kelley)
1724  - Fix TautomerTransform in operator=
1725 (github pull #2203 from bp-kelley)
1726  - testEnumeration hangs/takes where long on 32bit architectures
1727 (github issue #2209 from mbanck)
1728  - Silencing some Python 3 warning messages
1729 (github pull #2223 from coleb)
1730  - removeHs shouldn't remove atom lists
1731 (github issue #2224 from rvianello)
1732  - failure round-tripping mol block with Q atom
1733 (github issue #2225 from rvianello)
1734  - problem round-tripping mol files that include bond topology info
1735 (github issue #2229 from rvianello)
1736  - aromatic main-group atoms written to SMARTS incorrectly
1737 (github issue #2237 from greglandrum)
1738  - findPotentialStereoBonds() stopping too early
1739 (github issue #2244 from greglandrum)
1740  - MinMax Diversity picker seeding shows deterministic / non-random behaviour
1741 (github issue #2245 from sroughley)
1742  - Fix to serialize binary strings
1743 (github pull #2264 from bp-kelley)
1744  - Recognize N in three-membered rings as potentially chiral
1745 (github issue #2268 from greglandrum)
1746  - Failure when parsing mol block with M  PXA
1747 (github issue #2277 from greglandrum)
1748  - query-query matching failing for atoms constructed from SMARTS
1749 (github issue #2299 from greglandrum)
1750  - SMILES parsing fails for dative ring closures
1751 (github issue #2303 from greglandrum)
1752  - Missing Dict.h overload: std::string Dict::getVal<std::string>
1753 (github issue #2308 from greglandrum)
1754  - fix a problem with the random pickers test
1755 (github pull #2310 from greglandrum)
1756  - Some tests still failing on less common platforms.
1757 (github issue #2311 from giallu)
1758  - AddHs() using 3D coordinates with 2D conformations
1759 (github pull #2328 from greglandrum)
1760  - change to make the SWIG builds work on windows
1761 (github pull #2340 from greglandrum)
1762  - uncharger behaves differently on molecules constructed from mol blocks and SMILES
1763 (github issue #2346 from greglandrum)
1764  - Memory Error When Writing ToBinary With "AllProps"
1765 (github issue #2352 from atom-moyer)
1766  - Seg fault on init if RDBASE is not set
1767 (github issue #2368 from greglandrum)
1768  - PandasTools.FrameToGridImage() fails with SVG output
1769 (github issue #2380 from greglandrum)
1770  - ClusterMols.GetDistanceMatrix throws a type error in Python 3
1771 (github issue #2387 from John-Videogames)
1772  - Uncharging logic reversed: protonate non-acids first
1773 (github issue #2392 from Anne Hersey)
1774
1775## New Features and Enhancements:
1776  - Allow access to Enhanced Stereochemistry information from Python
1777 (github issue #2108 from d-b-w)
1778  - Adopt EnumerateStereoisomers to use extended stereo
1779 (github issue #2109 from greglandrum)
1780  - Enable ctest -T memcheck
1781 (github pull #2113 from ricrogz)
1782  - Support for parsing/writing SGroups in SD Mol files
1783 (github pull #2138 from ricrogz)
1784   - Rename the #define _DEBUG to MMPA_DEBUG in mmpa.cpp
1785 (github pull #2140 from baoilleach)
1786  - MolDraw2D: line width should be controlled by MolDrawOptions
1787 (github issue #2151 from greglandrum)
1788  - Some refactoring of the distance geometry code
1789 (github pull #2153 from greglandrum)
1790  - Less warnings
1791 (github pull #2155 from UnixJunkie)
1792  - ShapeTverskyIndex python function
1793 (github pull #2156 from susanhleung)
1794  - Skip compound if smiles conversion fails
1795 (github pull #2168 from msteijaert)
1796  - Fix #2176: InChI functions should return NULL on un-InChI-able input molecules.
1797 (github pull #2177 from janholstjensen)
1798  - Update installation instructions for Linux
1799 (github pull #2181 from sirbiscuit)
1800  - Update CMake rules to find external coorgen & maeparser libs
1801 (github pull #2184 from ricrogz)
1802  - Update to use the travis Xenial environment
1803 (github pull #2200 from greglandrum)
1804  - Do not allow PandasTools to overwrite pandas settings
1805 (github pull #2206 from sirbiscuit)
1806  - re-enable (and update) the file parser tests
1807 (github pull #2208 from greglandrum)
1808  - Added documentation files written in Japanese into Book directory
1809 (github pull #2210 from magattaca)
1810  - Add C++ convenience function for drawing ROMols
1811 (github issue #2220 from greglandrum)
1812  - Change boost int types to std types
1813 (github pull #2233 from bp-kelley)
1814  - Added exports for SGroup functions
1815 (github pull #2242 from ricrogz)
1816  - Use coordMap when starting embedding from random coords
1817 (github issue #2246 from greglandrum)
1818  - Improve interactivity of output SVG
1819 (github pull #2253 from greglandrum)
1820  - Add options for substructure searching
1821 (github pull #2254 from greglandrum)
1822  - keep extra information about bonds from Mol files
1823 (github pull #2260 from greglandrum)
1824  - Allow converting mol blocks directly to InChI
1825 (github pull #2262 from greglandrum)
1826  - Patch/pains updates
1827 (github pull #2272 from johnmay)
1828  - add warning for 2D conformations flagged as 3D
1829 (github pull #2273 from greglandrum)
1830  - Store extra CXSMILES data as a property
1831 (github pull #2281 from ricrogz)
1832  - Parse enhanced stereo information from CXSMILES
1833 (github pull #2282 from ricrogz)
1834  - Robustify parsing of CTABs and SGROUPs
1835 (github pull #2283 from greglandrum)
1836  - Write enhanced stereo to cxsmiles
1837 (github pull #2290 from greglandrum)
1838  - Allow custom type-handlers in the RDProps interface
1839 (github pull #2293 from bp-kelley)
1840  - Add serialization to SubstructLibrary
1841 (github pull #2295 from bp-kelley)
1842  - support reading/writing atom props from SD files
1843 (github pull #2297 from greglandrum)
1844  - Add test for issue #2285, fix molbundle test
1845 (github pull #2301 from bp-kelley)
1846  - Update maeparser & coordgen libraries
1847 (github pull #2302 from ricrogz)
1848  - Mem errors clean up
1849 (github pull #2305 from ricrogz)
1850  - Add definition of MolFragmentToCXSmiles
1851 (github pull #2307 from greglandrum)
1852  - Doc update
1853 (github pull #2312 from greglandrum)
1854  - Adds gzstream stream, exposes to swig
1855 (github pull #2314 from bp-kelley)
1856  - Remove a bunch of Python2-related warts
1857 (github pull #2315 from greglandrum)
1858  - some much-needed optimization work on the new property lists
1859 (github pull #2317 from greglandrum)
1860  - Build warnings revisited
1861 (github pull #2318 from ricrogz)
1862  - change bogus "3D" to "2D" in a test file
1863 (github pull #2319 from greglandrum)
1864  - Allow copying atoms in Python
1865 (github pull #2322 from d-b-w)
1866  - fixes an r-group symmetrization problem
1867 (github pull #2324 from greglandrum)
1868  - simple docstring fix
1869 (github pull #2326 from sunhwan)
1870  - allow using system's catch2 for tests
1871 (github pull #2327 from giallu)
1872  - Python wrap DetectAtomStereoChemistry from MolFileStereochem.h
1873 (github issue #2329 from d-b-w)
1874  - switch to using cmake to handle the C++ spec
1875 (github pull #2334 from greglandrum)
1876  - WIP: optional integration with YAeHMOP
1877 (github pull #2335 from greglandrum)
1878  - Exposes substructlibrary to swig
1879 (github pull #2337 from bp-kelley)
1880  - Add a skip_all_if_match option to the FragmentRemover
1881 (github pull #2338 from greglandrum)
1882  - Dev/general csharp fixes
1883 (github pull #2341 from bp-kelley)
1884  - Add a read-only Python wrapper for SGroups
1885 (github pull #2343 from greglandrum)
1886  - Expose RGroupDecomposition to SWIG
1887 (github pull #2345 from greglandrum)
1888  - update debian build script to python3
1889 (github pull #2350 from UnixJunkie)
1890  - add GetStereoIsomerCount() function to EnumerateStereoisomers
1891 (github pull #2354 from greglandrum)
1892  - Update coordgenlibs to v1.2.2
1893 (github pull #2355 from ricrogz)
1894  - Small fixes to get DLLs to build on Windows
1895 (github pull #2356 from ptosco)
1896  - Boost deprecation warning
1897 (github pull #2357 from d-b-w)
1898  - Removes an extra debugging cerr statment
1899 (github pull #2360 from d-b-w)
1900  - Preserve enhanced stereo in reactions
1901 (github pull #2366 from d-b-w)
1902  - improvements to the Uncharge functionality
1903 (github pull #2374 from greglandrum)
1904  - Add ExplicitBitVect prop and query
1905 (github pull #2384 from bp-kelley)
1906  - Allow components of the MolStandardize code to be initialized from streams
1907 (github pull #2385 from greglandrum)
1908
1909
1910# Release_2018.09.1
1911(Changes relative to Release_2018.03.1)
1912
1913## Deprecations
1914- As part of the changes and cleaning up done for #1836 many of the `#defines`
1915  used in the RDKit have been renamed.
1916    - `USE_BUILTIN_POPCOUNT` -> `RDK_OPTIMIZE_NATIVE`
1917    - `RDK_THREADSAFE_SSS` -> `RDK_BUILD_THREADSAFE_SSS`
1918    - `BUILD_COORDGEN_SUPPORT` -> `RDK_BUILD_COORDGEN_SUPPORT`
1919    - `BUILD_AVALON_SUPPORT` -> `RDK_BUILD_AVALON_SUPPORT`
1920    - `BUILD_INCHI_SUPPORT` -> `RDK_BUILD_INCHI_SUPPORT`
1921    - `BUILD_SLN_SUPPORT` -> `RDK_BUILD_SLN_SUPPORT`
1922    - `RDK_CAIRO_BUILD` -> `RDK_BUILD_CAIRO_SUPPORT`
1923
1924## Documentation updates
1925We have moved to using Sphinx's autodoc to create the Python API documentation.
1926`epydoc`, the tool we used to use, is no longer actively developed and only supports
1927Python2. There will undoubtedly be problems associated with the change; if you notice
1928anything missing in the documetation or something that's really badly formatted,
1929please either let us know or submit a PR with a fix.
1930
1931## Backwards incompatible changes
1932This release includes a set of changes to make the default arguments to common
1933functions less error prone (github #1679).
1934- GetAtomSmiles() now generates isomeric SMILES by default.
1935- The ringMatchesRingOnly option to the FindMCS() function now applies to
1936  atom-atom matches as well as bond-bond matches.
1937- The Python functions EmbedMolecule() and EmbedMultipleConfs() now use the
1938  ETKDG algorithm by default instead of standard distance geometry.
1939
1940## Highlights:
1941- This release includes two contributions from the Google Summer of Code:
1942   - A new generalized fingerprint generator.
1943   - An integration/port of MolVS to the core RDKit.
1944  The API on both of these may change a bit with future releases.
1945- The rdkit.Chem.Draw module now includes functions for depicting fingerprint
1946  bits. Morgan and RDKit fingerprints are currently supported.
1947
1948## Acknowledgements:
1949Boran Adas, Francois Berenger, Thomas Blaschke,  Brian Cole, Andrew Dalke, Guillaume Godin,
1950Brice Hoff, Brian Kelley, Karl Leswing, Susan Leung, Pat Lorton, Josh Meyers, Hirotomo Moriwaki,
1951Dan Nealschneider, Noel O'Boyle, Pavel Raiskup, Sereina Riniker, Ricardo Rodriguez Schmidt,
1952Stephen Roughley, Roger Sayle, Takayuki Serizawa, Rim Shayakhmetov, Gregory Simm, Jon Sorenson,
1953Matt Swain, Kiran Telukunta, Paulo Tosco, Alain Vaucher, Maciej Wójcikowski, '0xDECAFC0FFEE',
1954'jaechanglim', 'paconius'
1955
1956## Contrib updates:
1957- The FastCluster code has been updated.
1958
1959## New Features and Enhancements:
1960  - expose MolChemicalFeature.{get,set}ActiveConformer()  to python
1961 (github issue #1636 from greglandrum)
1962  - added Scripts/create_deb_packages.sh
1963 (github pull #1655 from UnixJunkie)
1964  - Start to use Catch2 for new tests
1965 (github pull #1732 from greglandrum)
1966  - Switch DbCLI scripts from optparse to argparse
1967 (github issue #1778 from greglandrum)
1968  - Add EEM partial charges
1969 (github pull #1828 from greglandrum)
1970  - Add header file providing access to RDKit compile time flags
1971 (github issue #1836 from greglandrum)
1972  - add control over the coordinate precision to coordgen
1973 (github pull #1847 from greglandrum)
1974  - Add Properties interface to ChemicalReactions
1975 (github pull #1848 from greglandrum)
1976  - Switch Python API documentation generation over to Sphinx autodoc
1977 (github pull #1849 from greglandrum)
1978  - expose MolOps::assignStereochemistryFrom3D() to Python
1979 (github issue #1850 from greglandrum)
1980  - bivariate_normal deprecation in mlab.py of matplotlib
1981 (github issue #1851 from telukir)
1982  - Expose minAtomRingSize() and minBondRingSize() to Python wrappers
1983 (github pull #1859 from mwojcikowski)
1984  - enable building DLLs on Windows
1985 (github pull #1861 from ptosco)
1986  - Fix compatibility with Boost 1.67+
1987 (github pull #1864 from mcs07)
1988  - Don't manually set RDConfig paths in conda env
1989 (github pull #1865 from mcs07)
1990  - Make svg xmlns prefix use more consistent
1991 (github pull #1866 from mcs07)
1992  - Add custom 3D Descriptors
1993 (github pull #1867 from greglandrum)
1994  - Add initial Maestro format Supplier using maeparser library
1995 (github pull #1872 from lorton)
1996  - add queryAtomNonHydrogenDegree() query operation
1997 (github issue #1873 from greglandrum)
1998  - Add an auto-populated file with cmake config options
1999 (github pull #1874 from greglandrum)
2000  - Custom property VSA
2001 (github pull #1884 from sriniker)
2002  - Swap maeparser and coordgen dependencies to use releases
2003 (github issue #1887 from greglandrum)
2004  - expose MolDraw2DSVG.tagAtoms() to python
2005 (github pull #1897 from greglandrum)
2006  - allow the cleanup step of Mol2 parsing to be disabled
2007 (github pull #1898 from greglandrum)
2008  - Allow Atom.GetAtomSmarts() to return isomeric SMILES
2009 (github pull #1902 from greglandrum)
2010   - Allow coordgen and maeparser to be built as static libraries
2011 (github pull #1909 from ptosco)
2012  - Support reaction_to_svg() in cartridge
2013 (github issue #1916 from greglandrum)
2014  - Addresses several minor warning messages during the build
2015 (github pull #1935 from d-b-w)
2016  - Some optimization of the queries constructed from SMARTS
2017 (github pull #1940 from greglandrum)
2018  - Add ring/chain match constraints options to AdjustQueryParameters()
2019 (github issue #1943 from greglandrum)
2020  - roc calculation naming problem
2021 (github pull #1975 from 0xDECAFC0FFEE)
2022  - Fingerprinting functions should call assignStereochemistry() when necessary
2023 (github issue #1993 from bricehoff)
2024  - Dev/GSOC2018_MolVS_Integration
2025 (github pull #2002 from susanhleung)
2026  - GSoC 2018 - Fingerprints
2027 (github pull #2005 from Boranadas)
2028  - port fingerprint bit rendering code from CheTo
2029 (github pull #2008 from greglandrum)
2030  - PgSQL: add support for PostgreSQL_CONFIG cmake var
2031 (github pull #2014 from praiskup)
2032  - Add missing boost header for v1.64
2033 (github pull #2016 from gncs)
2034  - Enhanced stereo read/write support in SDF files.
2035 (github pull #2022 from d-b-w)
2036  - IPythonConsole hooks should copy the original docstring
2037 (github issue #2025 from adalke)
2038  - Allow dumping interchange information into SVG files
2039 (github pull #2030 from greglandrum)
2040  - MCS: add test for ring--non-ring matches at the atom level
2041 (github issue #2034 from greglandrum)
2042  - Ability to generate a list of possible smiles representation for a given molecule
2043 (github issue #2042 from thegodone)
2044  - add scoring test (relevant to #1975)
2045 (github pull #2064 from greglandrum)
2046  - actually run the SmilesWriterNoNames() test
2047 (github pull #2067 from greglandrum)
2048  - Add a default for maximum products generated by a reaction (maxProduc…
2049 (github pull #2069 from bp-kelley)
2050  - Add user-defined literals for parsing SMILES and SMARTS
2051 (github pull #2070 from greglandrum)
2052  - move rdInfoLog to stderr
2053 (github pull #2073 from greglandrum)
2054  - add confId argument to MolChemicalFeatureFactor::getFeaturesForMol()
2055 (github issue #2077 from greglandrum)
2056  - Expose a CMake flag to build RDKit with -rpath
2057 (github pull #2084 from coleb)
2058  - Dev/expose setquery to python
2059 (github pull #2088 from bp-kelley)
2060  - Updated .gitignore with files generated outside of build directory.
2061 (github pull #2095 from ricrogz)
2062  - Address compile warnings & trivial improvements
2063 (github pull #2097 from ricrogz)
2064  - Coordgen: stop printing Templates location
2065 (github pull #2102 from greglandrum)
2066  - Update Docs For CalcBEDROC
2067 (github pull #2103 from lilleswing)
2068
2069## Bug Fixes:
2070  - Cannot find rings for ChEBI 50252
2071 (github issue #299 from greglandrum)
2072  - Feature request: #defines to test RDKit version
2073 (github issue #1454 from baoilleach)
2074  - Atoms in residue read from pdb lose their AtomPDBResidueInfo after reaction (Bug)
2075 (github issue #1632 from hjuinj)
2076  - SMARTS parse failure for some queries involving Hs
2077 (github issue #1719 from greglandrum)
2078  - Conformer indexing bug in RDFreeSASA.cpp?
2079 (github issue #1786 from paconius)
2080  - allow libs to not be installed
2081 (github pull #1832 from greglandrum)
2082  - RWMol::addAtom(Atom,bool) missing from Java wrappers
2083 (github issue #1837 from greglandrum)
2084  - RWMol::clear now calls ROMol::initMol
2085 (github pull #1844 from bp-kelley)
2086  - Allow types.h to be included in applications that use /D_USE_MATH_DEFINES
2087 (github pull #1846 from d-b-w)
2088  - Fixes failing Python tests on Windows
2089 (github pull #1855 from ptosco)
2090  - Allow building on cygwin using -std=c++11
2091 (github pull #1856 from greglandrum)
2092  - Stop using the cmake Boost:: targets
2093 (github pull #1858 from greglandrum)
2094  - R-group Decomposition: allow H replacements when matchOnlyAtRgroups is set
2095 (github pull #1871 from bp-kelley)
2096  - Mark cartridge functions as being parallel safe
2097 (github issue #1886 from greglandrum)
2098  - Fixes locale handling on Windows
2099 (github pull #1892 from ptosco)
2100  - get the pandas tests working with pandas 0.23
2101 (github pull #1896 from greglandrum)
2102  - "make install" appears to miss RDBoost/export.h
2103 (github issue #1903 from baoilleach)
2104  - Fix curl fallback for downloading files
2105 (github pull #1904 from d-b-w)
2106  - Bond stereo information not output to SMARTS
2107 (github issue #1906 from greglandrum)
2108  - Library .so names missing RDKit?
2109 (github issue #1913 from baoilleach)
2110  - Negated atom number queries in SMARTS should not set atomic number of query atom
2111 (github issue #1920 from greglandrum)
2112  - memory leak in Get3DDistanceMatrix
2113 (github issue #1924 from jaechanglim)
2114  - Atom with bond to itself is accepted by the SMILES parser.
2115 (github issue #1925 from tblaschke)
2116  - Possibly incorrect aromatic SMILES generated for structure
2117 (github issue #1928 from baoilleach)
2118  - Using the coordgen library seems to cause a seg fault
2119 (github issue #1929 from JoshuaMeyers)
2120  - Aromaticity failure in 7-ring with charged radical carbon
2121 (github issue #1936 from bp-kelley)
2122  - Fix embarassing bug, check the counter each iteration
2123 (github pull #1939 from bp-kelley)
2124  - RuntimeError when importing rdkit.Chem.Descriptors with Python 3.7
2125 (github issue #1948 from drkeoni)
2126  - Query features in products of rxn files not properly handled
2127 (github issue #1950 from greglandrum)
2128  - ReactionToSmarts broken for multi-component templates
2129 (github issue #1955 from bp-kelley)
2130  - update knime urls in overview.md
2131 (github pull #1966 from greglandrum)
2132  - CXN extended SMILES labels are not applied to the correct atom in SMILES with explicit H
2133 (github issue #1968 from baoilleach)
2134  - MolFromSmarts MolToSmarts fails to roundtrip on patterns with chirality
2135 (github issue #1985 from bp-kelley)
2136  - QueryAtoms with atom list queries should not have the atomic number set
2137 (github issue #1988 from greglandrum)
2138  - RemoveHs not properly updating double bond stereoatoms
2139 (github issue #1990 from shayakhmetov)
2140  - Error while parsing empty atom list in Mol files.
2141 (github issue #2000 from drkeoni)
2142  - Cleanup step of sanitization sometimes sets undesired formal charges
2143 (github issue #2020 from avaucher)
2144  - GetBondSmiles() returns nothing for wedged bonds when allBondsExplicit is true
2145 (github issue #2029 from greglandrum)
2146  - PMIs and NPRs return same value between different conformer
2147 (github issue #2037 from philopon)
2148  - Failure to parse V3K mol file with bonds to multi-center linkage points
2149 (github issue #2040 from greglandrum)
2150  - patch a memory allocation problem in the maeparser v1.0.0
2151 (github pull #2044 from greglandrum)
2152  - CIPRank values from JSONDataToMols are not unsigned
2153 (github issue #2046 from greglandrum)
2154  - switch to v1.0.1 of the maeparser
2155 (github pull #2048 from greglandrum)
2156  - Update fastcluster code
2157 (github pull #2051 from greglandrum)
2158  - Fix memory leak in Dict operator=
2159 (github pull #2061 from bp-kelley)
2160  - Atom mapping lost after call to MergeQueryHs()
2161 (github issue #2062 from greglandrum)
2162  - Drawing racemic bond stereo as crossed bonds should be the default
2163 (github issue #2063 from coleb)
2164  - Moved test.h from RDBoost to RDGeneral for consistency with export.h
2165 (github pull #2074 from ptosco)
2166  - CTABs behave differently than before regarding stereo
2167 (github issue #2082 from bp-kelley)
2168  - BitInfo not complete for RDKFingerprint
2169 (github issue #2115 from greglandrum)
2170
2171## Removed code:
2172- Remove the deprecated MolDrawing code
2173 (github pull #2111 from greglandrum)
2174
2175
2176# Release_2018.03.1
2177(Changes relative to Release_2017.09.1)
2178
2179## C++11 notes
2180
2181Starting with this release, the RDKit core C++ code is written in modern C++;
2182for this release that means C++11. This means that the compilers used to build
2183it cannot be completely ancient. Here are the minimum tested versions:
2184- g++ v4.8: though note that the SLN parser code cannot be built with v4.8. It
2185  will automatically be disabled when this older compiler is used.
2186- clang v3.9: it may be that older versions of the compiler also work, but we
2187  haven't tested them.
2188- Visual Studio 2015: it may be that older versions of the compiler also work,
2189  but we haven't tested them.
2190
2191## Backwards incompatible changes
2192
2193This release includes a set of changes to make the default arguments to common
2194functions less error prone (github #1679).
2195- MolToSmiles() now generates isomeric SMILES by default.
2196- The embedding code now uses the ETKDG method by default.
2197- MolToMolBlock() will now by default generate a set of 2D coordinates for
2198  molecules when the includeStereo option is set to True. The changes are made
2199  to a copy of the molecule; the molecule itself will not be modified.
2200- The Mol file (and SDF) parser now determines atomic stereochemisty based on
2201  the 3D coordinates provided (if 3D coordinates are provided).
2202- The SMILES parser now supports CXSMILES by default (assuming that additional
2203  text that looks like CXSMILES extensions is there).
2204
2205In every case the old behavior can be obtained by providing an optional argument
2206to the function(s) mentioned.
2207
2208## Acknowledgements:
2209Boran Adas, José Emilio Sánchez Aparicio, Patrick Avery, Jason Biggs, Brian
2210Cole, Andrew Dalke, JW Feng, Peter Gedeck, Guillaume Godin, Richard Hall, Thomas
2211Heavy, Gareth Jones, Brian Kelley, Karl Leswing, Susan Leung, Chris Morris, Dan
2212Nealschneider, Noel O'Boyle, Axel Pahl, Pavel Polishchuk, Sereina Riniker, Jeff
2213van Santen, Roger Sayle, Martin Šícho, Matt Swain, Paolo Tosco, Sam Webb, Maciej
2214Wójcikowski, Nicola Zonta, 'clinntt', 'hjuinj', 'iwatobipen',
2215
2216## Highlights:
2217  - An initial version of an integration with Schrodinger's coordgen library is
2218    included. This produces much better 2D coordinates for complex molecules.
2219  - Thanks to the move to modern C++ the RDKit is now faster and uses less
2220    memory
2221  - A number of improvements were made to the PDB reader
2222  - v2 of the ETKDG torsions and potentials is now available
2223
2224## Contrib updates:
2225  - Implementation of Peter Ertl's IFG method for identifying functional groups
2226    from Guillaume Godin and Richard Hall
2227  (github pull #1813 from thegodone)
2228
2229## New Features and Enhancements:
2230  - Support InChi 1.05
2231 (github issue #1533 from greglandrum)
2232  - Update CPack to create .deb files correctly
2233 (github pull #1580 from psavery)
2234  - Initial commit of EnumerateHeterocycles
2235 (github pull #1588 from coleb)
2236  - Version 2 of ETKDG
2237 (github pull #1597 from sriniker)
2238  - GetMolFrags now optionally returns atom indices along with mols
2239 (github pull #1602 from ptosco)
2240  - NP Likeness with confidence value
2241 (github pull #1608 from apahl)
2242  - Adding an option to EnumerateStereoisomers to only return unique isomers
2243 (github pull #1612 from coleb)
2244  - Add function wedgeBond()
2245  (github issue #1615 from greglandrum)
2246  - Dev/substructlibrary docs
2247 (github pull #1620 from bp-kelley)
2248  - Turns off exception throwing for certain classes Rlabel sanitization.
2249 (github pull #1621 from bp-kelley)
2250  - Add an "MDL" aromaticity model
2251 (github issue #1622 from hjuinj)
2252  - Add support for %(NNN) notation for ring closures
2253 (github pull #1624 from baoilleach)
2254  - Enable windows build that uses cairo
2255 (github pull #1628 from greglandrum)
2256  - [MRG] Fix PDB reader + add argument to toggle proximity bonding
2257 (github pull #1629 from mwojcikowski)
2258  - Improve AddHs for molecules read from PDB
2259 (github pull #1647 from mwojcikowski)
2260  - Improved regression test for ETKDG version 2
2261 (github pull #1640 from sriniker)
2262  - RDKit interpretation of atom stereo SMILES is different from 4 other toolkits
2263 (github issue #1652 from coleb)
2264  - Treat bonds in PDB CONECT records explicitly, but make blacklisted ones zero-order.
2265 (github pull #1658 from mwojcikowski)
2266  - There is no need to enforce that (i, j) and (k, l) be bonded when setting a i, j, k, l dihedral
2267 (github pull #1673 from ptosco)
2268  - Make default arguments to common functions less error prone
2269 (github issue #1679 from greglandrum)
2270  - Add Fast cluster script
2271 (github pull #1683 from iwatobipen)
2272  - Update embedded InChI to v1.05
2273 (github pull #1684 from mcs07)
2274  - Add `AllChem.MMFFGetMoleculeForceField().CalcGradient()` to Python wrappers
2275 (github issue #1688 from theavey)
2276  - Play nice with naughty MOL blocks
2277 (github issue #1689 from jw-feng)
2278  - Make the defaults for some functions less error prone.
2279 (github pull #1690 from greglandrum)
2280  - implemented Python wrappers for computing PMI axes and moments
2281 (github pull #1700 from ptosco)
2282  - Enable range-based for loops for molecules
2283 (github pull #1701 from bp-kelley)
2284  - Support some cactvs extensions to SMARTS
2285 (github pull #1704 from greglandrum)
2286  - Integrate Coordgen
2287 (github pull #1708 from greglandrum)
2288  - Removes ATOM/BOND_SPTR in boost::graph in favor of raw pointers
2289 (github pull #1713 from greglandrum)
2290  - Set atomic properties from SMARTS
2291 (github pull #1716 from greglandrum)
2292  - Allow installation of Python tests to facilitate testing installations
2293 (github pull #1724 from greglandrum)
2294  - setAromaticity() should work even if there are aromatic atoms present
2295 (github issue #1730 from greglandrum)
2296  - Use uint32 atom and bond indices
2297 (github pull #1742 from greglandrum)
2298  - Switch from boost::thread to std::thread
2299 (github pull #1745 from greglandrum)
2300  - switch to using std::regex in the SLN parser
2301 (github pull #1746 from greglandrum)
2302  - replace the usage of rdk_auto_ptr with std::unique_ptr
2303 (github pull #1752 from greglandrum)
2304  - getMolBoundsMatrix() should do triangle bound smoothing by default
2305 (github issue #1763 from greglandrum)
2306  - Added Morgan feature fingerprints to Java API
2307 (github pull #1764 from jones-gareth)
2308  - Reaction fingerprints not exposed in Java wrapper
2309 (github issue #1776 from webbres)
2310  - add Tversky index calculation for shapes
2311 (github pull #1777 from susanhleung)
2312  - Add MolToInchiKey function()
2313 (github pull #1784 from greglandrum)
2314  - speedup the NumBitsInCommon operation
2315 (github pull #1785 from greglandrum)
2316  - Stop putting brackets around * atoms in SMILES
2317 (github pull #1788 from greglandrum)
2318  - Support for a JSON-based molecule interchange format
2319 (github pull #1798 from greglandrum)
2320
2321## Bug Fixes:
2322  - Fixes Java wrapper build error with Boost 1.64
2323 (github pull #1613 from ptosco)
2324  - AssignStereochemistry cleanIt=True incorrectly removing new CIS/TRANS bond stereo
2325 (github issue #1614 from coleb)
2326  - switch to using a specific freesasa version
2327 (github pull #1619 from greglandrum)
2328  - Add support for %(NNN) notation for ring closures
2329 (github pull #1624 from baoilleach)
2330  - Draw._moltoSVG() raises an exception
2331 (github issue #1625 from greglandrum)
2332  - MolDrawCairo2D does not build on windows
2333 (github issue #1627 from greglandrum)
2334  - Enable windows build that uses cairo
2335 (github pull #1628 from greglandrum)
2336  - don't always download the FreeSASA source
2337 (github issue #1630 from greglandrum)
2338  - Make sure EmbedMultipleConfs is deterministic for very large seeds and a seed of 0
2339 (github pull #1635 from coleb)
2340  - from rdkit.Chem import AllChem has grown a six dependency
2341 (github issue #1637 from bp-kelley)
2342  - Fixing bug in IPythonConsole SVG rendering introduced in 1027d4469545653180fff9a38dc8224bd50e8b0d
2343 (github pull #1641 from coleb)
2344  - changes required to allow replacing the obsolete __conda_version__ in conda-rdkit
2345 (github pull #1644 from ptosco)
2346  - GetConformerRMSMatrix does not work if some conformers were removed
2347 (github issue #1650 from DrrDom)
2348  - EnumerateLibrary with initFromString called twice doesn't clear the reaction
2349 (github issue #1657 from bp-kelley)
2350  - Missed symmetrization in R-Group decomposition
2351 (github issue #1659 from greglandrum)
2352  - Use numpy not numeric for boost 1.65+ - fixes #1581
2353 (github pull #1664 from mcs07)
2354  - Support valence 7 for As, Sb, and Bi
2355 (github issue #1668 from greglandrum)
2356  - Fix: GetDonor2FeatVects heavy atoms confusion
2357 (github pull #1676 from josan82)
2358  - Acetylenic hydrogens not given appropriate 2D coordinates
2359 (github issue #1691 from jasondbiggs)
2360  - Warning on import of rgroup decomposition package
2361 (github issue #1695 from greglandrum)
2362  - AUTOCORR2D.h not installed unless RDK_BUILD_DESCRIPTORS3D but is required
2363 (github issue #1702 from baoilleach)
2364  - Dative bonds interfere with kekulization and the perception of aromaticity
2365 (github issue #1703 from greglandrum)
2366  - Fix/rgroup prefer matching nonhs over hs
2367 (github pull #1707 from bp-kelley)
2368  - bonds that are STEREOCIS or STEREOTRANS cannot be depickled
2369 (github issue #1710 from greglandrum)
2370  - Get queries from the new cactvs SMARTS extensions to pickle correctly
2371 (github pull #1712 from greglandrum)
2372  - fix an irritating cmake problem
2373 (github pull #1715 from greglandrum)
2374  - Added dependency from Boost headers to PgSQL CMakeLists.txt
2375 (github pull #1717 from ptosco)
2376  - Updates python test runner to always use sys.executable
2377 (github pull #1721 from bp-kelley)
2378  - - make bond stereo detection in rings consistent
2379 (github pull #1727 from ptosco)
2380  - xlocale.h not needed to compile with clang
2381 (github issue #1728 from adalke)
2382 - BreakBRICSBonds() not preserving stereochemistry
2383 (github issue #1734 from greglandrum)
2384  - rdmolfiles.CanonicalRankAtoms segfaults on 0 atom molecules
2385 (github issue #1735 from lilleswing)
2386  - deprecated apply() function causes GetRDKFingerprint to fail in Python 3
2387 (github issue #1747 from clinntt)
2388  - Stop dereferencing end() iterators
2389 (github pull #1748 from greglandrum)
2390  - out of range fromAtom causes GetMorganFingerprintAsBitVect to segfault
2391 (github issue #1749 from adalke)
2392  - Generated SMARTS does not contain atomic chiral tags
2393 (github issue #1756 from greglandrum)
2394  - make the build work even if boost::serialization is disabled
2395 (github pull #1767 from greglandrum)
2396  - Fix typo in GetBoolProp documentation
2397 (github pull #1770 from jvansan)
2398  - Fingerprint segfaults with branchedPaths=False and useHs=False
2399 (github issue #1793 from chrishmorris)
2400  - Fix python linkage (primarily for conda builds)
2401 (github pull #1808 from greglandrum)
2402  - removeHs() should not remove H atoms that are contributing to the definition of a stereo bond
2403 (github pull #1810 from d-b-w)
2404  - global EmbedParameters objects should not be writeable in SWIG wrappers
2405 (github issue #1826 from greglandrum)
2406  - RDKit crashes when MolsToGridImage function is called with an empty iterable.
2407 (github issue #1829 from martin-sicho)
2408
2409
2410# Release_2017.09.1
2411(Changes relative to Release_2017.03.1)
2412
2413## Important
2414- The fix for bug #1567 changes the way fragment SMILES are canonicalized.
2415  MolFragmentToSmiles() and canonicalizeFragment() will now often return
2416  different results
2417- The fix for bug #1604 changes the behavior of QueryAtom::setQuery(), which
2418  now deletes the current query before setting the new value. If you are using
2419  QueryAtom::setQuery() from C++ (or possibly Java), be sure that you are not
2420  also deleting that memory.
2421
2422## Acknowledgements:
2423Brian Cole, Peter Gedeck, Guillaume Godin, Jan Halborg Jensen, Malitha Kabir,
2424Tuomo Kalliokoski, Brian Kelley, Noel O'Boyle, Matthew O'Meara, Pavel
2425Polishchuk, Cameron Pye, Christian Ribeaud, Stephen Roughley, Patrick Savery,
2426Roger Sayle, Nadine Schneider, Gregor Simm, Matt Swain, Paolo Tosco, Alain
2427Vaucher, Sam Webb, 'phenethyl', 'xiaotaw'
2428
2429## Highlights:
2430- The new R-Group decomposition code provides a flexible and powerful tool for
2431  building R-group tables or datasets look in $RDBASE/Docs/Notebooks for
2432  example notebooks showing how to use this.
2433- Drawing of chemical reactions has been greatly improved and is now done using
2434  the C++ rendering code.
2435- The MaxMinPicker is dramatically faster.
2436- New descriptors: the QED descriptor has been added as have a large collection
2437  of new 3D descriptors and implementations of the USR and USRCAT fingerprints.
2438
2439## New Features and Enhancements:
2440  - Bring back USR and USRCAT descriptors
2441 (github pull #1417 from greglandrum)
2442  - Generate a warning for conflicting bond directions
2443 (github issue #1423 from greglandrum)
2444  - expose and test GetDrawCoords()
2445 (github pull #1427 from greglandrum)
2446  - Improvement suggestions for SaltRemover
2447 (github issue #1431 from ribeaud)
2448  - Remove obsolete scripts from Scripts dir
2449 (github pull #1440 from greglandrum)
2450  - Support drawing reactions from C++
2451 (github pull #1444 from greglandrum)
2452  - QED code with unit test file
2453 (github pull #1445 from gedeck)
2454  - Add support for other datatypes to  ConvertToNumpyArray
2455 (github issue #1447 from pyeguy)
2456  - - updated FindCairo.cmake
2457 (github pull #1455 from ptosco)
2458  - - fixes PgSQL CMakeLists.txt to enable conda build on Windows
2459 (github pull #1457 from ptosco)
2460  - Some cleanups to make Travis builds faster
2461 (github pull #1464 from greglandrum)
2462  - ExplainPairScore does not support includeChirality=True
2463 (github issue #1466 from xiaotaw)
2464  - Add a collection of new 3D descriptors
2465 (github pull #1467 from greglandrum)
2466  - Update cartridge documentation to use ChEMBL 23
2467 (github issue #1491 from greglandrum)
2468  - First entry of the SubstructLibrary module
2469 (github pull #1493 from bp-kelley)
2470  - assorted fixes to get the current master branch to build on Windows
2471 (github pull #1495 from ptosco)
2472  - Support assignment of stereochemistry tags to bonds from 3D structure
2473 (github issue #1497 from gncs)
2474  - Support black and white molecule drawing
2475 (github issue #1510 from greglandrum)
2476  - Missing def_readwrite for backgroundColour in rdMolDraw2D.cpp
2477 (github issue #1519 from goraj)
2478  - Adds canonicalization of atom maps
2479 (github pull #1521 from bp-kelley)
2480  - Implement stereoisomer enumeration
2481 (github pull #1531 from greglandrum)
2482  - Add a MolBundle class
2483 (github pull #1537 from greglandrum)
2484  - Provide support for color palettes in MolDraw2D
2485 (github pull #1546 from greglandrum)
2486  - A few reaction drawing tweaks
2487 (github pull #1549 from greglandrum)
2488  - R group improvements
2489 (github pull #1552 from greglandrum)
2490  - Add a canned Atom query for heavy atom degree
2491 (github issue #1563 from greglandrum)
2492  - Adds FreeSASA adapter
2493 (github pull #1565 from bp-kelley)
2494  - Added C++ version of getBestRMS()
2495 (github pull #1568 from psavery)
2496  - SMILES lexer optimization/enhancement
2497 (github pull #1575 from greglandrum)
2498  - Update IPythonConsole and PandasTools to use new drawing code
2499 (github pull #1577 from greglandrum)
2500  - Squashes warnings on cygwin
2501 (github pull #1578 from bp-kelley)
2502  - Support continuous highlighting in drawMolecules().
2503 (github pull #1579 from greglandrum)
2504  - Enhanced Similarity Maps depiction
2505 (github pull #1594 from gerebtzoff)
2506
2507## Bug Fixes:
2508  - RDKit gets stuck on PubChem CID 102128817
2509 (github issue #1281 from TuomoKalliokoski)
2510  - MMP code not including molecules with no cuts
2511 (github issue #1406 from greglandrum)
2512  - Fixes PandasTools to also work with pandas 0.20
2513 (github pull #1410 from bp-kelley)
2514  - csharp input files out of date
2515 (github issue #1413 from greglandrum)
2516  - Fix cxsmiles parse on VS2008
2517 (github pull #1415 from mcs07)
2518  - MaxMinPicker picking non-existent element
2519 (github issue #1421 from greglandrum)
2520  - _isCallable clashes with Celery
2521 (github issue #1434 from momeara)
2522  - Impossible to build the RDKit from source without Python installed
2523 (github issue #1435 from greglandrum)
2524  - RemoveHs() removes H atom attached to dummy if it came from AddHs()
2525 (github issue #1439 from DrrDom)
2526  - fix a couple failing windows tests related to temp file removal
2527 (github pull #1446 from greglandrum)
2528  - SanitizeRxn fails with a runtime exception when unused Rlabels are in product
2529 (github issue #1448 from bp-kelley)
2530  - String module conversion bug
2531 (github pull #1452 from coleb)
2532  - GetConformerRMS() documentation is misleading
2533 (github pull #1459 from greglandrum)
2534  - URANGE_CHECK not doing its job in RWMol::addBond
2535 (github issue #1461 from baoilleach)
2536  - ExplainPairScore does not support includeChirality=True
2537 (github issue #1466 from xiaotaw)
2538  - MolToSmarts does not include atom-map or isotope info for molecules built from SMILES
2539 (github issue #1472 from greglandrum)
2540  - AdjustQueryProperties() removing properties from dummy atoms
2541 (github issue #1474 from greglandrum)
2542  - Fixes lookup for HELM Monomer 'D'
2543 (github pull #1477 from bp-kelley)
2544  - Aromatic rings composed solely of dummy atoms should not be kekulized
2545 (github issue #1478 from bp-kelley)
2546  - Directly specify rotor model used in QED.
2547 (github pull #1483 from bp-kelley)
2548  - Unicode problem with pidPS tests on Mac
2549 (github issue #1490 from greglandrum)
2550  - Pattern fingerprint setting bad bits with degree zero atoms
2551 (github issue #1496 from greglandrum)
2552  - Remove xlocale header
2553 (github pull #1501 from greglandrum)
2554  - Fixes atom documentation
2555 (github pull #1505 from bp-kelley)
2556  - TypeError from PandasTools.SaveXlsxFromFrame
2557 (github issue #1507 from pyeguy)
2558  - Removes trailing spaces after \ to fix windows compilation errors
2559 (github pull #1516 from bp-kelley)
2560  - prepareMolForDrawing() not in SWIG wrappers
2561 (github issue #1522 from greglandrum)
2562  - Bond is missing IsInRing methods in Java wrapper
2563 (github issue #1535 from sroughley)
2564  - Fixes blanking of non-query atom data when QueryAtomData was being pi…
2565 (github pull #1541 from bp-kelley)
2566  - ChemicalReaction code not calling setNoImplicit() when H counts are set.
2567 (github issue #1544 from greglandrum)
2568  -  Fixes failing build with MSVC
2569 (github pull #1547 from ptosco)
2570  - Kekulization error with cores from R-Group Decomposition
2571 (github issue #1550 from greglandrum)
2572  - Fixes double free for Dict::update
2573 (github pull #1571 from bp-kelley)
2574  - QueryAtom::setQuery() should delete the old query first
2575 (github pull #1604 from greglandrum)
2576
2577
2578# Release_2017.03.1
2579(Changes relative to Release_2016.09.1)
2580
2581## Important
2582- The fix for bug #879 changes the definition of the layered fingerprint.
2583  This means that all database columns using layered fingerprints as well as
2584  all substructure search indices should be rebuilt.
2585- All C++ library names now start with RDKit (see #1349).
2586
2587## Acknowledgements:
2588Brian Cole, David Cosgrove, JW Feng, Berend Huisman, Peter Gedeck, 'i-tub',
2589Jan Holst Jensen, Brian Kelley, Rich Lewis, Brian Mack, Eloy Felix Manzanares,
2590Stephen Roughley, Roger Sayle, Nadine Schneider, Gregor Simm, Matt Swain,
2591Paolo Tosco, Riccardo Vianello, Hsiao Yi
2592
2593## Highlights:
2594  - It's now possible (though not the default) to pickle molecule properties
2595  with the molecule
2596  - There's a new, and still in development, "Getting started in C++" document.
2597  - A lot of the Python code has been cleaned up
2598
2599## New Features and Enhancements:
2600  - Add removeHs option to MolFromSmiles()
2601 (github issue #554 from greglandrum)
2602  - support a fixed bond length in the MolDraw2D code
2603 (github issue #565 from greglandrum)
2604  - Pattern fingerprint should set bits for single-atom fragments.
2605 (github issue #879 from greglandrum)
2606  - Reviewed unit tests of rdkit.ML - coverage now 63.1%
2607 (github pull #1148 from gedeck)
2608  - Reviewed unit tests of rdkit.VLib - coverage now 67.1%
2609 (github pull #1149 from gedeck)
2610  - Removes exponetial numBonds behavior
2611 (github pull #1154 from bp-kelley)
2612  - Exposes normalize option to GetFlattenedFunctionalGroupHierarchy
2613 (github pull #1165 from bp-kelley)
2614  - Expose RWMol.ReplaceBond to Python
2615 (github pull #1174 from coleb)
2616  - Review of rdkit.Chem.Fraggle code
2617 (github pull #1184 from gedeck)
2618  - Add support for dative bonds.
2619 (github pull #1190 from janholstjensen)
2620  - Python 3 compatibility (issue #398)
2621 (github pull #1192 from gedeck)
2622  - 1194: Review assignments of range in Python code
2623 (github pull #1195 from gedeck)
2624  - Moved GenerateDepictionMatching[23]DStructure from Allchem.py to C++
2625 (github pull #1197 from DavidACosgrove)
2626  - Review rdkit.Chem.pharm#D modules
2627 (github pull #1201 from gedeck)
2628  - Find potential stereo bonds should return any
2629 (github pull #1202 from coleb)
2630  - Gedeck coverage sim div filters
2631 (github pull #1208 from gedeck)
2632  - Gedeck review unit test inchi
2633 (github pull #1209 from gedeck)
2634  - Coverage rdkit.Dbase
2635 (github pull #1210 from gedeck)
2636  - Coverage rdkit.DataStructs
2637 (github pull #1211 from gedeck)
2638  - UnitTestPandas works on Python3
2639 (github pull #1213 from gedeck)
2640  - Cleanup and improvement to test coverage of PandasTools
2641 (github pull #1215 from gedeck)
2642  - Cleanup of rdkit.Chem.Fingerprints
2643 (github pull #1217 from gedeck)
2644  - Optimization of UFF and MMFF forcefields
2645 (github pull #1218 from ptosco)
2646  - Support for ChemAxon Extended SMILES/SMARTS
2647 (github issue #1226 from greglandrum)
2648  - Improved test coverage for rdkit.Chem.Fingerprints
2649 (github pull #1243 from gedeck)
2650  - Adding a few tests for coverage utils
2651 (github pull #1244 from gedeck)
2652  - Make Pandastools modifications to generic RDkit functionality more obvious
2653 (github pull #1245 from gedeck)
2654  - Rename test file and cleanup
2655 (github pull #1246 from gedeck)
2656  - Review of rdkit.Chem.MolKey
2657 (github pull #1247 from gedeck)
2658  - Review tests in rdkit.Chem.SimpleEnum
2659 (github pull #1248 from gedeck)
2660  - Move execution of DocTests in rdkit.Chem into a UnitTest file
2661 (github pull #1256 from gedeck)
2662  - Review code in rdkit.Chem.Suppliers
2663 (github pull #1258 from gedeck)
2664  - Add python wraps
2665 (github pull #1259 from eloyfelix)
2666  - Rename file UnitTestDocTests in rdkitChem
2667 (github pull #1263 from gedeck)
2668  - Gedeck rdkit chem unit test surf
2669 (github pull #1267 from gedeck)
2670  - cleanup rdkit.Chem.Lipinski and rdkit.Chem.GraphDescriptors
2671 (github pull #1268 from gedeck)
2672  - Address Issue #1214
2673 (github pull #1275 from gedeck)
2674  - Dev/pickle properties
2675 (github pull #1277 from bp-kelley)
2676  - Remove unused test boilerplate
2677 (github pull #1288 from gedeck)
2678  - Refactored the script SDFToCSV
2679 (github pull #1289 from gedeck)
2680  - Dev/rdmmpa api update
2681 (github pull #1291 from bp-kelley)
2682  - Fix/rogers fixes
2683 (github pull #1293 from bp-kelley)
2684  - Remove expected (error) output during unit tests
2685 (github pull #1298 from gedeck)
2686  - Refactor FeatFinderCLI and add unittests
2687 (github pull #1299 from gedeck)
2688  - Refactor BuildFragmentCatalog - 1
2689 (github pull #1300 from gedeck)
2690  - Review of rdkit.Chem code - 1
2691 (github pull #1301 from gedeck)
2692  - Minor cleanup in rdkit.Chem
2693 (github pull #1304 from gedeck)
2694  - Start using py3Dmol in the notebook
2695 (github pull #1308 from greglandrum)
2696  - Add the option to match formal charges to FMCS
2697 (github pull #1311 from greglandrum)
2698  - Review of rdkit.Chem.Subshape
2699 (github pull #1313 from gedeck)
2700  - Review rdkit.Chem.UnitTestSuppliers
2701 (github pull #1315 from gedeck)
2702  - Add cis/trans tags to double bonds
2703 (github pull #1316 from greglandrum)
2704  - MolDraw2D: make custom atom labels easier
2705 (github issue #1322 from greglandrum)
2706  - MolDraw2D: allow DrawMolecules() to put all molecules in one pane
2707 (github issue #1325 from greglandrum)
2708  - Refactoring rdkit.Chem.SATIS
2709 (github pull #1329 from gedeck)
2710  - Minor cleanup of rdkit.Chem.SaltRemover
2711 (github pull #1330 from gedeck)
2712  - Review rdkit.chem.FunctionalGroups and rdkit.Chem.UnitTestSuppliers
2713 (github pull #1331 from gedeck)
2714  - Get the tests working with python 3.6
2715 (github pull #1332 from greglandrum)
2716  - add "RDKit" to the beginning of all library names
2717 (github pull #1349 from greglandrum)
2718  - Fix/sanitizerxn merge hs
2719 (github pull #1367 from bp-kelley)
2720  - Update AllChem.py
2721 (github pull #1378 from BerendHuisman)
2722
2723## New Java Wrapper Features:
2724
2725## Bug Fixes:
2726  - python2 code in python3 install
2727 (github issue #1042 from kcamnairb)
2728  - Fixes #1162 (resMolSupplierTest failing with boost 1.62)
2729 (github pull #1166 from ptosco)
2730  - add missing $RDKLIBS to cartridge build
2731 (github pull #1167 from rvianello)
2732  - Include <boost/cstdint.hpp> for uint64_t
2733 (github pull #1168 from mcs07)
2734  - replace std::map::at with std::map::find
2735 (github pull #1169 from mcs07)
2736  - Fix Trajectory GetSnapshot behaviour after Clear
2737 (github pull #1172 from mcs07)
2738  - Add Contrib dir to RDPaths
2739 (github pull #1176 from mcs07)
2740  - RDThreads.h: No such file or directory
2741 (github issue #1177 from gncs)
2742  - this now builds with vs2008
2743 (github pull #1178 from greglandrum)
2744  - Add information on building RDkit on macOS using conda
2745 (github pull #1180 from gedeck)
2746  - new sequence capabilities not available from either Python or Java
2747 (github issue #1181 from greglandrum)
2748  - Gets the reaction sanitization code working correctly on 32bit systems
2749 (github pull #1187 from greglandrum)
2750  - Adds RDProps to c# wrapper
2751 (github pull #1188 from bp-kelley)
2752  - fix compatibility with PostgreSQL 9.2
2753 (github pull #1189 from greglandrum)
2754  - Fixes memory leak in closeCheckMolFiles, fixes valgrind read issue in…
2755 (github pull #1200 from bp-kelley)
2756  - Support valences of 4 and 6 for Te
2757 (github issue #1204 from hsiaoyi0504)
2758  - Stereochemistry not output to SMILES when allHsExplicit=True
2759 (github issue #1219 from greglandrum)
2760  - Remove deprecated string module functions
2761 (github pull #1223 from gedeck)
2762  - Turns on -fpermissive for gcc >= 6 and boost < 1.62
2763 (github pull #1225 from bp-kelley)
2764  - all-atom RMSD used to prune conformers in embedding code, docs say heavy-atom RMSD is used
2765 (github issue #1227 from greglandrum)
2766   - FindPotentialStereoBonds() failure
2767 (github issue #1230 from greglandrum)
2768  - make the Pandas version checking more robust
2769 (github pull #1239 from greglandrum)
2770  - Failure to embed larger aromatic rings
2771 (github issue #1240 from greglandrum)
2772   - fixed build failure on Windows due to missing link to library
2773 (github pull #1241 from ptosco)
2774  - fixed a test failure on Windows due to CR+LF encoding
2775 (github pull #1242 from ptosco)
2776  - MolFromMolBlock sanitizing when it should not be
2777 (github issue #1251 from greglandrum)
2778  - PMI descriptors incorrect
2779 (github issue #1262 from greglandrum)
2780  - Reactions don't modify isotope unless chemical element is specified for the product
2781 (github issue #1266 from i-tub)
2782  - Do not include the 3D descriptors in rdkit.Chem.Descriptors.descList
2783 (github issue #1287 from greglandrum)
2784  - ring stereochemistry perception failing for spiro centers
2785 (github issue #1294 from greglandrum)
2786  - Property pickling test failing on windows
2787 (github issue #1348 from greglandrum)
2788  - Fixes overflow error in boost when compiler chooses int for enum type
2789 (github pull #1351 from bp-kelley)
2790  - Hybridization type of group 1 metals
2791 (github issue #1352 from richlewis42)
2792  - bad python docs for some distance geometry functions
2793 (github issue #1385 from greglandrum)
2794  - Bond from reactant not added to product
2795 (github issue #1387 from greglandrum)
2796  - int32_t with no namespace in MolPickler.h
2797 (github issue #1388 from greglandrum)
2798
2799## Contrib updates:
2800  - Chemical reaction role assignment code from Nadine Schneider
2801 (github pull #1185 from NadineSchneider)
2802
2803## Deprecated code (to be removed in a future release):
2804- rdkit.Chem.MCS: please use rdkit.Chem.rdFMCS instead
2805
2806# Release_2016.09.1
2807(Changes relative to Release_2016.03.1)
2808
2809## Important
2810- The adjustQueryParameters structure has been rewritten. If you were using
2811  this in your code, you'll need to update your code.
2812
2813## Acknowledgements:
2814Brian Cole, Piotr Dabrowski, Jan Domanski, Peter Gedeck, Richard Hall, Brian
2815Kelley, Joos Kiener, 'maddogcz', John Mayfield, 'michalsta', Michal Nowotka,
2816'philopon', Nico Pulver, Sereina Riniker, Stephen Roughley, Roger Sayle, Nadine
2817Schneider, Gianluca Sforna, Peter Shenkin, Paolo Tosco, David Turbert, Riccardo
2818Vianello, Maciek Wojcikowski
2819
2820## Highlights:
2821 - New AdjustQueryProperties() (adjustQueryProperties() in C++) for fine-tuning substructure queries.
2822 - ReactionEnum functionality adds significant new capabilities for doing library enumeration
2823 - Similarity searches with the PostgreSQL cartridge are substantially faster
2824 - New 3D descriptors (requires Eigen3 if you are building them yourself)
2825
2826## New Features and Enhancements:
2827  - Trajectory/Snapshot objects
2828 (github pull #863 from ptosco)
2829  - Adds Avalon fingerprints to default set
2830 (github pull #871 from bp-kelley)
2831  - Adds the default index to the building block templates
2832 (github pull #873 from bp-kelley)
2833  - Pandas: Allow reading just the properties from SDF file
2834 (github pull #883 from mwojcikowski)
2835  - Dev/filtercatalog functional groups
2836 (github pull #885 from bp-kelley)
2837  - Dev/preprocessrxn cpp
2838 (github pull #892 from bp-kelley)
2839  - Rollup of warning squashing (with some tests diagnostics thrown in)
2840 (github pull #895 from bp-kelley)
2841  - Adds RDAny (smaller generic holder) Updates all used dictionaries
2842 (github pull #896 from bp-kelley)
2843  - expose FPS functions to SWIG
2844 (github pull #897 from greglandrum)
2845  - Add SaveFile method to the PyMol wrapper
2846 (github pull #898 from greglandrum)
2847  - Add a MultiFPBReader class
2848 (github pull #909 from greglandrum)
2849  - Improved Python doc strings for Trajectory/Snapshot objects
2850 (github pull #912 from ptosco)
2851  - Added support for building the gzip'd stream test
2852 (github pull #914 from ptosco)
2853  - Improved Trajectory Python doc strings
2854 (github pull #915 from ptosco)
2855  - improve error reporting for kekulization failures
2856 (github pull #919 from greglandrum)
2857  - Feat/github934
2858 (github pull #939 from greglandrum)
2859  - Add support for a simplified aromaticity model.
2860 (github pull #942 from greglandrum)
2861  - Dev/moldescriptors callables
2862 (github pull #944 from bp-kelley)
2863  - Dev/cleanup warnings
2864 (github pull #948 from greglandrum)
2865  - Modifications to enable building with MinGW compilers
2866 (github pull #960 from ptosco)
2867  - Made DistGeomHelpers test robust against small 3D coordinate variations
2868 (github pull #961 from ptosco)
2869  - Adds aromatization and reaction options to AdjustQuery
2870 (github pull #965 from bp-kelley)
2871  - Improved planarity for ETKDG
2872 (github pull #967 from sriniker)
2873  - Fixes built-in popcount in PgSQL cartridge on Windows
2874 (github pull #978 from ptosco)
2875  - A variety of drawing-related changes
2876 (github pull #986 from greglandrum)
2877  - Get pango 2D depiction to work with cairocffi
2878 (github pull #998 from ptosco)
2879  - Adds Atom atom map and rlabel apis
2880 (github pull #1004 from bp-kelley)
2881  - Dev/chemtransforms chirality
2882 (github pull #1006 from bp-kelley)
2883  - Added the option to label deuterium and tritium as D and T
2884 (github pull #1011 from ptosco)
2885  - Adds replaceCore function that takes a matchVect
2886 (github pull #1013 from bp-kelley)
2887  - Add an initial version of wavy bonds
2888 (github pull #1014 from greglandrum)
2889  - remove a compiler warning
2890 (github pull #1019 from greglandrum)
2891  - Make the Contrib directory available in RDConfig
2892 (github pull #1024 from NadineSchneider)
2893  - Adds some additional canned atom and bond query definitions
2894 (github pull #1047 from greglandrum)
2895  - Draw crossed bonds
2896 (github pull #1052 from greglandrum)
2897  - Alex/struct checker apr15
2898 (github pull #1054 from bp-kelley)
2899  - MolDraw2D: allow the amount of padding around atom labels to be adjusted.
2900 (github issue #1056 from greglandrum)
2901  - Add multiple molecule drawing to the C++ interface
2902 (github pull #1059 from greglandrum)
2903  - add pickle support to FilterCatalog
2904 (github pull #1063 from greglandrum)
2905  - Issue #1066: Improved .gitignore file
2906 (github pull #1068 from gedeck)
2907  - Cleanup of Scaffolds Python code
2908 (github pull #1069 from gedeck)
2909  - Consistent formatting of Python code
2910 (github issue #1071 from gedeck)
2911  - Improved test coverage of Python code
2912 (github pull #1081 from gedeck)
2913  - Improved test coverage of rdkit.DataStructs
2914 (github pull #1083 from gedeck)
2915  - Add some 3D molecular descriptors (requires Eigen3)
2916 (github pull #1084 from greglandrum)
2917  - Conformer GetPos returns a numpy array rather than a tuple of tuples
2918 (github pull #1087 from jandom)
2919  - make the 3D descriptors available in the Descriptors module
2920 (github pull #1097 from greglandrum)
2921  - Documentation update.
2922 (github pull #1100 from greglandrum)
2923  - Provide SVG output from the cartridge
2924 (github pull #1109 from greglandrum)
2925  - Allow the output of ROMol::debugMol() to show up in jupyter
2926 (github pull #1110 from greglandrum)
2927  - Dev/reaction enumeration
2928 (github pull #1111 from bp-kelley)
2929  - yapf formatting of recent changes to Python code in rdkit and Code
2930 (github pull #1120 from gedeck)
2931  - Add a parameters structure for controlling the embedding options.
2932 (github pull #1121 from greglandrum)
2933  - add more detailed error reporting when python tests fail in TestRunner.py
2934 (github pull #1122 from greglandrum)
2935  - add support for a default constructor to the python-exposed RWMol class
2936 (github pull #1129 from greglandrum)
2937  - The RunStruchk function is not exposed in pyAvalonTools
2938 (github issue #1130 from pulveni1)
2939  - SSSR performance improvements to support larger systems
2940 (github pull #1131 from coleb)
2941  - Script PythonFormat.py will test the RDkit python code for conformance with the agreed format using yapf
2942 (github pull #1133 from gedeck)
2943  - support additional trans-uranic elements
2944 (github pull #1134 from greglandrum)
2945  - Expanded sequence support
2946 (github pull #1140 from greglandrum)
2947  - add UGM link to documentation
2948 (github pull #1142 from David-Turbert)
2949  - Remove iPythonConsole configuration for normal Draw tests
2950 (github pull #1146 from gedeck)
2951  - Wrap DetectBondStereoChemistry in python
2952 (github pull #1156 from coleb)
2953
2954## New Database Cartridge Features:
2955  - Provide SVG output from the cartridge
2956 (github pull #1109 from greglandrum)
2957  - Add cartridge support for adjustQueryProperties()
2958 (github pull #949 from greglandrum)
2959 - refactoring of the postgresql cartridge
2960(github pull #992 from rvianello)
2961
2962## New Java Wrapper Features:
2963  - Expose filtermatch to swig
2964 (github pull #1117 from bp-kelley)
2965  - adjustQueryProperties()
2966  - Java wrappers for Trajectory/Snapshot objects
2967  (github pull #977 from ptosco)
2968  - Added getAlignmentTransform to ROMol.i to expose in Java SWIG wrapper
2969 (github pull #1155 from sroughley)
2970
2971## Bug Fixes:
2972  - initialization of the PeriodicTable object should be made thread-safe
2973 (github issue #381 from greglandrum)
2974  - AssignAtomChiralTagsFromStructure() not recognizing chiral S
2975 (github issue #607 from greglandrum)
2976  - Fixed a few typos in Code/PgSQL/rdkit/CMakeLists.txt
2977 (github pull #867 from ptosco)
2978  - MergeQueryHs explicit H warning when no explicit Hs were actually used
2979 (github issue #868 from bp-kelley)
2980  - Fixes regression in python api CalcNumRotatableBonds
2981 (github pull #870 from bp-kelley)
2982  - Single atoms setting radius 1 bits in Morgan fingerprints
2983 (github issue #874 from greglandrum)
2984  - Providing subImgSize argument to MolsToGridImage() causes drawing failure
2985 (github issue #876 from greglandrum)
2986  - javadoc failure on CentOS 7
2987 (github pull #878 from ptosco)
2988  - adjust cartridge tests after the fix for #874
2989 (github pull #884 from greglandrum)
2990  - bugreport: invalid handling of negation of aromaticity when parsing SMARTS
2991 (github issue #893 from michalsta)
2992  - Fixes depictor problem with empty fragments
2993 (github pull #894 from greglandrum)
2994  - Fix building with G++ on Mac OS X
2995 (github pull #900 from johnmay)
2996  - linked additional libs to fix a build failure on Windows
2997 (github pull #901 from ptosco)
2998  - Rdkit 2016_03_1 generate SVG typo in Python bindings
2999 (github issue #903 from maddogcz)
3000  - PAINS filters update fails when old Python is installed
3001 (github issue #904 from greglandrum)
3002  - rdMolDraw2D.PrepareMolForDrawing() should not default to forceCoords=True
3003 (github issue #906 from greglandrum)
3004  - AddHs() using 3D coordinates with 2D conformations
3005 (github issue #908 from greglandrum)
3006  - ugly coordinates generated for peptide chains
3007 (github issue #910 from greglandrum)
3008  - Cartridge: makefile not using -O2 for C code.
3009 (github issue #920 from greglandrum)
3010  - Removes incorrect setting of hasNonPodData
3011 (github pull #923 from bp-kelley)
3012  - cleanups of RDLog's tee behavior
3013 (github pull #926 from greglandrum)
3014  - initialize boost::once_flag properly
3015 (github pull #927 from greglandrum)
3016  - sys not imported in IPythonConsole.py
3017 (github issue #928 from greglandrum)
3018  - AddTee is now SetTee
3019 (github pull #930 from bp-kelley)
3020  - mistake in SVG generated for wedged bonds
3021 (github issue #932 from greglandrum)
3022  - PandasTools AttributeError with pandas-0.18.1
3023 (github issue #933 from philopon)
3024  - Jupyter Notebooks: Issue with PyMol.MolViewer on Windows
3025 (github issue #936 from kienerj)
3026  - Subshape module: Not Python 3 compatible
3027 (github issue #937 from kienerj)
3028  - property dictionaries leaking memory
3029 (github issue #940 from greglandrum)
3030  - Bug when removing stereo info?
3031 (github pull #946 from mnowotka)
3032  - Distorted aromatic rings from ETKDG
3033 (github issue #952 from greglandrum)
3034  - MolDraw2D: default color should not be cyan
3035 (github issue #953 from greglandrum)
3036  - GetPropNames() no longer working on Atoms or Bonds
3037 (github issue #955 from greglandrum)
3038  - Kekulization issues post successful smiles parsing
3039 (github issue #962 from bp-kelley)
3040  - Fixes includes for older boost/gcc
3041 (github pull #966 from bp-kelley)
3042  - ugly conformations can be generated for highly constrained ring systems
3043 (github issue #971 from greglandrum)
3044  - Cleanup bad conformations
3045 (github pull #973 from greglandrum)
3046  - Unnecessary warnings in rxn.validate()
3047 (github issue #975 from greglandrum)
3048  - Minor fix to Code/GraphMol/Wrap/testTrajectory.py
3049 (github pull #979 from ptosco)
3050  - prepareMolForDrawing(): Do not add Hs to some three-coordinate Cs
3051 (github issue #982 from greglandrum)
3052  - MolDraw2D: wedged bonds between chiral centers drawn improperly
3053 (github issue #983 from greglandrum)
3054  - Fix format-security GCC warning
3055 (github pull #984 from giallu)
3056  - MolDraw2D scaling problems
3057 (github issue #985 from greglandrum)
3058  - RIght-justified elements in RCSB SDF files can now be parsed
3059 (github pull #994 from ptosco)
3060  - Right-justified elements in RCSB SDF files raise an exception
3061 (github issue #995 from ptosco)
3062  - ChemReactions: Bugfix in copy constructor
3063 (github pull #996 from NadineSchneider)
3064  - PgSQL README typos
3065 (github pull #997 from ptosco)
3066  - Fixes rounding errors in test
3067 (github pull #1001 from bp-kelley)
3068  - Fixes middle-justified symbols in sd files, adds M_CHG tests
3069 (github pull #1002 from bp-kelley)
3070  - fix compatibility issues with postgres < 9.5 (#1000)
3071 (github pull #1005 from rvianello)
3072  - Fixes MMFF94 aromaticity perception and ChemicalForceFields.MMFFHasAllMoleculeParams()
3073 (github pull #1007 from ptosco)
3074  - fixes typo which breaks the PostgreSQL cartridge build on Windows
3075 (github pull #1008 from ptosco)
3076  - Fix Inchi being hardcoded into PostgreSQL
3077 (github pull #1009 from ptosco)
3078  - Support ETKDG from within the SWIG wrappers
3079 (github pull #1010 from greglandrum)
3080  - move definition of computedPropName to namespace RDKit::detail
3081 (github issue #1017 from greglandrum)
3082  - fix non-inchi build
3083 (github pull #1018 from greglandrum)
3084  - Fixes #1018
3085 (github pull #1020 from ptosco)
3086  - GetSSSR interrupts by segmentation fault
3087 (github issue #1023 from PiotrDabr)
3088  - FMCS fix for Windows DLLs
3089 (github pull #1030 from ptosco)
3090  - Cause ImportError from failed dlopen of the rdBase.so shared library to propagate.
3091 (github pull #1032 from coleb)
3092  - typos in MMPA hash code
3093 (github issue #1044 from greglandrum)
3094  - MolOps::cleanUp() being called by CTAB parser even when sanitization isn't on
3095 (github issue #1049 from greglandrum)
3096  - Bond::BondDir::EITHERDOUBLE not exposed to python
3097 (github issue #1051 from greglandrum)
3098  - add python3 compatibility
3099 (github pull #1057 from greglandrum)
3100  - doc updates from Dave Cosgrove
3101 (github pull #1060 from greglandrum)
3102  - Fix leak with renumberAtoms() in the SWIG wrappers
3103 (github pull #1064 from greglandrum)
3104  - Timings on Windows with Python 3
3105 (github pull #1067 from ptosco)
3106  - computeInitialCoords() should call the SSSR code before it calls assignStereochemistry()
3107 (github issue #1073 from greglandrum)
3108  - Remove duplicates doesn't work on first column in rdkit.Dbase.DbUtils.GetData
3109 (github issue #1082 from gedeck)
3110  - clear up a bunch of windows warnings
3111 (github pull #1086 from greglandrum)
3112  - MolsToGridImage barfs on '&' in labels, at least with useSVG=True
3113 (github issue #1090 from shenkin)
3114  - Fixes csharp build for 64 bit systems
3115 (github pull #1098 from bp-kelley)
3116  - Cartridge: some C++ functions returning pointers to local storage
3117 (github issue #1106 from greglandrum)
3118  - Check for doubles after other integer types when reporting properties
3119 (github pull #1115 from bp-kelley)
3120  - Replace has_key use in Python (#issue1042)
3121 (github pull #1132 from gedeck)
3122  - fix moldraw2d headers installation path
3123 (github pull #1143 from giallu)
3124  - Remove iPythonConsole configuration for normal Draw tests
3125 (github pull #1146 from gedeck)
3126  - Adds SWIGWIN definition in WIN32 if not 32bit
3127 (github pull #1158 from bp-kelley)
3128  - Fix/java win64 memoryleak
3129 (github pull #1159 from bp-kelley)
3130
3131## Deprecated code (to be removed in a future release):
3132  - rdkit.VLib python module
3133  - SanitizeRxn parameters "ChemDrawRxnAdjustParams" has been renamed to
3134    "MatchOnlyAtRgroupsAdjustParams".  These settings did not reflect
3135    how integrations with SciQuest or the Perkin Elmer ELN behaved and
3136    were confusing to users (especially since they were not explicit)
3137
3138## Removed code:
3139
3140## Contrib updates:
3141  - added an implementation of the Gobbi Atom-Atom-Path (AAP) similarity
3142 (github pull #1015 from Richard-Hall)
3143
3144## Other:
3145
3146# Release_2016.03.1
3147(Changes relative to Release_2015.09.2)
3148
3149## Important
3150In order to build the RDKit, it is now necessary to have at least v1.7 of numpy installed.
3151
3152## Acknowledgements:
3153Note: The RDKit has the wonderful "problem" that there are a lot of
3154contributors and it's tough for me to capture them all to put together release
3155notes. I don't even know many of the contributors (which is *awesome!*)
3156The names here come largely from what I pull in an automated way from github.
3157In cases where there's no real name listed in github, I either guessed
3158or used just the github alias in quotes. If I got it wrong, please let me know!
3159
3160Josep Arus, Nik Bates-Haus, Andrew Dalke, 'DoliathGavid', 'elcaceres', Peter
3161Gedeck, James Jeffryes, Brian Kelley, Juuso Lehtivarjo, Rich Lewis, Daniel Lowe,
3162'maddogcz', Kozo Nishida, Michal Nowotka, Axel Pahl, Steven Roughley, Alexander
3163Savelyev, Nadine Schneider, Gianluca Sforna, Teague Sterling, Nik Stiefl, Matt
3164Swain, Eric Ting, Paolo Tosco, Samo Turk, Riccardo Vianello
3165
3166## Highlights:
3167- Improvements to the build system: it's now much easier to build with InChI
3168  and/or Avalon support since cmake now knows how to fetch the appropriate
3169  source code for you. Building the PostgreSQL cartridge is now integrated into
3170  normal build process.
3171- Some improvements to molecule rendering and Jupyter notebook integration: The
3172  new `Draw.PrepareMolForDrawing()` function takes care of standard tasks like
3173  wedging bonds, kekulization, and adding chiral Hs. `Draw.MolsToGridImage()`
3174  can generate SVGs and uses the new molecular drawing code for PNGs when
3175  possible. The Jupyter notebook integration uses the new drawing code when
3176  possible.
3177- Error and warning messages from the C++ core can now be displayed in the
3178  Jupyter notebook
3179
3180## Bug Fixes:
3181  - Sanitizer rejects higher valency halides
3182 (github issue #115 from dan2097)
3183  - Bad E/Z assignment from ctab
3184 (github issue #188 from greglandrum)
3185  - bad E/Z assignment from ctab
3186 (github issue #192 from greglandrum)
3187  - Documentation is still python2 specific.
3188 (github issue #374 from greglandrum)
3189  - SVG export - Python 3 support
3190 (github issue #398 from maddogcz)
3191  - FragmentOnBonds() producing incorrect chirality
3192 (github issue #511 from greglandrum)
3193  - Rings containing all dummy atoms with single bonds are flagged as aromatic
3194 (github issue #518 from greglandrum)
3195  - IPython integration broken with latest Jupyter
3196 (github issue #666 from samoturk)
3197  - Added missing include/forward declarations
3198 (github pull #668 from ptosco)
3199  - Fixes a memory leak in fragmentMol
3200 (github pull #669 from bp-kelley)
3201  - resetVect option being ignored by reaccsToFingerprint()
3202 (github issue #671 from greglandrum)
3203  - failure in AddHs when addCoords is true and coords are all zero
3204 (github issue #678 from greglandrum)
3205  - 404 error for the link to Installation instructions
3206 (github issue #679 from EricTing)
3207  - Fix java8 build
3208 (github pull #681 from greglandrum)
3209  - Smiles containing "[as]" do not parse.
3210 (github issue #682 from greglandrum)
3211  - SMARTS reaction triggers invariant violation on chiral compounds
3212 (github issue #685 from JamesJeffryes)
3213  - partially specified chiral substructure queries don't work properly
3214 (github issue #688 from bp-kelley)
3215  - ExactMolWt ignoring the mass of the electron
3216 (github issue #694 from greglandrum)
3217  - Bad 1-4 bounds matrix elements in highly constrained system
3218 (github issue #696 from greglandrum)
3219  - More ChEMBL molecules that fail bounds smoothing
3220 (github issue #697 from greglandrum)
3221  - Molecule serialization doesn't read/write atomic numbers above 128
3222 (github issue #713 from greglandrum)
3223  - AddHs cip rank is declared <int> should be unsigned int?
3224 (github issue #717 from bp-kelley)
3225  - ensure line endings are handled consistently for all users
3226 (github pull #729 from rvianello)
3227  - Fixes return type of operator[] (fails on later clangs)
3228 (github pull #733 from bp-kelley)
3229  - Fix/thread safe localeswitcher line endings
3230 (github pull #743 from bp-kelley)
3231  - Fixes Boost 1.46 issues with type traits
3232 (github pull #748 from bp-kelley)
3233  - PR #749 causes seg faults on windows
3234 (github issue #750 from greglandrum)
3235  - Fixes notebook problems with newer jupyter installs
3236 (github pull #753 from bp-kelley)
3237  - Double bond geometry loss on calling removeHs
3238 (github issue #754 from sroughley)
3239  - Bug fix to getShortestPath
3240 (github pull #757 from JLVarjo)
3241  - reversed stereochemistry with sulfoxides and ring closures
3242 (github issue #760 from greglandrum)
3243  - libRDBoost.so.1: undefined symbol
3244 (github issue #762 from kozo2)
3245  - Removed -Xdoclint:none flag when packing org.RDKitDoc.jar
3246 (github pull #763 from undeadpixel)
3247  - AnyBond specification treated as single when joining rings in SMARTS
3248 (github issue #766 from teaguesterling)
3249  - CanonicalRankAtomsInFragment() leaks when called from Python
3250 (github issue #769 from greglandrum)
3251  - MolCanvas2D drawing upside down
3252 (github issue #774 from greglandrum)
3253  - Drawing single-atom molecules hangs.
3254 (github issue #781 from greglandrum)
3255  - chiral lexical order for ring closure after branch
3256 (github issue #786 from adalke)
3257  - surface -> self.surface
3258 (github pull #787 from mnowotka)
3259  - Chem.MolToSmarts param misnomer
3260 (github issue #792 from elcaceres)
3261  - Fixes MolToSmarts python docs
3262 (github pull #793 from bp-kelley)
3263  - npscorer.py: Py3 compat and importable from other locations
3264 (github #801 from apahl)
3265  - Pre-condition Violation: bad bond type
3266 (github issue #805 from nbateshaus)
3267  - rooted atom fingerprint non identical for the same molecules
3268 (github issue #811 from nisti74)
3269  - test60RunSingleReactant() not being run
3270 (github issue #825 from greglandrum)
3271  - PostgreSQL bug fixes
3272 (github pull #835 from ptosco)
3273  - Crash while running testGithub497() on Windows
3274 (github pull #842 from ptosco)
3275  - Return value of NumRadicalElectrons and NumValenceElectrons should be integer
3276 (github issue #846 from gedeck)
3277  - Fixed a bug in getUFFAngleBendParams()
3278 (github pull #850 from ptosco)
3279  - Lines used to wedge bonds are too thick
3280 (github issue #852 from greglandrum)
3281  - Fix out of range dereference in MCS code.
3282 (github pull #857 from DoliathGavid)
3283  - Atom symbols in wrong order if bond comes from right
3284 (github issue #860 from greglandrum)
3285
3286## New Features and Enhancements:
3287  - switch to using new version of avalon toolkit
3288 (github issue #382 from greglandrum)
3289  - MolDraw2D: Expand basic drawing api
3290 (github issue #417 from greglandrum)
3291  - MolDraw2D: add options
3292 (github issue #424 from greglandrum)
3293  - fixed FutureWarning in PeriodicTable.py
3294 (github pull #665 from richlewis42)
3295  - first pass, using google style
3296 (github pull #672 from greglandrum)
3297  - Use sets instead of and map. Minor comments cleanup.
3298 (github pull #675 from DoliathGavid)
3299  - Dev/squash msvc14 warnings
3300 (github pull #684 from bp-kelley)
3301  - Fix/stop unnecessary filtercatalog updates
3302 (github pull #690 from bp-kelley)
3303  - Add RDK_USE_BOOST_SERIALIZATION configure option (On by default)
3304 (github pull #691 from bp-kelley)
3305  - Minor optimizations of the force field minimization code, fix for issue 696
3306 (github pull #693 from greglandrum)
3307  - Include cis/trans stereochemistry when useChirality=true with the morgan fingerprints
3308 (github issue #695 from greglandrum)
3309  - Fixed a couple of compilation warnings in Resonance.cpp/Resonance.h
3310 (github pull #701 from ptosco)
3311  - Dev/run single reactant
3312 (github pull #705 from bp-kelley)
3313  - Updates CMAKE_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR
3314 (github pull #707 from bp-kelley)
3315  - Make LocaleSwitcher threadsafe
3316 (github issue #710 from greglandrum)
3317  - Exposes Get/Set Double, Int, Uint and bool props to molecules
3318 (github pull #711 from bp-kelley)
3319  - Speed up molblock generation
3320 (github pull #712 from greglandrum)
3321  - Expose generateOneProductSet?
3322 (github issue #721 from DoliathGavid)
3323  - Add a reader for FPB files (still experimental)
3324 (github pull #724 from greglandrum)
3325  - replace std::map::at with std::map::operator[]
3326 (github pull #730 from rvianello)
3327  - Fix/get double prop get props asdict
3328 (github pull #734 from bp-kelley)
3329  - Add support for Tversky similarity to the FPB reader
3330 (github pull #735 from greglandrum)
3331  - Fix ConformerParser to use const std::string &
3332 (github pull #737 from mcs07)
3333  - Fix/expose invariant exception
3334 (github pull #740 from bp-kelley)
3335  - Support CTABs where the second letter in atom symbols is capitalized
3336 (github issue #741 from greglandrum)
3337  - Adds support for capturing RDLogs in Python StdErr streams
3338 (github pull #749 from bp-kelley)
3339  - Allow adding Hs only to atoms matching a query operator
3340 (github issue #758 from greglandrum)
3341  - Add argument to addHs allowing only certain Hs to be considered
3342 (github pull #759 from greglandrum)
3343  - avoid the multiple definition of rdkitVersion/boostVersion
3344 (github pull #761 from rvianello)
3345  - cleanup possible pythonObjectToVect leaks in python wrappers
3346 (github issue #764 from greglandrum)
3347  - Stop possible core leaks in pythonObjectToVect()
3348 (github pull #770 from greglandrum)
3349  - Add C++ function to prepare mol for rendering
3350 (github issue #771 from greglandrum)
3351  - Prefer wedging bonds to Hs
3352 (github issue #772 from greglandrum)
3353  - Add prepareMolForDrawing() function to C++
3354 (github pull #775 from greglandrum)
3355  - Support blanks in MolsToGridImage()
3356 (github issue #776 from greglandrum)
3357  - A number of small additions and features to the drawing code
3358 (github pull #802 from greglandrum)
3359  - Support larger isotope deltas in the chirality assignment
3360 (github issue #803 from greglandrum)
3361  - Adds option RDK_USE_COMPLEX_ROTOR_DEFINITION
3362 (github pull #810 from bp-kelley)
3363  - add Draw.MolsToSVGGrid()
3364 (github pull #817 from greglandrum)
3365  - make Hs black instead of gray
3366 (github pull #819 from greglandrum)
3367  - Fix alignMols so that it takes into account of QueryAtoms and QueryBonds
3368 (github pull #821 from DoliathGavid)
3369  - feat/github831: Add getText() static method.
3370 (github pull #832 from greglandrum)
3371  - Add an unfolded count-based version of the RDKFingerprint
3372 (github pull #838 from NadineSchneider)
3373  - Add some utils functions to ChemReactions
3374 (github pull #840 from NadineSchneider)
3375  - Autodetect boost c++ library and compile with matching one
3376 (github pull #845 from bp-kelley)
3377  - Add automatic downloads of junit.jar
3378 (github pull #859 from greglandrum)
3379
3380## New Database Cartridge Features:
3381  - support providing InChI (or InChI key) generation options in cartridge
3382 (github pull #755 from greglandrum)
3383  - building the cartridge is now integrated with the cmake build system
3384 (github pull #785 from ptosco)
3385
3386## New Java Wrapper Features:
3387  - Add a bit more control over the lazy MaxMin picker to the java layer
3388 (github pull #791 from greglandrum)
3389  - Ensure reduceProductToSideChains exposed in Java/Swig
3390 (github issue #744 from bp-kelley)
3391
3392## Deprecated code (to be removed in next release):
3393
3394## Removed code:
3395
3396## Contrib updates:
3397
3398## Other:
3399
3400# Release_2015.09.2
3401(Changes relative to Release_2015.09.1)
3402
3403## Acknowledgements:
3404Brian Kelley, Paolo Tosco, Riccardo Vianello
3405
3406## Bug Fixes:
3407  - Fixed a post-decrement which causes a crash when compiling under Windows with MSVC 9
3408  (from ptosco)
3409  - Fixes a memory leak in fragmentMol
3410  (github #669 from bp-kelley)
3411  - MMPA compile error with Microsoft Visual C++ Compiler for Python 2.7
3412  (github #655 from rvianello)
3413
3414# Release_2015.09.1
3415(Changes relative to Release_2015.03.1)
3416
3417## Acknowledgements:
3418
3419Pierre Bhoorasingh, Gungor Budak, Andrew Dalke, JP Ebejer, Peter Ertl,
3420Jan Holst Jensen, Brian Kelley, Joos Kiener, Noel O'Boyle, Axel Pahl,
3421Sereina Riniker, Alexander Savelyev, Roger Sayle, Nadine Schneider,
3422Andrew Stretton, Paolo Tosco, Samo Turk, JL Varjo, Riccardo Vanello,
3423Maciek Wojcikowski
3424
3425## Highlights:
3426
3427  - Addition of parsers/writers for sequence notation, FASTA, and basic HELM
3428  - Improved conformation generation based on experimental torsional parameters
3429  - Much better filtering of generated conformations to ensure they
3430    match the chirality of the input structure
3431  - New method for enumerating molecular resonance structures
3432  - Addition of a molecular FilterCatalog data structure
3433
3434## Bug Fixes:
3435  - Draw.MolToImage(mol) does not work for Python 3, because cairo for Python 3 has not yet implemented Surface.create_for_data
3436 (github issue #460 from apahl)
3437  - SDWriter.close() fails when the underlying stream has an error
3438 (github issue #498 from greglandrum)
3439  - Hexafluorophosphate cannot be handled
3440 (github issue #510 from greglandrum)
3441  - Labels of highlighted atoms are invisible
3442 (github issue #519 from NadineSchneider)
3443  - MolDraw2D: Fix in highlighting atoms
3444 (github pull #521 from NadineSchneider)
3445  - Cartridge: index failing for molecular equality in some circumstances
3446 (github issue #525 from greglandrum)
3447  - Bad ring finding in a complex fused ring
3448 (github issue #526 from greglandrum)
3449  - Fixed crash upon closing a gzip/bzip2 stream opened in binary mode for use with SDWriter under Python3
3450 (github pull #531 from ptosco)
3451  - Regression: _smilesAtomOutputOrder incorrect for dot disconnected molecules
3452 (github issue #532 from baoilleach)
3453  - Fix #532 - smilesAtomOutputOrder incorrect
3454 (github pull #535 from baoilleach)
3455  - Fix Python3 encoding for FilterCatalog/Entry serialization
3456 (github pull #537 from bp-kelley)
3457  - Catalog::setCatalogParams needs to be virtual now
3458 (github pull #538 from bp-kelley)
3459  - Bonds in allyl cation are not conjugated
3460 (github issue #539 from greglandrum)
3461  - Fixes GitHub issue 539
3462 (github pull #540 from ptosco)
3463  - SaltBuilder._initPatterns incorrectly handles SMARTS errors
3464 (github issue #541 from adalke)
3465  - merging query Hs failing on recursive SMARTS
3466 (github issue #544 from greglandrum)
3467  - Crash in O3A alignment when running multi-threaded
3468 (github issue #546 from greglandrum)
3469  - PyMol.py: changed xmlrpc import to have Python2/Python3 compatibility
3470 (github pull #547 from apahl)
3471  - fix MMPA bugs for some tests
3472 (github pull #548 from AlexanderSavelyev)
3473  - TFD fix for single bonds adjacent to triple bonds
3474 (github pull #550 from sriniker)
3475  - Canonicalization paper Aug2015
3476 (github pull #552 from NadineSchneider)
3477  - Chirality not affected by atom-map index
3478 (github issue #553 from adalke)
3479  - Implicit Hs should not appear in depictions for query atoms.
3480 (github issue #556 from greglandrum)
3481  - Fix issue with invalid reactions throwing NameError
3482 (github pull #559 from bp-kelley)
3483  - InChI radicals not properly converted
3484 (github issue #562 from pierrelb)
3485  - MMPA code not python3 compatible
3486 (github issue #564 from greglandrum)
3487  - mmpa: fix bug with num_of_cuts > 2 case
3488 (github pull #566 from AlexanderSavelyev)
3489  - Incorrect stereochemistry after embedding
3490 (github issue #568 from greglandrum)
3491  - changed FrameToGridImage() so that the dataframe index can be used as legend
3492 (github pull #570 from apahl)
3493  - MolDraw2DCairo.GetDrawingText() doesn't work with Python3
3494 (github issue #571 from greglandrum)
3495  - addBond return value
3496 (github issue #572 from JLVarjo)
3497  - Process aborts during ForwardSDMolSupplier gc when the file object is closed
3498 (github issue #579 from adalke)
3499  - Fix/update pains filter catalog
3500 (github pull #581 from bp-kelley)
3501  - Importing PandasTools on Windows fails due to Salts.txt
3502 (github issue #583 from baoilleach)
3503  - renumberAtoms() not setting conformer dimensionality properly
3504 (github issue #584 from greglandrum)
3505  - stereo atoms property on double bonds not being updated properly with insertMol
3506 (github issue #608 from greglandrum)
3507  - UFF Atom type not properly assigned to lanthanides
3508 (github issue #613 from greglandrum)
3509  - segfault from MolToInchi when bad bond stereochem info is present
3510 (github issue #614 from greglandrum)
3511  - MQN12 (heavy atom count) seems to be always 0.
3512 (github issue #623 from kienerj)
3513  - fmcs: fix issue with initial seed for PR 580
3514 (github pull #624 from AlexanderSavelyev)
3515  - fmcs: fixes #631 with chiralirty
3516 (github pull #634 from AlexanderSavelyev)
3517  - Fixes sprintf not found on some gcc compiles
3518 (github pull #635 from bp-kelley)
3519  - Fix AppVeyor and Travis UnitTests
3520 (github pull #636 from bp-kelley)
3521  - Fixes #629 - python GetSubstructureMatch thread safety
3522 (github pull #637 from bp-kelley)
3523  - Fix regressions occurring when building with msvc9
3524 (github pull #638 from rvianello)
3525  - Fix/python gil release on rdkit threadsafe sss only
3526 (github pull #639 from bp-kelley)
3527  - ctest not running some of the python tests.
3528 (github issue #643 from greglandrum)
3529  - Issue643
3530 (github pull #646 from greglandrum)
3531  - Fix/various bug fixes filtercatalog and bad operator
3532 (github pull #648 from bp-kelley)
3533  - unlocking or destroying a locked mutex in the substructure matcher
3534 (github issue #653 from greglandrum)
3535  - MMPA compile error with Microsoft Visual C++ Compiler for Python 2.7
3536 (github issue #655 from rvianello)
3537  - new canon: fix in special symmetry invariant
3538 (github pull #663 from NadineSchneider)
3539
3540## New Features and Enhancements:
3541  - enable popcount by default for cartridge
3542 (github issue #428 from greglandrum)
3543  - Added the RSMD calculation over N molecules in the cookbook.
3544 (github pull #495 from malteseunderdog)
3545  - Modified force field constraint tests to be more robust
3546 (github pull #503 from ptosco)
3547  - Fix mol drawing on Python3 (issue #460)
3548 (github pull #504 from apahl)
3549  - mmpa first version was added
3550 (github pull #505 from AlexanderSavelyev)
3551  - Forcefield tests now use RDKit::feq() instead of RDKit::round()
3552 (github pull #506 from ptosco)
3553  - SDMolSupplier(), setData() and strictParsing
3554 (github pull #507 from ptosco)
3555  - Improvements to LoadSDF and WriteSDF
3556 (github pull #513 from samoturk)
3557  - updates to mmpa. reduce number of smiles parsing
3558 (github pull #515 from AlexanderSavelyev)
3559  - Some enhancements for the new canonicalization
3560 (github pull #520 from NadineSchneider)
3561  - mmpa: remove boost_regex dependency at all. Add new test references
3562 (github pull #527 from AlexanderSavelyev)
3563  - Support getting atoms involved in Pharm2D bits
3564 (github issue #530 from greglandrum)
3565  - Optimized MMFF::MMFFOptimizeMoleculeConfs()
3566 (github pull #534 from ptosco)
3567  - RDKit learns how to filter PAINS/BRENK/ZINC/NIH via FilterCatalog
3568 (github pull #536 from bp-kelley)
3569  - Expose Conformer's copy constructor to Python
3570 (github issue #545 from greglandrum)
3571  - PyMol.py: changed xmlrpc import to have Python2/Python3 compatibility
3572 (github pull #547 from apahl)
3573  - Update PAINS smarts to validated set.  Always use mergeQueryHs when reading Smarts
3574 (github pull #549 from bp-kelley)
3575  - Add a curated set of PAINS filters to the RDKit
3576 (github issue #555 from greglandrum)
3577  - Update pains from wehi_pains.csv
3578 (github pull #560 from bp-kelley)
3579  - Change MMPA to use CanonicalRankAtoms instead of _CIPRank
3580 (github issue #561 from adalke)
3581  - Add adjustQuery() function to make substructure queries more specific.
3582 (github issue #567 from greglandrum)
3583  - changed sascorer.py to enable import from different location
3584 (github pull #569 from apahl)
3585  - add export_values() to enums in the python wrapper where it's sensible to do so
3586 (github issue #573 from greglandrum)
3587  - Support Sheridan's BT and BP fingerprints
3588 (github issue #574 from greglandrum)
3589  - Locale dependent float for _GasteigerCharge
3590 (github issue #577 from adalke)
3591  - fmcs: implement adding an initial seed structure
3592 (github pull #580 from AlexanderSavelyev)
3593  - Where possible convert docs from RST to MD
3594 (github issue #585 from greglandrum)
3595  - [UGM2015] Autodetection of numThreads
3596 (github issue #586 from mwojcikowski)
3597  - Generating SVG Images with Transparent Background
3598 (github issue #587 from gungorbudak)
3599  - updates to PandasTools.LoadSDF
3600 (github pull #599 from adalke)
3601  - Can control mol depiction size with PandasTools.molSize = (200,200).
3602 (github pull #600 from samoturk)
3603  - pandas performance and functionality improvements
3604 (github pull #601 from adalke)
3605  - Adding documentation for installation with conda.
3606 (github pull #602 from strets123)
3607  - Automatic atom reordering in TorsionFingerprints
3608 (github pull #603 from sriniker)
3609  - remove bare excepts
3610 (github pull #606 from adalke)
3611  - Added option to use SVG rendering in pandas data frames
3612 (github pull #609 from samoturk)
3613  - Handle inserting molecules with conformers into molecules without conformers
3614 (github issue #610 from greglandrum)
3615  - If wedged bonds are already present, write them to mol blocks
3616 (github issue #611 from greglandrum)
3617  - Dev/filter catalog java wrapper
3618 (github pull #612 from bp-kelley)
3619  - Support extended reduced graphs
3620 (github issue #615 from greglandrum)
3621  - port NumSpiroCenters and NumBridgeheadAtoms descriptors to C++
3622 (github issue #617 from greglandrum)
3623  - Add parser/writer for peptide sequences
3624 (github issue #620 from greglandrum)
3625  - Add parser/writer for FASTA
3626 (github issue #621 from greglandrum)
3627  - Add parser/writer for HELM
3628 (github issue #622 from greglandrum)
3629  - Migrate std::string APIs to const std::string &
3630 (github pull #627 from bp-kelley)
3631  - Chirality tests
3632 (github pull #628 from sriniker)
3633  - Improvements of TFD
3634 (github pull #630 from sriniker)
3635  - Added ResonanceMolSupplier
3636 (github pull #632 from ptosco)
3637  - Image tostring/fromstring methods replaced by tobytes/frombytes
3638 (github pull #644 from rvianello)
3639  - ET(K)DG implementation
3640 (github pull #647 from sriniker)
3641  - Build multithreading support by default when boost::threads is present
3642 (github issue #649 from greglandrum)
3643  - Minimal SWIG Java wrappers for ResonanceMolSupplier
3644 (github pull #657 from ptosco)
3645
3646## New Database Cartridge Features:
3647  - Support for PostgreSQL v8.x has been removed
3648  - NumSpiroCenters and NumBridgeheadAtoms added
3649
3650## New Java Wrapper Features:
3651  - Support for FilterCatalogs
3652  - Support for ResonanceMolSuppliers
3653
3654## Deprecated code (to be removed in next release):
3655
3656## Removed code:
3657  - rdkit/DataStructs/BitVect.py : a C++ version is used, this was only present for historical reasons
3658  - rdkit/DataStructs/SparseIntVect.py : a C++ version is used, this was only present for historical reasons
3659
3660## Contrib updates:
3661  - Addition of Peter Ertl's Natural Product Likeness score.
3662
3663## Other:
3664  - Much of the documentation has been translated from RST to MD
3665
3666# Release_2015.03.1
3667(Changes relative to Release_2014.09.2)
3668
3669## IMPORTANT
3670
3671 - This release has a new algorithm for canonical atom ordering. This
3672   means that canonical SMILES generated with the new version will be
3673   different from those generated with previous versions.
3674
3675## Acknowledgements:
3676
3677David Cosgrove, Andrew Dalke, JP Ebejer, Niko Fechner, Igor Filippov,
3678Patrick Fuller, David Hall, J Bach Hardie, Jan Holst Jensen, Brian
3679Kelley, Rich Lewis, John May, Michael Reutlinger, Sereina Riniker,
3680Alexander Savelyev, Roger Sayle, Nadine Schneider, Gianluca Sforna,
3681Paolo Tosco, Samo Turk, JL Varjo, Riccardo Vianello
3682
3683## Highlights:
3684
3685  - A new algorithm for generating canonical atom orders. The new
3686    algorithm is faster and more robust than the old one.
3687  - C++-based molecule drawing code, allows consistent molecule
3688    renderings from C++, Java, and Python. This will become the
3689    default renderer in the next release.
3690  - General performance improvements and reduction of memory usage.
3691  - Torsion Fingerprints for comparing 3D conformations to each other
3692  - MCS code now available from the PostgreSQL cartridge
3693
3694## Bug Fixes:
3695
3696  - fmcs: use the zero bond type instead of other
3697    (github issue #368 from AlexanderSavelyev)
3698  - bug fixed in TorsionFingerprints.GetTFDMatrix
3699    (github issue #376 from sriniker)
3700  - rdkit.Chem.MolDb.Loader_sa does not work with python3.4
3701    (github issue #390)
3702  - ChemReactions: Bugfix/Memleak-fix in runReactants
3703    (github issue #394 from NadineSchneider)
3704  - TorsionConstraint bug fix
3705    (github issue #395 from ptosco)
3706  - Fixed LoadSDF to keep 3D info
3707    (github pull #401 from samoturk)
3708  - Incorrect expected absolute stereochemistries in a test
3709    (github issue #407)
3710  - GetSubstructMatches() consumes all available memory
3711    (github issue #409)
3712  - Bugfix in the chirality handling of chemical reactions
3713    (github pull #410 from NadineSchneider)
3714  - fixed two minor bugs in MMFF code
3715    (github issue #416 from ptosco)
3716  - Varied sanitise rejection with hydrogen representation
3717    (github issue #418)
3718  - Fixed two trivial bugs
3719    (github issue #419 from ptosco)
3720  - RDKit learns how to roundtrip MOLFile values.
3721    (github issue #420 from bp-kelley)
3722  - cairoCanvas.py python3 compatibility
3723    (github issue #426 from bach-hardie)
3724  - Chem.FragmentOnSomeBonds() should update implicit H count on aromatic heteroatoms when  addDummies is False
3725    (github issue #429)
3726  - Chem.FragmentOnSomeBonds() crashes if the bond list is empty
3727    (github issue #430)
3728  - Increase limit for smallest ring size
3729    (github issue #431 from cowsandmilk)
3730  - Problems caused by heteroatoms with radicals in aromatic rings.
3731    (github issue #432)
3732  - Conversion from mol to InChI getting ring stereo wrong
3733    (github issue #437)
3734  - Metals in mol2 blocks handled incorrectly
3735    (github issue #438)
3736  - Fixed a few tests failing when the Windows git client is used
3737    (github pull #439 from ptosco)
3738  - Fixed tests failing on Windows when retrieving sources through the  Windows git client
3739    (github pull #440 from ptosco)
3740  - Conformers not copied correctly in renumberAtoms
3741    (github issue #441)
3742  - Radicals are not correctly assigned when reading from SMILES
3743    (github issue #447)
3744  - moving RDBoost/Exceptions.h to RDGeneral
3745    (github pull #458 from rvianello)
3746  - Add code to accept blank SMILES input.
3747    (github issue #468 from janholstjensen)
3748  - Accept empty SMILES and SMARTS
3749    (github issue #470)
3750  - Fix MolFile Atom Line List Writer
3751    (github issue #471 from bp-kelley)
3752  - Moved 3D ipython renderer to dependency
3753    (github pull #472 from patrickfuller)
3754  - Windows build/test failure fixes
3755    (github issue #473 from ptosco)
3756  - install missing FMCS/Graph.h header file
3757    (github pull #478 from rvianello)
3758  - added const qualifiers to some methods of Atom/Bond iterator classes
3759    (github pull #479 from rvianello)
3760  - Bugfix in SmilesWrite and some additional tests for getMolFrags function
3761    (github issue #482 from NadineSchneider)
3762  - Removed a while(1) {} in BFGSOpt.h which might result in an infinite loop
3763    (github issue #484 from ptosco)
3764  - Gasteiger charge calculation fails with hexavalent sulfur #485
3765    (github issue #485)
3766  - SmilesWriter not creating automatic name values for molecules read from CTABs
3767    (github issue #488)
3768  - Fix StringType access, remove unused imports
3769    (github issue #494 from bp-kelley)
3770
3771## New Features:
3772
3773  - Isomeric fix in PandasTools
3774    (github issue #369 from samoturk)
3775  - added SaveXlsxFromFrame - first version
3776    (github issue #371 from samoturk)
3777  - New feature: Torsion fingerprints
3778    (github issue #372 from sriniker)
3779  - Add function to extract a molecule with a single (particular) conformer from a multiconf mol
3780    (github issue #384)
3781  - Added C++ and Python helpers to retrieve force-field parameters
3782    (github issue #387 from ptosco)
3783  - Support providing all options to SWIG-wrapped FMCS
3784    (github issue #397)
3785  - Add function to request if calling UpdatePropertyCache is necessary
3786    (github issue #399)
3787  - Add function to test if UpdatePropertyCache is necessary
3788    (github issue #400 from NadineSchneider)
3789  - Substructure highlighting in pandas dataframe (fixes #362)
3790    (github issue #403 from nhfechner)
3791  - Added SDF Export to PandasTools and adjusted SDF Import
3792    (github issue #404 from nhfechner)
3793  - support count-based avalon fingerprint
3794    (github issue #408)
3795  - New C++ drawing code
3796    (github issue #412 from greglandrum)
3797  - RDKit learns how to compute code coverage for tests
3798    (github issue #413 from bp-kelley)
3799  - Dictionary access is saniztized and optimized.
3800    (github issue #414 from bp-kelley)
3801  - expose MolOps::rankAtoms() and MolOps::rankAtomsInFragment() to python
3802    (github issue #421)
3803  - Dev/expose rank atoms to python
3804    (github issue #422 from bp-kelley)
3805  - rdkit learns how to wrap a proper RWMol in python
3806    (github issue #423 from bp-kelley)
3807  - Docs: document "magic" property values that are used throughout the code
3808    (github issue #425)
3809  - MolDraw2D: expose class to Python
3810    (github issue #433)
3811  - RDKit learns how to query properties on Atoms
3812    (github issue #442 from bp-kelley)
3813  - Issue445: provide helper functions for multithreaded evaluation of some expensive functions
3814    (github issue #448 from greglandrum)
3815  - RDKit learns how to release the GIL in python
3816    (github pull #449 from bp-kelley)
3817  - Dev/property queries
3818    (github pull #450 from bp-kelley)
3819  - Support a confId argument to the atom pair fingerprinting code
3820    (github issue #453)
3821  - Save the atom bookmarks so we can deconvolute reaction products.
3822    (github pull #454 from bp-kelley)
3823  - Cartridge: Support converting no structs to InChI
3824    (github issue #455)
3825  - RDKit learns how to expose ChemicalReaction copy constructor to python
3826    (github pull #456 from bp-kelley)
3827  - chirality flag was implemented for fmcs() function
3828    (github pull #466 from AlexanderSavelyev)
3829  - Support copy and deepcopy properly for at least Mol and RWMol
3830    (github issue #467)
3831  - Cartridge: add qmol_from_smiles() and qmol_from_ctab()
3832    (github issue #469)
3833  - restore java and python wrappers. New parameter (matchChiralTag)
3834    (github issue #477 from AlexanderSavelyev)
3835  - Added a Python wrapper for getShortestPath()
3836    (github issue #487 from ptosco)
3837  - Dev/merge query hs no unmapped atoms
3838    (github issue #490 from bp-kelley)
3839
3840## New Database Cartridge Features:
3841
3842  - The MCS code is now available within the cartridge
3843  - The functions qmol_from_smiles() and qmol_from_ctab()
3844
3845## New Java Wrapper Features:
3846
3847  - The new molecule rendering code is accessible from the SWIG wrappers.
3848
3849## Deprecated code (to be removed in next release):
3850
3851  - C++: The functionality in $RDBASE/Code/GraphMol/MolDrawing has been
3852    superseded by the new drawing code in $RDBASE/Code/GraphMol and will
3853    be removed in the next release.
3854  - Python:
3855     - rdkit/Dbase/Pubmed
3856     - rdkit/Chem/fmcs (this has been superseded by the C++ implementation)
3857  - Cartridge: support for v8.x of PostgreSQL (v8.4 is no longer
3858    supported by the PostgreSQL project team as of July 2014)
3859
3860## Removed code:
3861
3862  - the method Atom::setMass() has been removed. Please use setIsotope()
3863    instead.
3864  - the methods involving an atom's dativeFlag have been removed.
3865
3866## Contrib updates:
3867
3868## Other:
3869  - Python 2.6 support is deprecated. Starting with the next RDKit
3870release, we will only support python 2.7 and python 3.4 and
3871higher. Python 2.6 has not been supported since October 2013. If you
3872believe that you are stuck with python 2.6 because of the version of
3873RHEL you are running, please read this post to learn about your
3874options:
3875http://www.curiousefficiency.org/posts/2015/04/stop-supporting-python26.html
3876  - The RDKit molecule objects (ROMol and RWMol) now require about 15%
3877less memory to store
3878
3879
3880# Release_2014.09.2
3881(Changes relative to Release_2014.09.1)
3882
3883## Acknowledgements:
3884Sereina Riniker, Nadine Schneider, Paolo Tosco
3885
3886## Bug Fixes:
3887- SMILES parser doing the wrong thing for odd dot-disconnected construct
3888 (github issue #378)
3889- O3A code generating incorrect results for multiconformer molecules
3890 (github issue #385)
3891- Suppliers probably not safe to read really large files
3892 (github issue #392)
3893- Torsion constraints not worrking properly for negative torsions
3894 (github issue #393)
3895- Core leak in reactions
3896 (github issue #396)
3897
3898
3899# Release_2014.09.1
3900(Changes relative to Release_2014.03.1)
3901
3902## Acknowledgements:
3903Andrew Dalke, James Davidson, Jan Domanski, Patrick Fuller, Seiji
3904Matsuoka, Noel O'Boyle, Sereina Riniker, Alexander Savelyev, Roger
3905Sayle, Nadine Schneider, Matt Swain, Paolo Tosco, Riccardo Vianello,
3906Richard West
3907
3908## Bug Fixes:
3909- Bond query information not written to CTAB
3910 (github issue #266)
3911- Bond topology queries not written to CTABs
3912 (github issue #268)
3913- Combined bond query + topology query not correctly parsed from CTAB
3914 (github issue #269)
3915- SWIG wrapped suppliers leak memory on .next()
3916 (github issue #270)
3917- SWIG wrappers don't build with SWIG 3.0.x
3918 (github issue #277)
3919- core leak from DataStructs.ConvertToNumpyArray
3920 (github issue #281)
3921- MolTransforms not exposed to Java wrapper
3922 (github issue #285)
3923- Seg fault in ReactionFromRxnBlock
3924 (github issue #290)
3925- BitInfo from GetHashedMorganFingerprint() has non-folded values
3926 (github issue #295)
3927- bad inchi for chiral S when the molecule is sanitized
3928 (github issue #296)
3929- Cannot generate smiles for ChEBI 50252
3930 (github issue #298)
3931- Either molecule-molecule substruct matching is wrong *OR* the docs for Atom::Match incorrect
3932 (github issue #304)
3933- fluorine F-F  gives segmentation fault with MMFF forcefield
3934 (github issue #308)
3935- cartridge: MACCS similarity wrong when using the builtin popcount and the index
3936 (github issue #311)
3937- Substructure Search via SMARTS implicit hydrogens
3938 (github issue #313)
3939- SMARTS output for [x] is wrong
3940 (github issue #314)
3941- Bonds not being set up properly in renumberAtoms
3942 (github issue #317)
3943- Python 2 code in python 3 branch
3944 (github issue #326)
3945- Linking error with ICC 15.0 on Linux
3946 (github issue #327)
3947- Using explicit hydrogens in the SMILES lead to the same AP FP for two different molecules
3948 (github issue #334)
3949- memory leaks when smiles/smarts parsers fail
3950 (github issue #335)
3951- No double bond stereo perception from CTABs when sanitization is turned off
3952 (github issue #337)
3953- missing MACCS key 44 might be found
3954 (github issue #352)
3955- Hydrogens in mol blocks have a valence value set
3956 (github issue #357)
3957- Computed props on non-sanitized molecule interfering with substructure matching
3958 (github issue #360)
3959- Fixed a weakness in the angular restraint code
3960 (github pull #261 from ptosco)
3961- A few fixes to improve MMFF/UFF robustness
3962 (github pull #274 from ptosco)
3963- Static webGL rendering fix
3964 (github pull #287 from patrickfuller)
3965- Revert #include ordering in SmilesMolSupplier.cpp
3966 (github pull #297 from mcs07)
3967- Add missing include for RDDepict::compute2DCoords
3968 (github pull #301 from baoilleach)
3969- Herschbach-Laurie fallback implemented to fix GitHub 308
3970 (github pull #312 from ptosco)
3971- Issue #320 Making GetBestRMS more idiot-proof
3972 (github pull #322 from jandom)
3973- Update URLs to InChI API after inchi-trust.org website redesign.
3974 (github pull #341 from rwest)
3975
3976## New Features:
3977- Should be able to do intramolecular bond breaking in reactions.
3978 (github issue #58)
3979- Support reactions in cartridge
3980 (github issue #223)
3981- Documentation of Inchi methods
3982 (github issue #240)
3983- add DescribeQuery() to Bond python wrapper
3984 (github issue #267)
3985- support avalon fingerprint in cartridge
3986 (github issue #286)
3987- support partial fragmentation with fragmentOnSomeBonds
3988 (github issue #288)
3989- Add calcNumHeterocycles() descriptor
3990 (github issue #351)
3991- C++ implementation of FMCS algorithm
3992- Reordering feature for Butina clustering
3993 (github pull #302 from sriniker)
3994- Changes and new functions for the calculation of RMS values between conformers of a molecule
3995 (github pull #306 from sriniker)
3996- Extended chemical reaction functionality and add chemical reactions to cartridge
3997 (github pull #315 from NadineSchneider)
3998- Custom color to highlight atoms in Mol2Image
3999 (github pull #316 from jandom)
4000- Several different fingerprint algorithms for chemical reactions are now available
4001- add Chem.Draw.MolToQPixmap
4002 (github pull #355 from mojaie)
4003
4004
4005## New Database Cartridge Features:
4006- *NOTE:* the configuration variable rdkit.ss_fp_size has been renamed to rdkit.sss_fp_size
4007- Chemical reactions and several operations on them are now supported
4008- Avalon fingerprints now supported (when support has been compiled in)
4009
4010
4011## New Java Wrapper Features:
4012- FMCS implementation exposed
4013- Fingerprints for chemical reactions
4014- Possible core leak in some of the MolSuppliers was fixed
4015
4016Deprecated modules (to be removed in next release):
4017- Projects/SDView4
4018- rdkit/utils/
4019  - GUIDs.py
4020  - GenLicense.py
4021  - Licensing.py
4022  - PiddleTools.py
4023  - PilTools.py
4024  - REFile.py
4025  - SliceTools.py
4026- rdkit/Logger
4027
4028Removed modules:
4029
4030## Contrib updates:
4031
4032## Other:
4033- The RDKit now supports both python3 and python2.
4034- There is now conda integration for the RDKit.
4035- SMILES generation is substantially faster
4036
4037
4038# Release_2014.03.1
4039(Changes relative to Release_2013.09.2)
4040
4041## IMPORTANT
4042 - Due to a bug fix in the rotatable bonds definition, the default
4043   rotatable bond calculation returns different values than before.
4044   This also affects MQN descriptor #18.
4045
4046## Acknowledgements:
4047Paul Czodrowski, James Davidson, Markus Elfring, Nikolas Fechner, Jan Holst Jensen, Christos Kannas, Sereina Riniker, Roger Sayle, Paolo Tosco, Samo Turk, Riccardo Vianello, Maciej Wójcikowski, Toby Wright
4048
4049## Bug Fixes:
4050- Dict::DataType declaration causing problems with C++11 std::lib
4051 (github issue 144)
4052- Pre-condition Violation in AllChem.Compute2DCoords
4053 (github issue 146)
4054- GetSimilarityMapForFingerprint() fails when similarity is zero
4055 (github issue 148)
4056- PatternFingerprint failure for substructure matching
4057 (github issue 151)
4058- query atoms don't match ring queries
4059 (github issue 153)
4060- Incorrect SMILES generated after calling MMFF parameterization
4061 (github issue 162)
4062- Problems with Xe from SDF
4063 (github issue 164)
4064- Radicals not being used in atom--atom matches
4065 (github issue 165)
4066- Cannot skip sanitization while reading PDB
4067 (github issue 166)
4068- Distance Geometry embedding not thread safe
4069 (github issue 167)
4070- O3A::align() and O3A::trans() now return "true" RMSD value
4071 (github pull 173)
4072- RangeError when pre-incrementing or decrementing AtomIterators
4073 (github issue 180)
4074- ctabs do not contain wedged bonds for chiral s
4075 (github issue 186)
4076- ctabs do not contain "A" when appropriate
4077 (github issue 187)
4078- Problems round-tripping Al2Cl6 via CTAB
4079 (github issue 189)
4080- Don't merge Hs onto dummies
4081 (github issue 190)
4082- Wavy bonds to Hs in CTABs should affect the stereochemistry of attached double bonds
4083 (github issue 191)
4084- Rendering binary compounds as ClH, FH, BrH or IH rather than putting H first.
4085 (github issue 199)
4086- Fixed data race condition in Code/GraphMol/MolAlign/testMolAlign.cpp
4087 (github pull 202)
4088- Re-prepared SDF/SMILES files of the MMFF validation suite + a fix
4089 (github pull 205)
4090- Problems round-tripping P with non-default valence.
4091 (github issue 206)
4092- Added a stricter definition of rotatable bonds as a new function in the ...
4093 (github pull 211)
4094- Code/GraphMol/AddHs patch proposal
4095 (github pull 212)
4096- Fix: Changed getNumReactantTemplates to GetNumReactantTemplates.
4097 (github pull 219)
4098- aromatic B ("b") causes errors from SMARTS parser
4099 (github issue 220)
4100- Segmentation fault for MMFF optimization with dummy atoms
4101 (github issue 224)
4102- isMoleculeReactantOfReaction() and isMoleculeProductOfReaction() not useable from SWIG wrappers
4103 (github issue 228)
4104- cartridge: mol_from_ctab() ignores argument about keeping conformers
4105 (github issue 229)
4106- Reaction not correctly preserving chirality on unmapped atoms.
4107 (github issue 233)
4108- AllChem.AssignBondOrdersFromTemplate() fails with nitro groups
4109 (github issue 235)
4110- Fix molecule dataframe rendering in pandas 0.13.x
4111 (github pull 236)
4112- Dummy labels copied improperly into products
4113 (github issue 243)
4114- Two bugfixes in MMFF code
4115 (github pull 248)
4116- seg fault when trying to construct pharmacophore with no conformation
4117 (github issue 252)
4118- EmbedMolecule() should not create a conformer for molecules that have zero atoms
4119 (github issue 256)
4120- cartridge: dice similarity calculation does not use USE_BUILTIN_POPCOUNT flag
4121 (github issue 259)
4122- cartridge: similarity calculations wrong for maccs fps when USE_BUILTIN_POPCOUNT flag is set
4123 (github issue 260)
4124
4125## New Features:
4126- Expose gasteiger charge calculation to SWIG
4127 (github issue 152)
4128- Added additional functionality to PandasTools
4129 (github pull 155)
4130- Add MMFFHasAllMoleculeParams() to SWIG interface
4131 (github issue 157)
4132- O3A code should throw an exception if the parameterization is not complete.
4133 (github issue 158)
4134- Support zero order bonds
4135 (github issue 168)
4136- Add attachmentPoint argument to ReplaceSubstructs
4137 (github issue 171)
4138- Forcefield constraints (distances, angles, torsions, positions)
4139 (github pull 172)
4140- Add kekulize flag to SDWriter
4141 (github issue 174)
4142- Support operator= for RWMol
4143 (github issue 175)
4144- Get GetAromaticAtoms() and GetQueryAtoms() working from python
4145 (github issue 181)
4146- Support richer QueryAtom options in Python
4147 (github issue 183)
4148- Support writing V3000 mol blocks
4149 (github issue 184)
4150- Allow disabling the building of tests
4151 (github issue 185)
4152- Expand DbCLI to allow updating databases
4153 (github issue 197)
4154- Code refactoring and enhancement to allow for O3A alignment according to atom-based Crippen logP contribs
4155 (github pull 201)
4156- call MolOps::assignStereochemistry() with flagPossibleStereoCenters true from within the molecule parsers.
4157 (github issue 210)
4158- Support passing of file-like PandasTools.LoadSDF
4159 (github pull 221)
4160- Reaction SMARTS parser should support agents
4161 (github issue 222)
4162- Add function to MolOps to allow a molecule to be split into fragments based on a query function
4163  This is useable from python as Chem.SplitMolByPDBResidues() and Chem.SplitMolByPDBChainId()
4164 (github issue 234)
4165- Adding option useCounts for Morgan fingerprints
4166 (github pull 238)
4167- support SimpleEnum functionality for adding recursive queries to reactions
4168 (github issue 242)
4169- Additional functions for bit vectors
4170 (github pull 244)
4171- Support of RDK fingerprints added to SimilarityMaps
4172 (github pull 246)
4173- add get3DDistance
4174- support 3D distances in the atom pair fingerprints
4175 (github issue 251)
4176- added MolOps::get3DDistanceMat() (Chem.Get3DDistanceMatrix() from python)
4177
4178
4179## New Database Cartridge Features:
4180- Support configuration of fingerprint sizes in cartridge.
4181 (github issue 216)
4182- Add mol_to_ctab(mol, bool default true) to Postgres cartridge.
4183 (github pull 230)
4184- Adds sum formula function to PG cartridge.
4185 (github pull 232)
4186
4187## New Java Wrapper Features:
4188
4189Deprecated modules (to be removed in next release):
4190
4191Removed modules:
4192- The CMIM integration (previously available to python in the rdkit.ML.FeatureSelect package)
4193  has been removed due to license incompatibility.
4194
4195## Contrib updates:
4196- Added Contribution to train ChEMBL-based models
4197 (github pull 213)
4198- ConformerParser functionality
4199 (github pull 245)
4200
4201## Other:
4202- The Open3DAlign code is considerably faster.
4203- The SMILES parsing code is faster.
4204- Fix Bison 3.x incompabtility
4205 (github pull 226)
4206- Add Travis support
4207 (github pull 227)
4208- port of rdkit.ML  bindings from Python/C API to boost::python
4209 (github pull 237)
4210- The code now builds more easily using the Anaconda python distribution's
4211  conda package manager
4212 (github pull 247)
4213
4214# Release_2013.09.2
4215(Changes relative to Release_2013.09.1)
4216
4217## Acknowledgements:
4218Andrew Dalke, JP Ebejer, Daniel Moser, Sereina Riniker, Roger Sayle, Manuel Schwarze, Julia Weber
4219
4220## Bug Fixes:
4221- cannot pickle unsanitized molecules
4222  (github issue 149)
4223- Problems reading PDB files when locale is DE
4224  (github issue 170)
4225- calling RWMol::clear() leaves property dict empty
4226  (github issue 176)
4227- zero atom molecule generates exception in MolToSmiles when
4228  rootedAtAtom is provided
4229  (github issue 182)
4230- bond orders not being set when PDB files are read
4231  (github issue 194)
4232- GenMACCSKeys() raises an exception with an empty molecule
4233  (github issue 195)
4234- left-justified SDF bond topology of "0" raises an unexpected
4235  exception
4236  (github issue 196)
4237
4238# Release_2013.09.1
4239(Changes relative to Release_2013.06.1)
4240
4241## Acknowledgements:
4242James Davidson, JP Ebejer, Nikolas Fechner, Grégori Gerebtzoff, Michal Nowotka, Sereina Riniker, Roger
4243Sayle, Gianluca Sforna, Matthew Szymkiewicz, Paolo Tosco, Dan Warner,
4244
4245## IMPORTANT
4246 - Due to a bug fix in the parameter set, the MolLogP and MolMR
4247   descriptor calculators now return different values for molecules
4248   with pyrrole (or pyrrole-like) Ns.
4249
4250## Bug Fixes:
4251 - The pymol ShowMol method can now handle molecules with more than
4252   999 atoms (they are sent via PDB)
4253 - Various stability improvements to the Pandas integration.
4254   (github issues 129 and 51)
4255 - Some RDKit methods require python lists and don't allow passing
4256   numpy arrays or pandas series directly
4257   (github issue 119)
4258 - mol2 parser not setting E/Z flags on double bonds
4259   (github issue 114)
4260 - Incorrect angle terms in UFF
4261   (github issue 105)
4262 - Problems with stereochemistry flags and PathToSubmol()
4263   (github issue 103)
4264 - Bad Crippen atom type for pyrrole H
4265   (github issue 92)
4266 - PandasTools tests fail with Pandas v0.12
4267   (github issue 91)
4268 - Isotope information not affecting chirality
4269   (github issue 90)
4270 - properties are not read from SDF files with V3000 mol blocks.
4271   (github issue 88)
4272 - assignStereochemistry does not remove bond wedging that shouldn't be there.
4273   (github issue 87)
4274 - Drawing code modifies wedge bonds in reactions
4275   (github issue 86)
4276 - Stereochemistry not perceived when parsing CTABs unless sanitization is done.
4277   (github issue 82)
4278 - 2D rendering issue for epoxide ( CAS  70951-83-6)
4279   (github issue 78)
4280 - PandasTools doctests should be failing, but are not
4281   (github issue 75)
4282 - Better handling of radicals to/from mol files
4283   (github issue 73)
4284 - Benzothiazolium structure can be parsed from ctab, but the SMILES generated cannot be processed.
4285   (github issue 72)
4286 - Chem.MolFromInch hangs on CID 23691477 and CID 23691480
4287   (github issue 68)
4288 - Chem.MolFromInchi on CHEMBL104337 leads to segmentation fault
4289   (github issue 67)
4290 - "Could not embed molecule." (The Anthony Conundrum)
4291   (github issue 55)
4292
4293## New Features:
4294 - Add fragmentOnBonds() to python wrapper
4295   (github issue 142)
4296 - Allow renumbering atoms in a molecule.
4297   (github issue 140)
4298 - MMFF94 and MMFF94S support
4299 - implementation of the Open3DAlign rigid alignment algorithm
4300 - Support for reading and writing PDB files
4301 - The python function AllChem.AssignBondOrdersFromTemplate() can be
4302   used to assign bond orders from a reference molecule to the bonds
4303   in another molecule. This is helpful for getting bond orders
4304   correct for PDB ligands.
4305   (github issue 135)
4306 - Bond lengths, angles, and torsions can now be queries and adjusted.
4307   (github issue 132)
4308 - Implementation of similarity maps
4309   (github issue 94)
4310 - Python implementation of the Fraggle similarity algorithm.
4311   See Jameed Hussain's presentation from the 2013 UGM for details:
4312   https://github.com/rdkit/UGM_2013/blob/master/Presentations/Hussain.Fraggle.pdf?raw=true
4313 - SparseIntVects now support -=, +=, /=, and *= with ints from C++
4314   and Python
4315 - support \\ in SMILES
4316   (github issue 136)
4317 - Support a similarity threshold in DbCLI
4318   (github issue 134)
4319 - Support construction molecules from other molecules in the python wrapper
4320   (github issue 133)
4321 - support tversky similarity in DbCLI
4322   (github issue 130)
4323 - support tversky similarity in cartridge
4324   (github issue 121)
4325 - support reading and writing reactionComponentType and reactionComponentNumber from ctabs
4326   (github issue 118)
4327 - Add in-place forms of addHs(), removeHs(), and mergeQueryHs()
4328   (github issue 117)
4329 - modify MolOps::cleanUp() to support this azide formulation: C-N=N#N
4330   (github issue 116)
4331 - Dihedral rotation exposed in python
4332   (github issue 113)
4333 - Support for cairocffi (cairo drop-in replacement that plays nicely with virtualenv)
4334   (github issue 80)
4335 - Grey color for Hydrogens
4336   (github issue 97)
4337 - Improvements to the Dict interface in C++
4338   (github issue 74)
4339 - customizable drawing options
4340   (github issue 71)
4341 - Add method for setting the chiral flag in mol blocks
4342   (github issue 64)
4343 - New descriptors added (Python only for now):
4344   MaxPartialCharge(),MinPartialCharge(),MaxAbsPartialCharge(),MinAbsPartialCharge(),
4345   MaxEStateIndex(),MinEStateIndex(),MaxAbsEStateIndex(),MinAbsEStateIndex()
4346
4347## New Database Cartridge Features:
4348
4349## New Java Wrapper Features:
4350 - MMFF support
4351 - PDB reading and writing
4352 - Open3DAlign support
4353
4354
4355Deprecated modules (to be removed in next release):
4356
4357Removed modules:
4358
4359## Contrib updates:
4360 - The MMPA implementation has been updated
4361   See Jameed Hussain's tutorial from the 2013 UGM for details:
4362   https://github.com/rdkit/UGM_2013/tree/master/Tutorials/mmpa_tutorial
4363   [Jameed Hussain]
4364 - An implementation of Ertl and Schuffenhauer's Synthetic
4365   Accessibility score is available in Contrib/SA_Score
4366   [Peter Ertl, Greg Landrum]
4367 - Command line scripts for the Fraggle similarity algorithm
4368   See Jameed Hussain's presentation from the 2013 UGM for details:
4369   https://github.com/rdkit/UGM_2013/blob/master/Presentations/Hussain.Fraggle.pdf?raw=true
4370   [Jameed Hussain]
4371
4372## Other:
4373 - Some of the changes to UFF deviate from the published force
4374   field. Specifics of the changes, and the reasoning behind them, are
4375   in Paolo Tosco's 2013 RDKit UGM presentation:
4376   https://github.com/rdkit/UGM_2013/blob/master/Presentations/Tosco.RDKit_UGM2013.pdf?raw=true
4377 - Reaction drawing has been improved. Support for reaction drawing
4378   has been added to the IPython notebook.
4379
4380
4381# Release_2013.06.1
4382(Changes relative to Release_2013.03.2)
4383
4384Administrivia note:
4385In the course of this release cycle, development was moved over
4386entirely to github. The sourceforge svn repository no longer contains
4387an up-to-date version of the code.
4388
4389## Acknowledgements:
4390Andrew Dalke, JP Ebejer, Nikolas Fechner, Roger Sayle, Riccardo Vianello,
4391Yingfeng Wang, Dan Warner
4392
4393## Bug Fixes:
4394 - The docs for Descriptors.MolWt are now correct (GitHub #38)
4395 - Molecules coming from InChi now have the correct molecular
4396   weight. (GitHub #40)
4397 - RemoveAtoms() no longer leads to problems in canonical SMILES
4398   generation when chiral ring atoms are present. (GitHub #42)
4399 - Atom invariants higher than the number of atoms in the molecule can
4400   now be provided to the atom pairs and topological torsions
4401   fingerprinters. (GitHub #43)
4402 - A typo with the handling of log levels was fixed in the python
4403   wrapper code for InChI generation. (GitHub #44)
4404 - Stereochemistry no longer affects canonical SMILES generation if
4405   non-stereo SMILES is being generated. (GitHub #45)
4406 - The ExactMolWt of [H+] is no longer zero. (GitHub #56)
4407 - The MPL canvas now has an addCanvasDashedWedge() method. (GitHub
4408   #57)
4409 - RWMol::insertMol() now copies atom coordinates (if
4410   present). (GitHub #59)
4411 - The "h" primitive in SMARTS strings now uses the method
4412   getTotalNumHs(false) instead of getImplicitValence().
4413   (GitHub #60)
4414 - bzip2 files now work better with the SDWriter class. (GitHub #63)
4415 - a crashing bug in InChI generation was fixed. (GitHub #67)
4416
4417## New Features:
4418 - Sanitization can now be disabled when calling GetMolFrags() from
4419   Python (GitHub #39)
4420 - Bond.GetBondTypeAsDouble() has been added to the python
4421   wrapper. (GitHub #48)
4422 - The fmcs code now includes a threshold argument allowing the MCS
4423   that hits a certain fraction of the input molecules (instead of all
4424   of them) to be found. The code has also been synced with the most
4425   recent version of Andrew Dalke's version.
4426 - Atoms now have a getTotalValence() (GetTotalValence() from Python)
4427   method. (GitHub #61)
4428 - R labels from Mol files now can go from 0-99
4429 - chiral flags in CTABs are now handled on both reading and writing.
4430   The property "_MolFileChiralFlag" is used.
4431
4432
4433## New Database Cartridge Features:
4434
4435## New Java Wrapper Features:
4436 - {Get,Set}Prop() methods are now available for both Atoms and
4437   Bonds. (GitHub #32)
4438
4439
4440Deprecated modules (to be removed in next release):
4441
4442Removed modules:
4443 - rdkit.utils.pydoc_local
4444
4445## Other:
4446 - the handling of flex/bison output files as dependencies has been
4447   improved (GitHub #33)
4448 - the molecule drawing code should now also work with pillow (a fork of
4449   PIL)
4450 - the PANDAS integration has been improved.
4451
4452
4453# Release_2013.03.2
4454(Changes relative to Release_2013.03.1)
4455
4456## Acknowledgements:
4457Manuel Schwarze
4458
4459## Bug Fixes:
4460 - The hashed topological torsion fingerprints generated are now the
4461   same as in previous rdkit versions. (GitHub issue 25)
4462
4463
4464# Release_2013.03.1
4465(Changes relative to Release_2012.12.1)
4466
4467## IMPORTANT
4468
4469 - The algorithm for hashing subgraphs used in the RDKit fingerprinter
4470   has changed. The new default behavior will return different
4471   fingerprints than previous RDKit versions. This affects usage from
4472   c++, python, and within the postgresql cartridge. See the "## Other"
4473   section below for more details.
4474
4475## Acknowledgements:
4476Paul Czodrowski, Andrew Dalke, Jan Domanski, Jean-Paul Ebejer, Nikolas
4477Fechner, Jameed Hussain, Stephan Reiling, Sereina Riniker, Roger
4478Sayle, Riccardo Vianello
4479
4480## Bug Fixes:
4481 - removeBond now updates bond indices (sf.net issue 284)
4482 - dummy labels are no longer lost when atoms are copied (sf.net issue
4483   285)
4484 - more specific BRICS queries now match before less specific ones
4485   (sf.net issue 287, github issue 1)
4486 - molAtomMapNumber can now be set from Python (sf.net issue 288)
4487 - the legend centering for molecular image grids has been improved
4488   (sf.net issue 289)
4489 - make install now includes all headers (github issue 2)
4490 - InChIs generaged after clearing computed properties are now correct
4491   (github issue 3)
4492 - Reacting atoms that don't change connectivity no longer lose
4493   stereochemistry (github issue 4)
4494 - Aromatic Si is now accepted (github issue 5)
4495 - removeAtom (and deleteSubstructs) now correctly updates stereoAtoms
4496   (github issue 8)
4497 - [cartridge] pg_dump no longer fails when molecules cannot be
4498    converted to SMILES (github issue 9)
4499 - a canonicalization bug in MolFragmentToSmiles was fixed (github issue 12)
4500 - atom labels at the edge of the drawing are no longer cut off (github issue 13)
4501 - a bug in query-atom -- query-atom matching was fixed (github issue 15)
4502 - calling ChemicalReaction.RunReactants from Python with None
4503   molecules no longer leads to a seg fault. (github issue 16)
4504 - AllChem.ReactionFromSmarts now generates an error message when called
4505   with an empty string.
4506 - Writing CTABs now includes information about atom aliases.
4507 - An error in the example fdef file
4508   $RDBASE/Contrib/M_Kossner/BaseFeatures_DIP2_NoMicrospecies.fdef
4509   has been fixed. (github issue 17)
4510 - Quantize.FindVarMultQuantBounds() no longer generates a seg fault
4511   when called with bad arguments. (github issue 18)
4512 - The length of SDMolSuppliers constructed from empty files is no
4513   longer reported as 1. (github issue 19)
4514 - Partial charge calculations now work for B, Si, Be, Mg, and Al.
4515   (github issue 20)
4516 - Two logging problems were fixed (github issues 21 and 24)
4517 - Molecules that have had kappa descriptors generated can now be
4518   written to SD files (github issue 23)
4519
4520## New Features:
4521 - The handling of chirality in reactions has been reworked and
4522   improved. Please see the RDKit Book for an explanation.
4523 - Atom-pair and topological-torsion fingerprints now support the
4524   inclusion of chirality in the atom invariants.
4525 - A number of new compositional descriptors have been added:
4526   calcFractionCSP3, calcNum{Aromatic,Aliphatic,Saturated}Rings,
4527   calcNum{Aromatic,Aliphatic,Saturated}Heterocycles,
4528   calcNum{Aromatic,Aliphatic,Saturated}Carbocycles
4529 - An implementation of the molecular quantum number (MQN) descriptors
4530   has been added.
4531 - RDKFingerprintMol now takes an optional atomBits argument which is
4532   used to return information about which bits atoms are involved in.
4533 - LayeredFingerprintMol no longer takes the arguments tgtDensity and
4534   minSize. They were not being used.
4535 - LayeredFingerprintMol2 has been renamed to PatternFingerprintMol
4536 - The substructure matcher can now properly take stereochemistry into
4537   account if the useChirality flag is provided.
4538 - The module rdkit.Chem.Draw.mplCanvas has been added back to svn.
4539 - A new module integrating the RDKit with Pandas (rdkit.Chem.PandasTools)
4540   has been added.
4541
4542## New Database Cartridge Features:
4543 - The new compositional descriptors are available:
4544   calcFractionCSP3, calcNum{Aromatic,Aliphatic,Saturated}Rings,
4545   calcNum{Aromatic,Aliphatic,Saturated}Heterocycles,
4546   calcNum{Aromatic,Aliphatic,Saturated}Carbocycles
4547 - MACCS fingerprints are available
4548 - the substruct_count function is now available
4549 - substructure indexing has improved. NOTE: indexes on molecule
4550    columns will need to be rebuilt.
4551
4552## New Java Wrapper Features:
4553 - The new compositional descriptors are available:
4554   calcFractionCSP3, calcNum{Aromatic,Aliphatic,Saturated}Rings,
4555   calcNum{Aromatic,Aliphatic,Saturated}Heterocycles,
4556   calcNum{Aromatic,Aliphatic,Saturated}Carbocycles
4557 - The molecular quantum number (MQN) descriptors are available
4558 - MACCS fingerprints are available
4559 - BRICS decomposition is available.
4560
4561Deprecated modules (to be removed in next release):
4562
4563Removed modules:
4564
4565## Other:
4566 - RDKit fingerprint generation is now faster. The hashing algorithm
4567   used in the RDKit fingerprinter has changed.
4568 - Force-field calculations are substantially faster (sf.net issue 290)
4569 - The core of the BRICS implementation has been moved into C++.
4570 - The MACCS fingerprint implementation has been moved into
4571   C++. (contribution from Roger Sayle)
4572 - New documentation has been added: Cartridge.rst, Overview.rst,
4573   Install.rst
4574
4575# Release_2012.12.1
4576(Changes relative to Release_2012.09.1)
4577
4578## IMPORTANT
4579
4580## Acknowledgements:
4581Andrew Dalke, James Davidson, Robert Feinstein, Nikolas Fechner,
4582Nicholas Firth, Markus Hartenfeller, Jameed Hussain, Thorsten Meinl,
4583Sereina Riniker, Roger Sayle, Gianluca Sforna, Pat Walters, Bernd
4584Wiswedel
4585
4586## Bug Fixes:
4587 - Using parentheses for zero-level grouping now works in reaction
4588   SMARTS. This allows intramolecular reactions to be expressed.
4589 - SMILES generated for molecules with ring stereochemistry
4590   (e.g. N[C@H]1CC[C@H](CC1)C(O)=O) are now canonical. (issue 40)
4591 - SKP lines in a CTAB property block are now properly handled. (issue
4592   255)
4593 - The molecular drawing code now shows dotted lines for Any bonds.
4594   (issue 260)
4595 - ROMol::debugMol() (ROMol.DebugMol() in Python) now reports isotope
4596   information. (issue 261)
4597 - The molecular drawing code now correctly highlights wedged bonds.
4598   (issue 262)
4599 - RWMol::addAtom() now adds atoms to conformers.
4600   (issue 264)
4601 - TDT files with atomic coordinates now have those coordinates in the
4602   correct order. (issue 265)
4603 - A ring-finding error/crash has been fixed. (issue 266)
4604 - Dummy atoms now have a default valence of 0 and no maximum
4605   valence. (issue 267)
4606 - The Python code no longer throws string exceptions. (issue 268)
4607 - Invalid/unrecognized atom symbols in CTABs are no longer
4608   accepted. (issue 269)
4609 - Chem.RDKFingerprint now accepts atom invariants with values larger
4610   than the number of atoms. (issue 270)
4611 - The code should now all work when the locale (LANG) is set to
4612   values other than "C" or one of the English locales. (issue 271)
4613 - Two-coordinate Hs are no longer removed by
4614   MolOps::removeHs(). (issue 272)
4615 - R groups read from CTABs are now marked using setIsotope() instead
4616   of setMass(). (issue 273)
4617 - Hs present in the molecule graph no longer incorrectly impact
4618   substructure matches. (issue 274)
4619 - Murcko decomposition of molecules with chiral ring atoms now
4620   works. (issue 275)
4621 - Methane now shows up in molecular drawings. (issue 276)
4622 - '&' in SLN properties is now correctly handled. (issue 277)
4623 - Molecules with string-valued molAtomMapNumber atomic properties can
4624   now be serialized. (issue 280)
4625 - SMARTS strings containing a dot in a recursive piece are now
4626   properly parsed. (issue 281)
4627 - The SMILES and SLN parsers no longer leak memory when sanitization
4628   of the result molecule fails. (issue 282)
4629 - The cairo canvas drawing code now works with PIL v1.1.6 as well as
4630   more recent versions.
4631
4632## New Features:
4633 - RDKit ExplicitBitVects and DiscreteValueVects can now be directly
4634   converted into numpy arrays.
4635 - Rogot-Goldberg similarity has been added.
4636 - C++: BitVects and SparseIntVects now support a size() method.
4637 - C++: DiscreteValueVects now support operator[].
4638 - An initial version of a SWIG wrapper for C# has been added.
4639 - Support for easily adding recursive queries to molecules and
4640   reactions has been added. More documentation is required for this
4641   feature.
4642 - To allow more control over the reaction, it is possible to flag reactant
4643   atoms as being protected by setting the "_protected" property on those
4644   atoms. Flagged atoms will not be altered in the reaction.
4645 - Atoms and Bonds now support a ClearProp() method from python.
4646 - The new Python module rdkit.ML.Scoring.Scoring includes a number of
4647   standard tools for evaluating virtual screening experiments: ROC
4648   curve generation, AUC, RIE, BEDROC, and Enrichment.
4649 - The function RDKit::Descriptors::getCrippenAtomContribs()
4650   (rdkit.Chem.rdMolDescriptors._CalcCrippenContribs() from Python)
4651   can now optionally return atom-type information as ints or text.
4652
4653
4654## New Database Cartridge Features:
4655- The Chi and Kappa descriptors are now available
4656
4657## New Java Wrapper Features:
4658- The Chi and Kappa descriptors are now available
4659
4660Deprecated modules (to be removed in next release):
4661
4662Removed modules:
4663- The old SWIG wrapper code in $RDBASE/Code/Demos/SWIG has been
4664  removed. The SWIG wrappers are now in $RDBASE/Code/JavaWrappers
4665
4666## Other:
4667- The C++ code for drawing molecules previously found in
4668  $RDBASE/Code/Demos/RDKit/Draw has been moved to
4669  $RDBASE/Code/GraphMol/MolDrawing
4670- Calculation of the Chi and Kappa descriptors has been moved into
4671  C++.
4672- To make builds easier, the thread-safety of the recursive-smarts
4673  matcher has been made optional. The build option is
4674  RDK_BUILD_THREADSAFE_SSS.
4675- There are two new entries in the Contrib directory:
4676  * Contrib/PBF : An implementation of the Plane of Best Fit
4677    contributed by Nicholas Firth.
4678  * Contrib/mmpa : An implementation of GSK's matched molecular pairs
4679    algorithm contributed by Jameed Hussain
4680- A new "Cookbook" has been added to the documentation to provide
4681  a collection of recipes for how to do useful tasks.
4682
4683
4684# Release_2012.09.1
4685(Changes relative to Release_2012.06.1)
4686
4687## IMPORTANT
4688 - Some of the bug fixes affect the generation of SMILES. Canonical
4689   SMILES generated with this version of the RDKit will be different
4690   from previous versions.
4691 - The fix to Issue 252 (see below) will lead to changes in calculated
4692   logP and MR values for some compounds.
4693 - The fix to Issue 254 (see below) will lead to changes in some
4694   descriptors and geometries for sulfur-containing compounds.
4695 - The fix to Issue 256 (see below) has changed the name of the
4696   optional argument to mol.GetNumAtoms from onlyHeavy to
4697   onlyExplicit. For compatibility reasons, Python code that uses
4698   explicitly uses onlyHeavy will still work, but it will generate
4699   warnings. This compatibility will be removed in a future release.
4700
4701## Acknowledgements:
4702Gianpaolo Bravi, David Cosgrove, Andrew Dalke, Fabian Dey, James
4703Davidson, JP Ebejer, Gabriele Menna, Stephan Reiling, Roger Sayle,
4704James Swetnam
4705
4706## Bug Fixes:
4707- The molecules that come from mergeQueryHs() now reset the RingInfo
4708  structure. (issue 245)
4709- The output from MurckoScaffold.MakeScaffoldGeneric no longer
4710  includes stereochemistry or explicit Hs. (issue 246)
4711- D and T atoms in CTABs now have their isotope information
4712  set. (issue 247)
4713- Some problems with ring finding in large, complex molecules have
4714  been fixed. (issue 249)
4715- The "rootedAtAtom" argument for FindAllSubgraphsOfLengthN is now
4716  handled properly. (issue 250)
4717- Bonds now have a SetProp() method available in Python. (issue 251)
4718- A number of problems with the Crippen atom parameters have been
4719  fixed. (issue 252)
4720- Ring closure digits are no longer repeated on the same atom in
4721  SMILES generated by the RDKit. (issue 253)
4722- Non-ring sulfur atoms adjacent to aromatic atoms are no longer set
4723  to be SP2 hybridized. This allows them to be stereogenic. (issue
4724  254)
4725- The combineMols() function now clears computed properties on the
4726  result molecule.
4727- A couple of problems with the pickling functions on big endian
4728  hardware were fixed.
4729- The molecule drawing code now uses isotope information
4730- Superscript/Subscript handling in the agg canvas has been improved.
4731- SKP lines in CTABS are now propertly handled. (Issue 255)
4732- The name of the optional argument to mol.GetNumAtoms has been
4733  changed from onlyHeavy to onlyExplicit. The method counts the number
4734  of atoms in the molecular graph, not the number of heavy
4735  atoms. These numbers happen to usually be the same (which is why
4736  this has taken so long to show up), but there are exceptions if Hs
4737  or dummy atoms are in the graph. (Issue 256)
4738- Unknown bonds in SMILES are now output using '~' instead of '?'. The
4739  SMILES parser now recognizes '~' as an "any bond" query. (Issue 257)
4740- Lines containing only white space in SDF property blocks are no
4741  longer treated as field separators.
4742- Transition metals and lanthanides no longer have default valences
4743  assigned.
4744
4745## New Features:
4746- The RDKit now has a maximum common substructure (MCS) implementation
4747  contributed by Andrew Dalke. This is currently implemented in Python
4748  and is available as: from rdkit.Chem import MCS Documentation is
4749  available as a docstring for the function MCS.FindMCS and in the
4750  GettingStarted document.
4751- A few new functions have been added to rdkit.Chem.Draw:
4752  MolsToImage(), MolsToGridImage(), ReactionToImage()
4753- CalcMolFormula() now provides the option to include isotope
4754  information.
4755- The RDKit and Layered fingerprinters both now accept "fromAtoms"
4756  arguments that can be used to limit which atoms contribute to the
4757  fingerprint.
4758- Version information is now available in the Java wrapper.
4759- The descriptor NumRadicalElectrons is now available.
4760- The PyMol interface now supports a GetPNG() method which returns the
4761  current contents of the viewer window as an PIL Image object.
4762- Molecules (ROMol in C++, rdkit.Chem.Mol in Python) now have a
4763  getNumHeavyAtoms() method.
4764- Component-level grouping (parens) can be used in reaction SMARTS.
4765
4766
4767## New Database Cartridge Features:
4768- support for molecule <-> pickle conversion via the functions
4769  mol_to_pkl, mol_from_pkl, and is_valid_mol_pkl.
4770- support for bit vector <-> binary text conversion via the functions
4771  bfp_to_binary_text, bfp_from_binary_text
4772
4773## New Java Wrapper Features:
4774
4775Deprecated modules (to be removed in next release):
4776
4777Removed modules:
4778
4779## Other:
4780- During this release cycle, the sourceforge project was updated to
4781  their new hosting system. This explains the change in bug/issue
4782  ids.
4783- the SMILES parser is now substantially faster.
4784- The molecular drawings generated by Code/Demo/RDKit/Draw/MolDrawing.h
4785  have been improved.
4786- There is now demo code availble for using the C++ drawing code
4787  within Qt applications. (contributed by David Cosgrove)
4788- The directory $RDBASE/Regress now contains sample data and
4789  scripts for benchmarking the database cartridge.
4790- Fused-ring aromaticity is now only considered in rings of up to size
4791  24.
4792- It is no longer necessary to have flex and bison installed in order
4793  to build the RDKit.
4794
4795
4796# Release_2012.06.1
4797(Changes relative to Release_2012.03.1)
4798
4799## IMPORTANT
4800 - Some of the bug fixes affect the generation of SMILES. Canonical
4801   SMILES generated with this version of the RDKit will be different
4802   from previous versions.
4803
4804## Acknowledgements:
4805Andrew Dalke, JP Ebejer, Igor Filippov, Peter Gedeck, Jan Holst
4806Jensen, Adrian Jasiński, George Papadatos, Andrey Paramonov, Adrian
4807Schreyer, James Swetnam
4808
4809## Bug Fixes:
4810 - Radicals are now indicated in molecular depictions. (Issue 3516995)
4811 - Calling .next() on an SDMolSupplier at eof no longer results in an
4812   infinite loop. (Issue 3524949)
4813 - Chirality perception no longer fails in large molecules.
4814   (Issue 3524984)
4815 - problem creating molblock for atom with four chiral nbrs
4816   (Issue 3525000)
4817 - A second sanitization leads to a different molecule.
4818   (Issue 3525076)
4819 - can't parse Rf atom in SMILES
4820   (Issue 3525668)
4821 - generates [HH2-] but can't parse it
4822   (Issue 3525669)
4823 - improper (re)perception of 1H-phosphole
4824   (Issue 3525671)
4825 - ForwardSDMolSupplier not skipping forward on some errors
4826   (Issue 3525673)
4827 - SMILES/SMARTS parsers don't recognize 0 atom maps
4828   (Issue 3525776)
4829 - R group handling in SMILES
4830   (Issue 3525799)
4831 - Canonical smiles failure in symmetric heterocycles
4832   (Issue 3526810)
4833 - Canonical smiles failure with "extreme" isotopes
4834   (Issue 3526814)
4835 - Canonical smiles failure with many symmetric fragments
4836   (Issue 3526815)
4837 - Canonical smiles failure with dependent double bonds
4838   (Issue 3526831)
4839 - Build Fails Due to Missing include in Code/RDBoost/Wrap.h
4840   (Issue 3527061)
4841 - Incorrect template parameter use in std::make_pair
4842   (Issue 3528136)
4843 - Canonicalization failure in cycle
4844   (Issue 3528556)
4845 - incorrect values reported in ML analysis
4846   (Issue 3528817)
4847 - Cartridge does not work on 32bit ubuntu 12.04
4848   (Issue 3531232)
4849 - Murcko Decomposition generates unuseable molecule.
4850   (Issue 3537675)
4851 - A few memory leaks were fixed in the Java Wrappers
4852 - The exact mass of molecules with non-standard isotopes is now
4853   calculated correctly.
4854 - The default (Euclidean) distance metric should now work with Butina
4855   clustering.
4856 - Some bugs in the depictor were fixed.
4857 - AvalonTools bug with coordinate generation for mols with no
4858   conformers fixed.
4859
4860## New Features:
4861 - ChemicalFeatures now support an optional id
4862 - Isotope handling has been greatly improved. Atoms now have a
4863   getIsotope() (GetIsotope() in Python) method that returns zero if
4864   no isotope has been set, the isotope number otherwise.
4865 - The function MolFragmentToSmiles can be used to generate canonical
4866   SMILES for pieces of molecules.
4867 - The function getHashedMorganFingerprint (GetHashedMorganFingerprint
4868   in Python) has been added.
4869
4870## New Database Cartridge Features:
4871 - The functions mol_from_smiles(), mol_from_smarts(), and
4872   mol_from_ctab() now return a null value instead of generating an
4873   error when the molecule processing fails. This allows molecule
4874   tables to be constructed faster.
4875 - The functions mol_to_smiles() and mol_to_smarts() have been added.
4876 - Creating gist indices on bit-vector fingerprint columns is faster.
4877 - The indexing fingerprint for molecular substructures has been changed.
4878   The new fingerprint is a bit slower to generate, but is
4879   considerably better at screening. More information here:
4880   http://code.google.com/p/rdkit/wiki/ImprovingTheSubstructureFingerprint
4881
4882## New Java Wrapper Features:
4883
4884Deprecated modules (to be removed in next release):
4885 - Support for older (pre9.1) postgresql versions.
4886
4887Removed modules:
4888 - rdkit.Excel
4889 - the code in $RDBASE/Code/PgSQL/RDLib
4890 - rdkit.Chem.AvailDescriptors : the same functionality is now available
4891   in a more useable manner from rdkit.Chem.Descriptors
4892
4893## Other:
4894 - Similarity calculations on ExplicitBitVectors should now be much faster
4895 - Use of [Xa], [Xb], etc. for dummy atoms in SMILES is no longer
4896   possible. Use the "*" notation and either isotopes (i.e. [1*],
4897   [2*]) or atom maps (i.e. [*:1], [*:2]) instead.
4898 - Initial work was done towards make the RDKit work on big endian
4899   hardware (mainly changes to the way pickles are handled)
4900 - Canonical SMILES generation is now substantially faster.
4901
4902# Release_2012.03.1
4903(Changes relative to Release_2011.12.1)
4904
4905## IMPORTANT
4906 - The atom-atom match behavior for non-query atoms has been changed.
4907    This affects the results of doing substructure matches using
4908    query molecules that are not constructed from SMARTS.
4909
4910## Acknowledgements:
4911JP Ebejer, Paul Emsley, Roger Sayle, Adrian Schreyer, Gianluca Sforna,
4912Riccardo Vianello
4913
4914## Bug Fixes:
4915- the older form of group evaluations in Mol blocks is now correctly
4916  parsed. (Issue 3477283)
4917- some problems with handling aromatic boron were fixed. (Issue 3480481)
4918- the SD writer no longer adds an extra $$$$ when molecule parsing
4919  fails (Issue 3480790)
4920- molecules in SD files that don't contain atoms are now parsed
4921  without warnings and their properties are read in. (Issue 3482695)
4922- it's now possible to embed molecules despite failures in the triangle
4923  bounds checking (Issue 3483968)
4924- Isotope information in Mol blocks is now written to M ISO lines
4925  instead of going in the atom block. (Issue 3494552)
4926- Better 2D coordinates are now generated for neighbors of atoms with
4927  unspecified hybridization. (Issue 3487469)
4928- Dummy atoms and query atoms are now assigned UNSPECIFIED hybridization
4929  instead of SP. (Issue 3487473)
4930- Error reporting for SMARTS involving recursion has been improved.
4931  (Issue 3495296)
4932- Some problems of queries and generating SMARTS for queries were resolved.
4933  (Issues 3496759, 3496799, 3496800)
4934- It's now possible to do database queries with SMARTS that use the index.
4935  (Issue 3493156).
4936- A series of problems related to thread safety were fixed.
4937- Tracking the lifetime of owning molecules across the C++/Python
4938  border is now being handled better (Issue 3510149)
4939- A bug with ring-finding in some complex fused ring systems was fixed.
4940  (Issue 3514824)
4941- The AllChem module now imports successfully even if the SLN parser
4942hasn't been built.
4943
4944## New Features:
4945- The molecular sanitization is now configurable using an optional
4946  command-line argument.
4947- It's now possible to get information from the sanitization routine
4948  about which operation failed.
4949- Suppliers support GetLastItemText()
4950- ComputeDihedralAngle() and ComputeSignedDihedralAngle() were added
4951  to the rdkit.Geometry module.
4952- computeSignedDihedralAngle() was added to the C++ API
4953- ChemicalReactions now support a GetReactingAtoms() method
4954- the Mol file and Mol block parsers, as well as the SD suppliers,
4955  now support an optional "strictParsing" argument.
4956  When this is set to False, problems in the structure of the
4957  input file are ignored when possible
4958- EditableMols return the index of the atom/bond added by AddAtom/AddBond
4959- rdkit.Chem.Draw.MolToImage() now supports an optional "legend" argument
4960- The MolToSmiles function now supports an optional "allBondsExplicit" argument.
4961
4962## New Database Cartridge Features:
4963- the functions mol_from_smiles() and mol_from_smarts() were added
4964
4965## New Java Wrapper Features:
4966- the diversity picker now supports an optional random-number seed
4967
4968Deprecated modules (to be removed in next release):
4969- rdkit.Excel
4970
4971Removed modules:
4972- rdkit.ML.Descriptors.DescriptorsCOM
4973- rdkit.ML.Composite.CompositeCOM
4974
4975## Other:
4976- Assigning/cleaning up stereochemistry is now considerably
4977faster. This makes standard molecule construction faster.
4978
4979
4980# Release_2011.12.1
4981(Changes relative to Release_2011.09.1)
4982
4983## IMPORTANT
4984 - The functions for creating bit vector fingerprints using atom pairs
4985   and topological torsions have been changed. The new default
4986   behavior will return different fingerprints than previous RDKit
4987   versions. This affects usage from c++, python, and within the
4988   postgresql cartridge. See the "## Other" section below for more
4989   details.
4990 - Due to a bug fix in the parameter set, the MolLogP and MolMR
4991   descriptor calculators now return different values for some
4992   molecules. See the "## Bug Fixes" section below for more details.
4993 - To make storage more efficient, the size of the fingerprint
4994   used to store morgan fingerprints in the database cartridge
4995   has been changed from 1024 bits to 512 bits. If you update
4996   the cartridge version all morgan and featmorgan fingerprints
4997   and indices will need to be re-generated.
4998
4999## Acknowledgements:
5000Andrew Dalke, JP Ebejer, Roger Sayle, Adrian Schreyer, Gianluca
5001Sforna, Riccardo Vianello, Toby Wright
5002
5003## Bug Fixes:
5004- molecules with polymeric S group information are now rejected by the
5005  Mol file parser. (Issue 3432136)
5006- A bad atom type definition and a bad smarts definition were fixed in
5007  $RDBASE/Data/Crippen.txt. This affects the values returned by the
5008  logp and MR calculators. (Issue 3433771)
5009- Unused atom-map numbers in reaction products now produce warnings
5010  instead of errors. (Issue 3434271)
5011- rdMolDescriptors.GetHashedAtomPairFingerprint() now works. (Issue
5012  3441641)
5013- ReplaceSubstructs() now copies input molecule conformations to the
5014  output molecule. (Issue 3453144)
5015- three-coordinate S and Se are now stereogenic (i.e. the
5016  stereochemistry of O=[S@](C)F is no longer ignored). (Issue 3453172)
5017
5018## New Features:
5019- Integration with the new IPython graphical canvas has been
5020  added. For details see this wiki page:
5021http://code.google.com/p/rdkit/wiki/IPythonIntegration
5022- Input and output from Andrew Dalke's FPS format
5023  (http://code.google.com/p/chem-fingerprints/wiki/FPS) for
5024  fingerprints.
5025- The descriptor CalcNumAmideBonds() was added.
5026
5027## New Database Cartridge Features:
5028- Support for PostgreSQL v9.1
5029- Integration with PostgreSQL's KNN-GIST functionality. (Thanks to
5030  Adrian Schreyer)
5031- the functions all_values_gt(sfp,N) and all_values_lt(sfp,N) were
5032  added.
5033
5034## New Java Wrapper Features:
5035- A function for doing diversity picking using fingerprint similarity.
5036- support for the Avalon Toolkit (see below)
5037
5038Deprecated modules (to be removed in next release):
5039- rdkit.Excel
5040- rdkit.ML.Descriptors.DescriptorsCOM
5041- rdkit.ML.Composite.CompositeCOM
5042
5043Removed modules:
5044- rdkit.WebUtils
5045- rdkit.Reports
5046- rdkit.mixins
5047
5048## Other:
5049- Improvements to the SMARTS parser (Roger Sayle)
5050- The atom-pair and topological-torsion fingerprinting functions that
5051  return bit vectors now simulate counts by setting multiple bits in
5052  the fingerprint per atom-pair/torsion. The number of bits used is
5053  controlled by the nBitsPerEntry argument, which now defaults to 4.
5054  The new default behavior does a much better job of reproducing the
5055  similarities calculated using count-based fingerprints: 95% of
5056  calculated similarities are within 0.09 of the count-based value
5057  compared with 0.22 or 0.17 for torsions and atom-pairs previously.
5058  To get the old behavior, set nBitsPerEntry to 1.
5059- Optional support has been added for the Avalon Toolkit
5060(https://sourceforge.net/projects/avalontoolkit/) to provide an
5061alternate smiles canonicalization, fingerprint, and 2D coordination
5062generation algorithm.
5063- The SLN support can now be switched off using the cmake variable
5064RDK_BUILD_SLN_SUPPORT.
5065- There are now instructions for building the RDKit and the SWIG
5066wrappers in 64bit mode on windows.
5067
5068# Release_2011.09.1
5069(Changes relative to Release_2011.06.1)
5070
5071## IMPORTANT
5072 - A bug in the definition of the Lipinski HBD descriptor was fixed in
5073   this release. The descriptor Lipinski.NHOHCount will return
5074   different values for molecules containing Ns or Os with more than
5075   one attached H.
5076
5077## Acknowledgements:
5078Eddie Cao, Richard Cooper, Paul Czodrowski, James Davidson, George
5079Papadatos, Riccardo Vianello
5080
5081## Bug Fixes:
5082 - A problem with interpretation of stereochemistry from mol files was
5083   fixed (Issue 3374639)
5084 - Sterochemistry information for exocyclic double bonds in mol blocks
5085   is no longer lost. (Issue 3375647)
5086 - linear double bonds from mol files now have their stereochemistry
5087   set correctly(Issue 3375684)
5088 - Chirality for phosphates and sulfates is not longer automatically
5089   removed. (Issue 3376319)
5090 - A bug with the reading of query information from mol files was
5091   fixed. (Issue 3392107)
5092 - Sterochemistry is now cleaned up after processing mol2
5093   files. (Issue 3399798)
5094 - mergeQueryHs now correctly handles atoms with multiple Hs (Issue
5095   3415204)
5096 - mergeQueryHs now correctly handles atoms without initial query
5097   information (Issue 3415206)
5098 - the calcLipinskiHBD() (equivalent to Lipinski.NHOHCount) descriptor
5099   now correctly handles Ns or Os with multiple Hs. (Issue 3415534)
5100 - Morgan fingerprints generated using the fromAtoms argument now have
5101   all bits from those atoms set.(Issue 3415636)
5102 - A problem with the way MolSuppliers handle the EOF condition when
5103   built with the most recent versions of g++ was fixed.
5104 - Translation of RDKit stereochemistry information into InChI
5105   stereochemistry information is improved.
5106
5107## New Features:
5108
5109## New Database Cartridge Features:
5110 - molecules can now be built from mol blocks using the function
5111   mol_from_ctab(). The corresponding is_valid_ctab() function was
5112   also added.
5113 - the radius argument is now optional for the functions morganbv_fp,
5114   morgan_fp, featmorganbv_fp, and featmorgan_fp. The default radius
5115   for all four functions is 2.
5116
5117Deprecated modules (to be removed in next release):
5118
5119Removed modules:
5120
5121## Other:
5122 - The documentation in $RDBASE/Docs/Book has been migrated to use
5123   Sphinx instead of OpenOffice.
5124 - The optional InChI support can now be built using a system
5125   installation of the InChI library.
5126
5127
5128
5129# Release_2011.06.1
5130(Changes relative to Release_2011.03.2)
5131
5132## Acknowledgements:
5133 - Eddie Cao, Andrew Dalke, James Davidson, JP Ebejer, Gianluca
5134   Sforna, Riccardo Vianello, Bernd Wiswedel
5135
5136## Bug Fixes:
5137 - A problem with similarity values between SparseIntVects that
5138   contain negative values was fixed. (Issue 3295215)
5139 - An edge case in SmilesMolSupplier.GetItemText() was fixed. (Issue
5140   3299878)
5141 - The drawing code now uses dashed lines for aromatic bonds without
5142   kekulization. (Issue 3304375)
5143 - AllChem.ConstrainedEmbed works again. (Issue 3305420)
5144 - atomic RGP values from mol files are accessible from python (Issue
5145   3313539)
5146 - M RGP blocks are now written to mol files. (Issue 3313540)
5147 - Atom.GetSymbol() for R atoms read from mol files is now
5148   correct. (Issue 3316600)
5149 - The handling of isotope specifications is more robust.
5150 - A thread-safety problem in SmilesWrite::GetAtomSmiles() was fixed.
5151 - some of the MACCS keys definitions have been corrected
5152 - Atoms with radical counts > 2 are no longer always written to CTABs
5153   with a RAD value of 3. (Issue 3359739)
5154
5155## New Features:
5156 - The smiles, smarts, and reaction smarts parsers all now take an additional
5157   argument, "replacements", that carries out string substitutions pre-parsing.
5158 - There is now optional support for generating InChI codes and keys
5159   for molecules.
5160 - the atom pair and topological torsion fingerprint generators now
5161   take an optional "ignoreAtoms" argument
5162 - a function to calculate exact molecular weight was added.
5163 - new java wrappers are now available in $RDBASE/Code/JavaWrappers
5164 - the methods getMostCommonIsotope() and getMostCommonIsotopeMass()
5165   have been added to the PeriodicTable class.
5166
5167## New Database Cartridge Features:
5168 - Support for generating InChIs and InChI keys
5169   (if the RDKit InChI support is enabled).
5170
5171Deprecated modules (to be removed in next release):
5172 - The original SWIG wrappers in $RDBASE/Code/Demos/SWIG are deprecated
5173
5174Removed modules:
5175
5176## Other:
5177 - The quality of the drawings produced by both the python molecule drawing
5178   code and $RDBASE/Code/Demos/RDKit/Draw is better.
5179 - the python molecule drawing code will now use superscripts and
5180   subscripts appropriately when using the aggdraw or cairo canvases
5181   (cairo canvas requires pango for this to work).
5182 - $RDBASE/Code/Demos/RDKit/Draw now includes an example using cairo
5183 - A lot of compiler warnings were cleaned up.
5184 - The error reporting in the SMILES, SMARTS, and SLN parsers was improved.
5185 - the code for calculating molecular formula is now in C++
5186   (Descriptors::calcMolFormula())
5187
5188
5189# Release_2011.03.2
5190(Changes relative to Release_2011.03.1)
5191
5192## Bug Fixes:
5193 - A problem in the refactored drawing code that caused the
5194   rdkit.Chem.Draw functionality to not work at all was fixed.
5195
5196
5197# Release_2011.03.1
5198(Changes relative to Release_2010.12.1)
5199
5200## Acknowledgements:
5201 - Eddie Cao, James Davidson, Kirk DeLisle, Peter Gedeck, George
5202   Magoon, TJ O'Donnell, Gianluca Sforna, Nik Stiefl, Bernd Wiswedel
5203
5204## Bug Fixes:
5205 - The performance of SSSR finding for molecules with multiple highly-fused
5206   ring systems has been improved. (Issue 3185548)
5207 - Isotope information is now correctly saved when molecules are
5208   serialized (pickled). (Issue 3205280)
5209 - Generating SMILES for a molecule no longer changes the
5210   molecule. This fixes a round-trip bug with certain highly symmetric
5211   molecules read from SD files. (Issue 3228150)
5212 - Another bounds-matrix generation bug for highly (con)strained
5213   systems was fixed. (Issue 3238580)
5214 - Conformation information is now better handled by deleteSubstructs(),
5215   replaceSubstructs(), and replaceCore().
5216
5217## New Features:
5218 - the rdkit.Chem.Draw package has been significantly refactored.
5219 - Code for doing Murcko decomposition of molecules has been
5220   added. From Python this is in the module:
5221   rdkit.Chem.Scaffolds.MurckoScaffold
5222   It's available in C++ in the GraphMol/ChemTransforms area.
5223 - rdkit.Chem.AllChem.TransformMol() now takes optional arguments
5224   allowing the conformation to be transformed to be specified and
5225   other existing conformations to be preserved.
5226 - Calculations for most of the descriptors in rdkit.Chem.Lipinski and
5227   rdkit.Chem.MolSurf have been moved into C++. The python API is the
5228   same, but the calculations should be somewhat faster.
5229 - Extensive feature additions to the SWIG-based java wrapper.
5230 - The Chem.ReplaceCore() function is now better suited for use
5231   in R-group decomposition.
5232 - The Morgan fingerprinting code can now return information about
5233   which atoms set particular bits.
5234 - The function pathToSubmol() now copies coordinate information
5235   from conformations (if present). The function is also now available
5236   from Python
5237 - The path and subgraph finding code now takes an optional
5238   rootedAtAtom argument to allow only paths/subgraphs that start at a
5239   particular atom to be generated.
5240 - The function findAtomEnvironmentOfRadiusN has been added to allow
5241   circular atom environments to be located in molecules.
5242 - MolOps::assignStereochemistry now can also flag potential
5243   stereocenters that are not specified.
5244
5245## New Database Cartridge Features:
5246 - the descriptor-calculation functions mol_numrotatablebonds(),
5247   mol_numheteroatoms(), mol_numrings(), and mol_tpsa() have been
5248   added.
5249
5250Deprecated modules (to be removed in next release):
5251
5252Removed modules:
5253
5254## Other:
5255 - In C++, the functions CalcCrippenDescriptors and CalcAMW have been
5256   renamed calcCrippenDescriptors and calcAMW to make them consistent
5257   with the other descriptor calculators.
5258 - The molecule serialization (pickling) format has been changed. The
5259   new format is more compact.
5260
5261
5262
5263# Release_2010.12.1
5264(Changes relative to Release_2010.09.1)
5265
5266## IMPORTANT
5267 - Due to changes made to the fingerprinting code, RDKit and layered
5268   fingerprints generated with this release are not compatible with
5269   those from previous releases. For users of the database cartridge:
5270   you will need to re-generate RDKit fingerprint columns and any
5271   indices on molecule tables.
5272
5273## Acknowledgements:
5274 - Eddie Cao, Andrew Dalke, James Davidson, Kirk DeLisle, Peter Gedeck,
5275   TJ O'Donnell, Gianluca Sforna, Nik Stiefl, Riccardo Vianello
5276
5277## Bug Fixes:
5278 - The depiction code no longer crashes with single-atom templates
5279   (issue 3122141)
5280 - Aromatic bonds in the beginning of a SMILES branch are now
5281   correctly parsed (issue 3127883)
5282 - A crash when generating 2d constrained coordinates was fixed (issue
5283   3135833)
5284 - Stereochemistry no longer removed from double bonds in large
5285   rings. (issue 3139534)
5286 - Atom mapping information no longer in reaction products (issue
5287   3140490)
5288 - Smiles parse failure with repeated ring labels and dot disconnects
5289   fixed (issue 3145697)
5290 - a bug causing the molecule drawing code to not use the cairo canvas
5291   when it's installed was fixed
5292 - the SMILES generated for charged, aromatic Se or Te has been fixed
5293   (issue 3152751)
5294 - PropertyMols constructed from pickles and then written to SD files
5295   will now include the properties in the SD file.
5296 - SMILES can now be generated correctly for very large molecules
5297   where more than 50 rings are open at once. (issue 3154028)
5298
5299## New Features:
5300 - All molecular descriptor calculators are now pulled in by the
5301   rdkit.Chem.Descriptors module. So you can do things like:
5302   Descriptors.MolLogP(mol) or Descriptors.fr_amide(mol)
5303 - Atom-map numbers in SMILES are now supported. They can be accessed
5304   as the atomic "molAtomMapNumber" property. (issue 3140494)
5305 - It's now possible to tell the RDKit to generate non-canonical
5306   SMILES via an optional argument to MolToSmiles. This is faster than
5307   generating canonical SMILES, but is primarity intended for
5308   debugging/testing. (issue 3140495)
5309 - The function GenerateDepictionMatching2DStructure() has been added
5310   to the rdkit.Chem.AllChem module to make generating
5311   template-aligned depictions easier.
5312 - Generating FCFP-like fingerprints is now more straightforward via
5313   the useFeatures optional argument to GetMorganFingerprint()
5314 - Extensive changes were made to the layered fingerprinting code to
5315   allow better coverage of queries.
5316 - Functionality for stripping common salts from molecules has been
5317   added in rdkit.Chem.SaltRemover. The salts themselves are defined
5318   in $RDBASE/Data/Salts.txt
5319 - Functionality for recognizing common functional groups has been
5320   added in rdkit.Chem.FunctionalGroups. The functional groups
5321   themselves are defined in
5322   $RDBASE/Data/Functional_Group_Hierarchy.txt
5323
5324## New Database Cartridge Features:
5325 - The cartridge now supports SMARTS queries.
5326 - The functions is_valid_{smiles,smarts}() are now available
5327   (issue 3097359).
5328 - The operator @= is now supported for testing molecule equality.
5329   (issue 3120707)
5330 - The functions featmorgan_fp() and featmorganbv_fp() are now
5331   available for generating FCFP-like fingerprints.
5332
5333Deprecated modules (to be removed in next release):
5334 - rdkit.Chem.AvailDescriptors : the same functionality is now available
5335   in a more useable manner from rdkit.Chem.Descriptors (see above).
5336
5337Removed modules:
5338
5339## Other:
5340 - RDKit support has been added to the Knime data mining and reporting
5341   tool. More information is available from the knime.org community
5342   site: http://tech.knime.org/community/rdkit
5343   Thanks to Thorsten, Bernd, Michael, and the rest of the crew at
5344   knime.com for making this possible.
5345 - RPMs to allow easy installation of the RDKit on Fedora/CentOS/RHEL
5346   and similar systems are now available. Thanks to Gianluca Sforna
5347   for doing this work.
5348 - The database cartridge now statically links the RDKit libraries.
5349   This should make installation easier.
5350 - The RDKit fingerprinter now by default sets 2 bits per hashed
5351   subgraph instead of 4. The old behavior can be regained by setting
5352   nBitsPerHash to 4.
5353
5354# Release_2010.09.1
5355(Changes relative to Release_Q22010_1)
5356
5357## IMPORTANT
5358 - Due to changes made to the layered fingerprinting code,
5359   fingerprints generated with this release are not compatible with
5360   fingerprints from earlier releases.
5361 - The default arguments to the Morgan fingerprinting code will yield
5362   fingerprints that are not backwards compatible.
5363
5364## Acknowledgements:
5365 - Andrew Dalke, James Davidson, Paul Emsley, Peter Gedeck,
5366   Uwe Hoffmann, Christian Kramer, Markus Kossner, TJ O'Donnell,
5367   Gianluca Sforna, Nik Stiefl, Riccardo Vianello
5368
5369## Bug Fixes:
5370 - A typo in the parameters for the Crippen clogp calculator was
5371   fixed. (issue 3057201)
5372 - some problems in the layered fingerprinting code were fixed. (issue
5373   3030388)
5374 - a bug in the ring-finding code that could lead to incorrect results
5375   or crashes in large molecules was fixed.
5376 - the Murtagh clustering code should now execute correctly on recent
5377   versions of the MacOS.
5378 - some problems with the cairo canvas were fixed
5379 - a problem with matching non-default isotope SSS queries for molecules
5380   read in from CTABs was fixed (issue 3073163).
5381 - a problem with calculating AMW for molecules with non-default isotopes
5382   was fixed.
5383
5384## New Features:
5385 - a PostgreSQL cartridge for similarity and substructure searching
5386   has been added to the RDKit distribution.
5387 - The Morgan fingerprinting code accepts additional arguments that
5388   control whether or not bond order and chirality are taken into
5389   account. By default chirality is ignored and the bond order is
5390   used. Another change with the MorganFPs is that ring information is
5391   now included by default.
5392 - 2D coordinates can now be generated for chemical reactions.
5393 - The functions IsMoleculeReactantOfReaction and
5394   IsMoleculeProductOfReaction have been added to the C++
5395   interface. From python these are methods of the ChemicalReaction
5396   class:
5397   rxn.IsMoleculeReactant and rxn.IsMoleculeProduct
5398 - The default bond length for depiction can now be changed.
5399 - FCFP-like fingerprints can now be generated with the Morgan
5400   fingerprinting code by starting with feature invariants.
5401 - The close() method has been added to MolWriters.
5402 - Morgan, atom-pair, and topological-torsion fingerprints can now
5403   also be calculated as bit vectors.
5404 - RDKit and layered fingerprints can now be generated using only
5405   linear paths.
5406 - the function findAllPathsOfLengthMtoN() was added
5407
5408Deprecated modules (to be removed in next release):
5409
5410Removed modules:
5411 - rdkit/qtGui
5412 - rdkit/RDToDo
5413 - Projects/SDView
5414
5415## Other:
5416 - As of this release a new version numbering scheme is being used:
5417   YYYY.MM.minor. An example, this release was done in Sept. of 2010
5418   so it's v2010.09.1.
5419 - the RDBASE environment variable is no longer required. It will be
5420   used if set, but the code should work without it
5421 - The directory Contrib/M_Kossner contains two new contributions from
5422   Markus Kossner.
5423 - A change was made to the subgraph matching code that speeds up
5424   substructure searches involving repeated recursive queries.
5425 - the deprecated registerQuery argument has been removed from the
5426   substructure matching functions.
5427 - the empty header files AtomProps.h and BondProps.h have been
5428   removed.
5429 - in order to simplify the build process the test databases are now
5430   in svn
5431 - some python functions to calculate descriptors (i.e. pyMolWt,
5432   pyMolLogP, etc.) that have C++ equivalents have been removed to
5433   clean up the interface
5434 - the PIL canvas should no longer generate warnings
5435 - Thanks to the help of Gianluca Sforna and Riccardo Vianello, it is
5436   now much easier to package and distribute the RDKit.
5437 - the bjam-based build system has been removed.
5438
5439# Release_Q22010_1
5440(Changes relative to Release_Q12010_1)
5441
5442## IMPORTANT
5443 - There are a couple of refactoring changes that affect people using
5444   the RDKit from C++. Please look in the ## Other section below for a list.
5445 - If you are building the RDKit yourself, changes made in this
5446   release require that you use a reasonably up-to-date version of
5447   flex to build it. Please look in the ## Other section below for more
5448   information.
5449
5450## Acknowledgements:
5451 - Andrew Dalke, James Davidson, Kirk DeLisle, Thomas Heller, Peter Gedeck,
5452   Greg Magoon, Noel O'Boyle, Nik Stiefl,
5453
5454## Bug Fixes:
5455 - The depictor no longer generates NaNs for some molecules on
5456   windows (issue 2995724)
5457 - [X] query features work correctly with chiral atoms. (issue
5458   3000399)
5459 - mols will no longer be deleted by python when atoms/bonds returned
5460   from mol.Get{Atom,Bond}WithIdx() are still active. (issue 3007178)
5461 - a problem with force-field construction for five-coordinate atoms
5462   was fixed. (issue 3009337)
5463 - double bonds to terminal atoms are no longer marked as "any" bonds
5464   when writing mol blocks. (issue 3009756)
5465 - a problem with stereochemistry of double bonds linking rings was
5466   fixed. (issue 3009836)
5467 - a problem with R/S assignment was fixed. (issue 3009911)
5468 - error and warning messages are now properly displayed when cmake
5469   builds are used on windows.
5470 - a canonicalization problem with double bonds incident onto aromatic
5471   rings was fixed. (issue 3018558)
5472 - a problem with embedding fused small ring systems was fixed.
5473   (issue 3019283)
5474
5475## New Features:
5476 - RXN files can now be written. (issue 3011399)
5477 - reaction smarts can now be written.
5478 - v3000 RXN files can now be read. (issue 3009807)
5479 - better support for query information in mol blocks is present.
5480   (issue 2942501)
5481 - Depictions of reactions can now be generated.
5482 - Morgan fingerprints can now be calculated as bit vectors (as
5483   opposed to count vectors.
5484 - the method GetFeatureDefs() has been added to
5485   MolChemicalFeatureFactory
5486 - repeated recursive SMARTS queries in a single SMARTS will now be
5487   recognized and matched much faster.
5488 - the SMILES and SMARTS parsers can now be run safely in
5489   multi-threaded code.
5490
5491Deprecated modules (to be removed in next release):
5492 - rdkit/qtGui
5493 - Projects/SDView
5494
5495Removed modules:
5496 - SVD code: External/svdlibc External/svdpackc rdkit/PySVD
5497 - rdkit/Chem/CDXMLWriter.py
5498
5499## Other:
5500 - The large scale changes in the handling of stereochemistry were
5501   made for this release. These should make the code more robust.
5502 - If you are building the RDKit yourself, changes made in this
5503   release require that you use a reasonably up-to-date version of
5504   flex to build it. This is likely to be a problem on Redhat, and
5505   redhat-derived systems. Specifically: if your version of flex is
5506   something like 2.5.4 (as opposed to something like 2.5.33, 2.5.34,
5507   etc.), you will need to get a newer version from
5508   http://flex.sourceforge.net in order to build the RDKit.
5509
5510 - Changes only affecting C++ programmers:
5511   - The code for calculating topological-torsion and atom-pair
5512     fingerprints has been moved from $RDBASE/Code/GraphMol/Descriptors
5513     to $RDBASE/Code/GraphMol/Fingerprints.
5514   - The naming convention for methods of ExplicitBitVect and
5515     SparseBitVect have been changed to make it more consistent with
5516     the rest of the RDKit.
5517   - the bjam-based build system should be considered
5518     deprecated. This is the last release it will be actively
5519     maintained.
5520
5521
5522# Release_Q12010_1
5523(Changes relative to Release_Q42009_1)
5524
5525## Acknowledgements:
5526 - Andrew Dalke, Jean-Marc Nuzillard, Noel O'Boyle, Gianluca Sforna,
5527   Nik Stiefl, Anna Vulpetti
5528
5529## Bug Fixes
5530 - Substantial improvements were made to the SLN parser
5531 - A bad depiction case was fixed. (issue 2948402)
5532 - Hs added to planar carbons are no longer in the same plane as the
5533   other atoms. (issue 2951221)
5534 - Elements early in the periodic table (e.g. Mg, Na, etc.) no longer
5535   have their radical counts incorrectly assigned. (issue 2952255)
5536 - Some improvements were made to the v3k mol file parser. (issue
5537   2952272)
5538 - Double bonds with unspecified stereochemistry are now correctly
5539   flagged when output to mol files. (issue 2963522)
5540 - A segmentation fault that occurred when kekulizing modified
5541   molecules has been fixed. (issue 2983794)
5542
5543## New Features
5544 - The MaxMin diversity picker can now be given a seed for the random
5545   number generator to ensure reproducible results.
5546
5547## Other
5548 - the vflib source, which is no longer used, was removed from the
5549   External source tree. It's still available in svn at rev1323 or via
5550   this tarball:
5551   http://rdkit.svn.sourceforge.net/viewvc/rdkit/trunk/External/vflib-2.0.tar.gz?view=tar&pathrev=1323
5552 - the directory Contrib has been added to the RDKit distribution to
5553   house contributions that don't necessarily fit anywhere else. The
5554   first contribution here is a collection of scripts required to
5555   implement local-environment fingerprints contributed by Anna
5556   Vulpetti.
5557 - Some optimization work was done on the molecule initialization code:
5558   reading in molecules is now somewhat faster.
5559 - Some optimization work was done on the RDK and Layered fingerprinting code.
5560
5561# Release_Q42009_1
5562(Changes relative to Release_Q32009_1)
5563
5564## IMPORTANT
5565  - A bug fix in the SMARTS parser has changed the way atom-map
5566    numbers in Reaction SMARTS are parsed.
5567      Earlier versions of the RDKit required that atom maps be
5568      specified at the beginning of a complex atom query:
5569        [CH3:1,NH2]>>[*:1]O
5570      The corrected version only accepts this form:
5571        [CH3,NH2:1]>>[*:1]O
5572    This change may break existing SMARTS patterns.
5573  - A switch to using cmake as the build system instead of bjam has
5574    made the RDKit much easier to build.
5575
5576## Acknowledgements
5577  - Andrew Dalke, Kirk DeLisle, David Hall, Markus Kossner, Adrian
5578    Schreyer, Nikolaus Stiefl, Jeremy Yang
5579
5580## Bug Fixes
5581  - the SMARTS parser now correctly requires tha atom-map numbers be
5582    at the end of a complex atom query.
5583    (issue 1804420)
5584  - a bug in the way SMARTS matches are uniquified has been fixed
5585    (issue 2884178)
5586
5587## New Features
5588  - The new SMARTS atomic query feature "x" (number of ring bonds) is
5589    now supported.
5590  - The proof-of-concept for a SWIG-based wrapper around the RDKit has
5591    been expanded a bit in functionality. Samples are now included for
5592    Java, C#, and Python.
5593  - Information about the current RDKit and boost versions is now
5594    available from C++ (file RDGeneral/versions.h) and Python
5595    (rdBase.rdkitVersion and rdBase.boostVersion)
5596  - The KNN code now supports weighted nearest-neighbors calculations
5597    with a radius cutoff.
5598
5599## Other
5600  - The lapack dependency has been completely removed from the RDKit.
5601  - The supported build system for the RDKit is now cmake
5602    (http://www.cmake.org) instead of bjam. See the file INSTALL for
5603    the new installation instructions. Files for bjam are still
5604    included in the distribution but are deprecated and will be
5605    removed in a future version.
5606
5607
5608# Release_Q32009_1
5609(Changes relative to Release_Q22009_1)
5610
5611## IMPORTANT
5612  - Due to bug fixes in the boost random-number generator, RDK
5613    fingerprints generated with boost 1.40 are not backwards
5614    compatible with those from earlier versions.
5615
5616## Acknowledgements
5617  - Uwe Hoffmann, Nik Stiefl, Greg Magoon, Ari Gold-Parker,
5618    Akihiro Yokota, Kei Taneishi, Riccardo Vianello, Markus Kossner
5619
5620## Bug Fixes
5621  - the canonOrient argument to the depiction code now works
5622    (issue 2821647)
5623  - typo in the depictor 2D embedding code fixed
5624    (issue 2822883)
5625  - single aromatic atoms in chains now (correctly) fail sanitization
5626    (issue 2830244)
5627  - problem with embedding and fused rings fixed
5628    (issue 2835784)
5629  - crash when reading some large molecules fixed
5630    (issue 2840217)
5631  - trailing newline in TemplateExpand.py fixed
5632    (issue 2867325)
5633  - fingerprint incompatibility on 64bit machines fixed
5634    (issue 2875658)
5635  - PropertyMol properties are now written to SD files
5636    (issue 2880943)
5637
5638## New Features
5639  - to the extent possible, reactions now transfer coordinates from
5640    reactant molecules to product molecules (issue 2832951)
5641## Other
5642  - the function DaylightFingerprintMol() has been removed
5643  - the outdated support for Interbase has been removed
5644  - the Compute2DCoords() function in Python now canonicalizes the
5645    orientation of the molecule by default.
5646  - the distance-geometry code should now generate less bad amide
5647    conformations. (issue 2819563)
5648  - the quality of distance-geometry embeddings for substituted- and
5649    fused-ring systems should be better.
5650
5651# Release_Q22009_1
5652(Changes relative to Release_Q12009_2)
5653
5654## Acknowledgements
5655  - Uwe Hoffmann, Marshall Levesque, Armin Widmer
5656
5657## Bug Fixes
5658  - handling of crossed bonds in mol files fixed (issue 2804599)
5659  - serialization bug fixed (issue 2788233)
5660  - pi systems with 2 electrons now flagged as aromatic (issue 2787221)
5661  - Chirality swap on AddHs (issue 2762917)
5662  - core leak in UFFOptimizeMolecule fixed (issue 2757824)
5663
5664## New Features
5665  - cairo support in the mol drawing code (from Uwe Hoffmann) (issue 2720611)
5666  - Tversky and Tanimoto similarities now supported for SparseIntVects
5667  - AllProbeBitsMatch supported for BitVect-BitVect comparisons
5668  - ChemicalReactions support serialization (pickling) (issue 2799770)
5669  - GetAtomPairFingerprint() supports minLength and maxLength arguments
5670  - GetHashedTopologicalTorsionFingerprint() added
5671  - preliminary support added for v3K mol files
5672  - ForwardSDMolSupplier added
5673  - CompressedSDMolSupplier added (not supported on windows)
5674  - UFFHasAllMoleculeParams() added
5675  - substructure searching code now uses an RDKit implementation of
5676    the vf2 algorithm. It's much faster.
5677  - Atom.GetPropNames() and Bond.GetPropNames() now available from
5678    python
5679  - BRICS code now supports FindBRICSBonds() and BreakBRICSBonds()
5680  - atom labels Q, A, and * in CTABs are more correctly supported
5681    (issue 2797708)
5682  - rdkit.Chem.PropertyMol added (issue 2742959)
5683  - support has been added for enabling and disabling logs
5684    (issue 2738020)
5685
5686## Other
5687  - A demo has been added for using the MPI with the RDKit
5688    ($RDBASE/Code/Demos/RDKit/MPI).
5689  - Embedding code is now better at handling chiral structures and
5690    should produce results for molecules with atoms that don't have
5691    UFF parameters.
5692  - the UFF code is more robust w.r.t. missing parameters
5693  - GetHashedAtomPairFingerprint() returns SparseIntVect instead of
5694    ExplicitBitVect
5695  - the CTAB parser (used for mol files and SD files) is faster
5696  - extensive changes to the layered fingerprinting code;
5697    fingerprinting queries is now possible
5698  - molecule discriminator code moved into $RDBASE/Code/GraphMol/Subgraphs
5699  - the SDView4 prototype has been expanded
5700  - $RDBASE/Regress has been added to contain regression and
5701    benchmarking data and scripts.
5702  - support for sqlalchemy has been added to $RDBASE/rdkit/Chem/MolDb
5703  - $RDBASE/Projects/DbCLI/SDSearch.py has been removed; use the
5704    CreateDb.py and SearchDb.py scripts in the same directory instead.
5705  - the BRICS code has been refactored
5706
5707# Release_Q12009_2
5708(Changes relative to Release_Q42008_1)
5709
5710## IMPORTANT
5711
5712 - The directory structure of the distribution has been changed in
5713   order to make installation of the RDKit python modules more
5714   straightforward. Specifically the directory $RDBASE/Python has been
5715   renamed to $RDBASE/rdkit and the Python code now expects that
5716   $RDBASE is in your PYTHONPATH. When importing RDKit Python modules,
5717   one should now do: "from rdkit import Chem" instead of "import
5718   Chem". Old code will continue to work if you also add $RDBASE/rdkit
5719   to your PYTHONPATH, but it is strongly suggested that you update
5720   your scripts to reflect the new organization.
5721 - For C++ programmers: There is a non-backwards compatible change in
5722   the way atoms and bonds are stored on molecules. See the *## Other*
5723   section for details.
5724
5725## Acknowledgements
5726 - Kirk DeLisle, Noel O'Boyle, Andrew Dalke, Peter Gedeck, Armin Widmer
5727
5728## Bug Fixes
5729 - Incorrect coordinates from mol2 files (issue 2727976)
5730 - Incorrect handling of 0s as ring closure digits (issues 2525792,
5731 and 2690982)
5732 - Incorrect handling of atoms with explicit Hs in reactions (issue 2540021)
5733 - SmilesMolSupplier.GetItemText() crashes (issue 2632960)
5734 - Incorrect handling of dot separations in reaction SMARTS (issue 2690530)
5735 - Bad charge lines in mol blocks for large molecules (issue 2692246)
5736 - Order dependence in AssignAtomChiralTagsFromStructure (issue 2705543)
5737 - Order dependence in the 2D pharmacophore code
5738 - the LayeredFingerprints now handle non-aromatic single ring bonds
5739   between aromatic atoms correctly.
5740
5741
5742## New Features
5743 - BRICS implementation
5744 - Morgan/circular fingerprints implementation
5745 - The 2D pharmacophore code now uses standard RDKit fdef files.
5746 - Atom parity information in CTABs now written and read. If present
5747   on reading, atom parity flags are stored in the atomic property
5748   "molParity".
5749 - An optional "fromAtoms" argument has been added to the atom pairs
5750   and topological torsion fingerprints. If this is provided, only atom
5751   pairs including the specified atoms, or torsions that either start
5752   or end at the specified atoms, will be included in the fingerprint.
5753 - Kekulization is now optional when generating CTABs. Since the MDL
5754   spec suggests that aromatic bonds not be used, this is primarily
5755   intended for debugging purposes.
5756 - the removeStereochemistry() (RemoveStereoChemistry() from Python)
5757   function has been added to remove all stereochemical information
5758   from a molecule.
5759
5760## Other
5761 - The Qt3-based GUI functionality in $RDBASE/rdkit/qtGui and
5762   $RDBASE/Projects/SDView is deprecated. It should still work, but it
5763   will be removed in a future release. Please do not build anything
5764   new on this (very old and creaky) framework.
5765 - The function DaylightFingerprintMol() is now deprecated, use
5766   RDKFingerprintMol() instead.
5767 - For C++ programmers: The ROMol methods getAtomPMap() and
5768   getBondPMap() have been removed. The molecules themselves now support
5769   an operator[]() method that can be used to convert graph iterators
5770   (e.g. ROMol:edge_iterator, ROMol::vertex_iterator,
5771   ROMol::adjacency_iterator) to the corresponding Atoms and Bonds.
5772   New API for looping over an atom's bonds:
5773        ... molPtr is a const ROMol * ...
5774        ... atomPtr is a const Atom * ...
5775        ROMol::OEDGE_ITER beg,end;
5776        boost::tie(beg,end) = molPtr->getAtomBonds(atomPtr);
5777        while(beg!=end){
5778          const BOND_SPTR bond=(*molPtr)[*beg];
5779          ... do something with the Bond ...
5780          ++beg;
5781        }
5782  New API for looping over a molecule's atoms:
5783        ... mol is an ROMol ...
5784        ROMol::VERTEX_ITER atBegin,atEnd;
5785        boost::tie(atBegin,atEnd) = mol.getVertices();
5786        while(atBegin!=atEnd){
5787          ATOM_SPTR at2=mol[*atBegin];
5788          ... do something with the Atom ...
5789          ++atBegin;
5790        }
5791
5792# Release_Q42008_1
5793(Changes relative to Release_Q32008_1)
5794
5795## IMPORTANT
5796 - A fix in the handling of stereochemistry in rings means that the
5797   SMILES generated with this release are different from those in
5798   previous releases. Note that the canonicalization algorithm does
5799   not work in cases of pure ring stereochemistry : the SMILES should
5800   be correct, but it is not canonical. Rings containing chiral
5801   centers should be fine.
5802
5803## Acknowledgements:
5804 - Kirk DeLisle, Markus Kossner, Greg Magoon, Nik Stiefl
5805
5806## Bug Fixes
5807 - core leaks in learning code (issue 2152622)
5808 - H-bond acceptor definitions (issue 2183240)
5809 - handling of aromatic dummies (issue 2196817)
5810 - errors in variable quantization (issue 2202974)
5811 - errors in information theory functions on 64 bit machines (issue 2202977)
5812 - kekulization problems (issue 2202977)
5813 - infinite loop in getShortestPaths() for disconnected structures (issue 2219400)
5814 - error in depictor for double bonds with stereochemistry connected
5815   to rings (issue 2303566)
5816 - aromaticity flags not copied to null atoms in reaction products
5817   (issue 2308128)
5818 - aromaticity perception in large molecule hangs (issue 2313979)
5819 - invariant error in canonicalization (issue 2316677)
5820 - mol file parser handling of bogus bond orders (issue 2337369)
5821 - UFF optimization not terminating when atoms are on top of each
5822   other (issue 2378119)
5823 - incorrect valence errors with 4 coordinate B- (issue 2381580)
5824 - incorrect parsing of atom-list queries with high-numbered atoms
5825   (issue 2413431)
5826 - MolOps::mergeQueryHs() crashing with non-query molecules. (issue
5827   2414779)
5828
5829## New Features
5830 - SLN parser (request 2136703).
5831 - Mol2 parser : Corina atom types (request 2136705).
5832 - Building under mingw (request 2292153).
5833 - Null bonds in reaction products are replaced with the corresponding
5834   bond from the reactants (request 2308123).
5835
5836## Other
5837 - a bunch of deprecation warnings from numpy have been cleaned up
5838   (issue 2318431)
5839 - updated documentation
5840 - some optimization work on the fingerprinter
5841
5842# Release_Q32008_1
5843(Changes relative to Release_May2008_1)
5844
5845## Acknowledgements:
5846 - Noel O'Boyle, Igor Filippov, Evgueni Kolossov, Greg Magoon
5847
5848## Bug Fixes
5849 - A memory leak in the ToBase64 and FromBase64 wrapper functions was
5850   fixed.
5851 - The UFF atom typer has been made more permissive: it now will pick
5852   "close" atom types for things it does not recognize. (issue
5853   2094445)
5854 - The handling of molecules containing radicals has been greatly
5855   improved (issues 2091839, 2091890, 2093420)
5856 - Iterative (or secondary, or dependent) chirality is now supported,
5857   see this page for more information:
5858   http://code.google.com/p/rdkit/wiki/IterativeChirality
5859   (issue 1931470)
5860 - Isotope handling has been changed, this allows correct matching of
5861   SMARTS with specified isotopes. (issue 1968930)
5862 - Some problems with the MACCS key definitions have been
5863   fixed. (issue 2027446)
5864 - Molecules with multiple fragments can now be correctly
5865   embedded. (issue 1989539)
5866 - Adding multiple bonds between the same atoms in a molecule now
5867   produces an error. (issue 1993296)
5868 - The chemical reaction code now handles chiral atoms correctly in
5869   when applying reactions with no stereochem information
5870   provided. (issue 2050085)
5871 - A problem with single-atom cores in TemplateExpand.py has been
5872   fixed. (issue 2091304)
5873 - A problem causing bicyclobutane containing molecules to not be
5874   embeddable has been fixed. (issue 2091864)
5875 - The default parameters for embedding are now molecule-size
5876   dependent. This should help with the embedding of large, and
5877   crowded molecules. (issue 2091974)
5878 - The codebase can now be built with boost 1.36. (issue 2071168)
5879 - A problem with serialization of bond directions was fixed.
5880   (issue 2113433)
5881
5882## New Features
5883 - The RDKit can now be built under Darwin (Mac OS/X).
5884 - Tversky similarity can now be calculated. (request 2015633)
5885 - Many of the core datastructures now support equality comparison
5886   (operator==). (request 1997439)
5887 - Chirality information can now be assigned based on the 3D
5888   coordinates of a molecule using
5889   MolOps::assignChiralTypesFrom3D(). (request 1973062)
5890 - MolOps::getMolFrags() can now return a list of split molecules
5891   instead of just a list of atom ids. (request 1992648)
5892 - ROMol::getPropNames() now supports the includePrivate and
5893   includeComputed options. (request 2047386)
5894
5895
5896## Other
5897 - the pointers returned from Base64Encode/Decode are now allocated
5898   using new instead of malloc or calloc. the memory should be
5899   released with delete[].
5900 - the generation of invariants for chirality testing is now quite a
5901   bit faster; this results in faster parsing of molecules.
5902 - The use of C include files instead of their C++ replacements has
5903   been dramatically reduced.
5904 - The new (as of May2008) hashing algorithm for fingerprints is now
5905   the default in the python fingerprinting code
5906   (Chem.Fingerprints.FingerprintMols).
5907 - The functions MolOps::assignAtomChiralCodes() and
5908   MolOps::assignBondStereoCodes() are deprecated. Use
5909   MolOps::assignStereochemistry() instead.
5910 - The RDKit no longer uses the old numeric python library. It now
5911   uses numpy, which is actively supported.
5912 - By default Lapack++ is no longer used. The replacement is the boost
5913   numeric bindings: http://mathema.tician.de/software/boost-bindings.
5914
5915
5916# Release_May2008_1
5917(Changes relative to Release_Jan2008_1)
5918
5919## IMPORTANT
5920 - A fix to the values of the parameters for the Crippen LogP
5921   calculator means that the values calculated with this version are
5922   not backwards compatible. Old values should be recalculated.
5923 - topological fingerprints generated with this version *may* not be
5924   compatible with those from earlier versions. Please read the note
5925   below in the "## Other" section.
5926 - Please read the point about dummy atoms in the "## New Features"
5927   section. It explains a change that affects backwards compatibility
5928   when dealing with dummy atoms.
5929
5930
5931## Acknowledgements:
5932 - Some of the bugs fixed in this release were found and reported by
5933   Adrian Schreyer, Noel O'Boyle, and Markus Kossner.
5934
5935## Bug Fixes
5936 - A core leak in MolAlign::getAlignmentTransform was fixed (issue
5937   1899787)
5938 - Mol suppliers now reset the EOF flag on their stream after they run
5939   off the end (issue 1904170)
5940 - A problem causing the string "Sc" to not parse correctly in
5941   recursive SMARTS was fixed (issue 1912895)
5942 - Combined recursive smarts queries are now output correctly.
5943   (issue 1914154)
5944 - A bug in the handling of chirality in reactions was fixed (issue
5945   1920627)
5946 - Looping directly over a supplier no longer causes a crash (issue
5947   1928819)
5948 - a core leak in the smiles parser was fixed (issue 1929199)
5949 - Se and Te are now potential aromatic atoms (per the proposed
5950   OpenSmiles standard). (issue 1932365)
5951 - isotope information (and other atomic modifiers) are now correctly
5952   propagated by chemical reactions (issue 1934052)
5953 - triple bonds no longer contribute 2 electrons to the count for
5954   aromaticity (issue 1940646)
5955 - Two bugs connected with square brackets in SMILES were fixed
5956   (issues 1942220 and 1942657)
5957 - atoms with coordination numbers higher than 4 now have tetrahedral
5958   stereochemistry removed (issue 1942656)
5959 - Bond.SetStereo() is no longer exposed to Python (issue 1944575)
5960 - A few typos in the parameter data for the Crippen logp calculator
5961   were fixed. Values calculated with this version should be assumed
5962   to not be backwards compatible with older versions (issue 1950302)
5963 - Isotope queries are now added correctly (if perhaps not optimally)
5964   to SMARTS.
5965 - some drawing-related bugs have been cleared up.
5966 - A bug in Chem.WedgeMolBonds (used in the drawing code) that was
5967   causing incorrect stereochemistry in drawn structures was
5968   fixed. (issue 1965035)
5969 - A bug causing errors or crashes on Windows with [r<n>] queries was
5970   fixed. (issue 1968930)
5971 - A bug in the calculation of TPSA values in molecules that have Hs
5972   in the graph was fixed. (issue 1969745)
5973
5974## New Features
5975 - Support for supplying dummy atoms as "[Du]", "[X]", "[Xa]", etc. is
5976   now considered deprecated. In this release a warning will be
5977   generated for these forms and in the next release the old form will
5978   generate errors. Note that the output of dummy atoms has also
5979   changed: the default output format is now "*", this means that the
5980   canonical SMILES for molecules containing dummies are no longer
5981   compatible with the canonical SMILES from previous releases.
5982   (feature request 186217)
5983 - Atom and bond query information is now serializable; i.e. query
5984   molecules can now be pickled and not lose the query
5985   information. (feature request 1756596)
5986 - Query features from mol files are now fully supported. (feature
5987   request 1756962)
5988 - Conformations now support a dimensionality flag. Dimensionality
5989   information is now read from mol blocks and TDT files. (feature request
5990   1906758)
5991 - Bulk Dice similarity functions have been added for IntSparseIntVect
5992   and LongSparseIntVect (feature request 1936450)
5993 - Exceptions are no longer thrown during molecule parsing. Failure in
5994   molecule parsing is indicated by returning None. Failure to *open* a
5995   file when reading a molecule throws BadFileExceptions (feature
5996   requests 1932875 and 1938303)
5997 - The various similarity functions for BitVects and SparseIntVects
5998   now take an optional returnDistance argument. If this is provided,
5999   the functions return the corresponding distance instead of
6000   similarity.
6001 - Some additional query information from Mol files is now translated
6002   when generating SMARTS. Additional queries now translated:
6003     - number of ring bonds
6004     - unsaturation queries
6005     - atom lists are handled better as well
6006   (feature request 1902466)
6007 - A new algorithm for generating the bits for topological
6008   fingerprints has been added. The new approach is a bit quicker and
6009   more robust than the old, but is not backwards compatible.
6010   Similarity trends are more or less conserved.
6011 - The molecule drawing code in Chem.Draw.MolDrawing has been modified
6012   so that it creates better drawings. A new option for drawing that
6013   uses the aggdraw graphics library has been added.
6014 - The RingInfo class supports two new methods: AtomRings() and
6015   BondRings() that return tuples of tuples with indices of the atoms
6016   or bonds that make up the molecule's rings.
6017
6018## Other
6019 - Changes in the underlying boost random-number generator in version
6020   1.35 of the boost library may have broken backwards compatibility
6021   of 2D fingerprints generated using the old fingerprinter. It is
6022   strongly suggested that you regenerate any stored fingerprints (and
6023   switch to the new fingerprinter if possible). There is an explicit
6024   test for this in $RDBASE/Code/GraphMol/Fingerprints/test1.cpp
6025 - The unofficial and very obsolete version of John Torjo's v1
6026   boost::logging library that was included with the RDKit
6027   distribution is no longer used. The logging library has been
6028   replaced with the much less powerful and flexible approach of just
6029   sending things to stdout or stderr. If and when the logging library
6030   is accepted into Boost, it will be integrated.
6031 - The DbCLI tools (in $RDBASE/Projects/DbCLI) generate topological
6032   fingerprints using both the old and new algorithms (unless the
6033   --noOldFingerprints option is provided). The default search
6034   uses the newer fingerprint.
6035 - The directory $RDBASE/Data/SmartsLib contains a library of sample
6036   SMARTS contributed by Richard Lewis.
6037
6038
6039# Release_Jan2008_1
6040(Changes relative to Release_Aug2007_1)
6041
6042## IMPORTANT
6043 - Bug fixes in the canonicalization algorithm have made it so that
6044   the canonical SMILES from this version are not compatible with
6045   those from older versions of the RDKit.
6046 - Please read the point about dummy atoms in the "## New Features"
6047   section. It explains a forthcoming change that will affect
6048   backwards compatibility when dealing with dummy atoms.
6049 - The build system has been completely changed. Makefiles and Visual
6050   Studio project files have been removed. See the "## Other" section for
6051   more info.
6052
6053## Acknowledgements:
6054 - Adrian Schreyer uncovered and reported a number of the bugs fixed
6055   in this release.
6056
6057## Bug Fixes
6058 - the Recap code no longer generates illegal fragments for
6059   highly-branched atoms. (issue 1801871)
6060 - the Recap code no longer breaks cyclic bonds to N
6061   (issue 1804418)
6062 - A bug in the kekulization of aromatic nitrogens has been fixed
6063   (issue 1811276)
6064 - Bugs in the Atom Type definitions for polar carbons and positive
6065   nitrogens in BaseFeatures.fdef have been fixed. (issue 1836242)
6066 - A crash in the sanitization of molecules that only have degree 4
6067   atoms has been fixed; it now generates an exception. The underlying
6068   problem with ring-finding in these systems is still present. (issue
6069   1836576)
6070 - Mol files for molecules that have more than 99 atoms or bonds are
6071   no longer incorrectly generated. (issue 1836615)
6072 - Problems with the sping PIL and PDF canvases have been cleared
6073   up. The PIL canvas still generates a lot of warnings, but the
6074   output is correct.
6075 - The query "rN" is now properly interpreted to be "atom whose
6076   smallest ring is of size N" in SMARTS queries. It was previously
6077   interpreted as "atom is in a ring of size N". (issue 1811276)
6078   This change required that the default feature definitions for
6079   aromaticity and lumped hydrophobes be updated.
6080 - The MolSuppliers (SDMolSupplier, TDTMolSupplier, SmilesMolSupplier)
6081   no longer fail when reading the last element. (issue 1874882)
6082 - A memory leak in the constructor of RWMols was fixed.
6083 - A problem causing rapid memory growth with Recap analysis was fixed.
6084   (issue 1880161)
6085 - The Recap reactions are no longer applied to charged Ns or Os
6086   (issue 1881803)
6087 - Charges, H counts, and isotope information can now be set in
6088   reactions. (issue 1882749)
6089 - The stereo codes from double bonds (used for tracking cis/trans)
6090   are now corrected when MolOps::removeHs is called. (issue 1894348)
6091 - Various small code cleanups and edge case fixes were done as a
6092   result of things discovered while getting the VC8 build working.
6093
6094## New Features
6095 - The SparseIntVect class (used by the atom pairs and topological
6096   torsions) is now implemented in C++.
6097 - The package $RDKit/Python/Chem/MolDb has been added to help deal
6098   with molecular databases. (this was intended for the August release
6099   and overlooked)
6100 - The module $RDKit/Python/Chem/FastSDMolSupplier has been added to
6101   provide a fast (at the expense of memory consumption) class for
6102   working with SD files. (this was intended for the August release
6103   and overlooked)
6104 - A new directory $RDKit/Projects has been created to hold things
6105   that don't really fit in the existing directory structure.
6106 - The new project $RDKit/Projects/DbCLI has been added. This contains
6107   command-line scripts for populating molecular database and
6108   searching them using substructure or similarity.
6109 - The code for calculating some descriptors has been moved into C++
6110   in the new module Chem.rdMolDescriptors. The C++ implementation is
6111   considerably faster than the Python one and should be 100%
6112   backwards compatible.
6113 - The MaxMinPicker (in Code/SimDivPickers) supports two new options:
6114   1) the user can provide a set of initial picks and the algorithm
6115      will pick new items that are diverse w.r.t. to those
6116   2) the user can provide a function to calculate the distance matrix
6117      instead of calculating it in advance. This saves the N^2 step of
6118      calculating the distance matrix.
6119 - A new piece of code demo'ing the use of the RDKit to add chemical
6120   functionality to SQLite is in Code/Demos/sqlite. This will
6121   eventually move from Demos into Code/sqlite once some more
6122   functionality has been added and more testing is done.
6123 - The distance geometry embedding code now supports using random
6124   initial coordinates for atoms instead of using the eigenvalues of
6125   the distance matrix. The default behavior is still to use the
6126   eigenvalues of the distance matrix.
6127 - The function Recap.RecapDecompose now takes an optional argument
6128   where the user can specify the minimum size (in number of atoms)
6129   of a legal fragment. (feature request 180196)
6130 - Dummy atoms can be expressed using asterixes, per the Daylight spec.
6131   Dummy atoms are also now legal members of aromatic systems (e.g.
6132   c1cccc*1 is a legal molecule). Support for supplying dummy atoms
6133   as "[Du]", "[X]", "[Xa]", etc. is now considered deprecated. In
6134   the next release a warning will be generated for these forms and
6135   in the release after that the old form will generate errors. Note
6136   that the output of dummy atoms will also change: in the next release
6137   the default output format will be "*".
6138   (feature request 186217)
6139 - A proof of concept for doing a SWIG wrapper of RDKit functionality
6140   has been added in: $RDBASE/Code/Demos/SWIG/java_example. This isn't
6141   even remotely production-quality; it's intended to demonstrate that
6142   the wrapping works and isn't overly difficult.
6143
6144## Other
6145 - The full set of tests is now easier to setup and run on new
6146   machines. (issue 1757265)
6147 - A new build system, using Boost.Build, has been put into place on
6148   both the windows and linux sides. The new system does much better
6149   dependency checking and handles machine-specific stuff a lot
6150   better. The new system has been tested using Visual Studio 2003,
6151   Visual Studio Express 2005, Ubuntu 7.10, and RHEL5.
6152 - The "Getting Started in Python" document has been expanded.
6153 - There's now an epydoc config file for building the python
6154   documentation ($RDBASE/Python/epydoc.config).
6155
6156# Release_Aug2007_1
6157(Changes relative to Release_April2007_1)
6158
6159## Bug Fixes
6160 - operators and SparseIntVects. (issue 1716736)
6161 - the Mol file parser now calculates cis/trans labels for double
6162   bonds where the two ends had the same substituents. (issue 1718794)
6163 - iterator interface to DiscreteValueVects and UniformGrid3D. (issue
6164   1719831)
6165 - improper removal of stereochemistry from ring atoms (issue
6166   1719053)
6167 - stereochemistry specifications and ring bonds.  (issue 1725068)
6168 - handling of aromatic bonds in template molecules for chemical
6169   reactions. (issue 1748846)
6170 - handling of unrecognized atom types in the descriptor calculation
6171   code. (issue 1749494)
6172 - ChemicalReactionException now exposed to Python. (issue 1749513)
6173 - some small problems in topological torsions and atom pairs
6174
6175## New Features
6176 - The Atom Pairs and Topological Torsions code can now provide
6177   "explanations" of the codes. See $RDBASE/Python/Chem/AtomPairs for
6178   details.
6179 - The PointND class has been exposed to Python
6180 - The "Butina" clustering algorithm [JCICS 39:747-50 (1999)] is now
6181   available in $RDBase/Python/Ml/Cluster/Butina.py
6182 - A preliminary implementation of the subshape alignment algorithm is
6183   available.
6184 - The free version of MS Visual C++ is now supported.
6185 - There is better support for queries in MDL mol files. (issue 1756962)
6186   Specifically: ring and chain bond queries; the not modifier for
6187   atom lists; R group labels.
6188 - An EditableMol class is now exposed to Python to allow molecules to
6189   be easily edited. (issue 1764162)
6190 - The RingInfo class is now exposed to Python.
6191 - The replaceSidechains and replaceCore functions have been added
6192   in the ChemTransforms library and are exposed to Python as
6193   Chem.ReplaceSidechains and Chem.ReplaceCore.
6194 - pickle support added to classes: PointND
6195 - atoms and bonds now support the HasQuery() and GetSmarts() methods
6196   from Python.
6197
6198## Other
6199 - Similarity scores can now be calculated from Python in bulk
6200   (i.e. calculating the similarity between one vector and a list of
6201   others). This can be substantially faster than calling the
6202   individual routines multiple times. The relevant functions are
6203   BulkTanimotoSimilarity, BulkDiceSimilarity, etc.
6204 - The calculation of AtomPairs and TopologicalTorsions fingerprints
6205   is now a lot more efficient.
6206 - Optimization of the Dice metric implementation for SparseIntVects
6207 - The Visual Studio build files have been moved to the directories
6208   $RDBASE/Code/Build.VC71 and $RDBASE/Code/Build.VC80. This allows
6209   simultaneous support of both versions of the system and cleans up
6210   the source trees a bit.
6211 - Boost version 1.34 is now supported (testing has been done on 1.34 and 1.34.1).
6212 - Updates to the "Getting Started" documentation.
6213
6214# Release_April2007_1
6215(Changes relative to Release_Jan2007_1)
6216
6217## Bug Fixes
6218 - handing of isotope information in SMILES has been fixed
6219 - "implicit" hydrogens are now added to charged atoms explicitly when
6220   writing SMILES. (issue 1670149)
6221 - the 2D->3D code no longer generates non-planar conjugated 4-rings
6222   (e.g. C1=CC=C1). (issue 1653802)
6223 - removing explicit hydrogens no longer produces incorrect smiles
6224   (issue 1694023)
6225 - bit indices and signature lengths in the AtomPairs code no longer
6226   being calculated incorrectly. *NOTE* this changes the bits that are
6227   set, so if you have existing signatures, they will need to be
6228   regenerated.
6229 - Fixed a bug causing MolSuppliers to generate incorrect length
6230   information when a combination of random access and iterator
6231   interfaces are used. (issue 1702647)
6232 - Fixed a bug leading to incorrect line numbers in error messages
6233   from the SDMolSuppler. (issue 1695221)
6234
6235## New Features
6236 - chemical reactions are now supported
6237 - there is a new entry point into the 2D depictor code,
6238   compute2DCoordsMimicDistMat(), that attempts to generate 2D
6239   depictions that are similar to the structure described by the
6240   distance matrix. There's also a shorthand approach for calling this
6241   to mimic a 3D structure available as:
6242   AllChem.GenerateDepictionMatching3DStructure()
6243 - DiscreteValueVect and UniformGrid3D now support the binary
6244   operators |, &, +, and -.
6245 - a reader/writer for TPL files has been added.
6246 - support has been added for MolCatalogs: hierarchical catalogs that
6247   can store complete molecules.
6248 - the protrude distance metric for shapes has been added
6249 - pickle support added to classes: UniformGrid, DiscreteValueVect,
6250   Point
6251 - added the class DataStructs/SparseIntVect to improve performance
6252   and clarity of the AtomPairs code
6253
6254## Other
6255 - the non-GUI code now supports python2.5; the GUI code may work with
6256   python2.5, but that has not been tested
6257 - the Mol and SD file parsers have been sped up quite a bit.
6258 - the "Crippen" descriptors are now calculated somewhat faster.
6259 - in-code documentation updates
6260 - new documentation for beginners in $RDBASE/Docs/Book
6261
6262# Release_Jan2007_1
6263(Changes relative to Release_Oct2006_1)
6264
6265## Bug Fixes
6266  - zero-atom molecules now trigger an exception
6267  - dummy atoms are no longer labelled 'Xe'
6268  - core leak in the mol file writer fixed
6269  - mol files with multiple charge lines are now correctly parsed
6270  - a workaround was installed to prevent crashes in the regression
6271    tests on Windows when using the newest VC++ v7 series compiler.
6272    (http://sourceforge.net/tracker/index.php?func=detail&aid=1607290&group_id=160139&atid=814650)
6273  - chirality perception (which requires partial sanitization) is no
6274    longer done by the MolFileParser when sanitization is switched
6275    off.
6276  - Two potential memory corruption problems were fixed (rev's 150 and
6277    151).
6278
6279## New Features
6280  - optional use of chirality in substructure searches
6281  - MolWriters can now all take a stream as an argument
6282  - Chiral terms can now be included in the DistanceGeometry
6283    embedding.
6284
6285## Other
6286  - $RDBASE/Code/Demos/RDKit/BinaryIO is a demonstration of using
6287    boost IOStreams and the ROMol pickling mechanism to generate
6288    highly compressed, random-access files of molecules.
6289  - the Point code has been refactored
6290