## Friday, March 05, 2010

### CDK 1.3.3: the changes

The CDK 1.3.3 release does not contain overly many patches, but contains a few interesting ones:
• Updated JavaDoc to explicitly state that g2 must be a substructure of g1 2660aca
• More unit tests for the MCSS problem in bug report 2944080. 3d18a73
• Simplified the code using the new 'T read(T)' API used in MDLV2000Reader as defined by the ISimpleChemObjectReader af12e8a
• Updated for the new generics 'T read(T)' API in ISimpleChemObjectReader. d3f2f19
• Introduced generics allowing the return type to be identical to the passed argument. It does require implementing classes to be updated with the new API too. 9775992
• Added missing dependency, fixing the unit test reading a file from data/ b4a6dfa
• added working implementations for PartialFilledStructureMerger and CrossoverMachine c086a97
• added working implementations for PartialFilledStructureMerger and CrossoverMachine 089103e
• tests for crossover machine and PartialFilledStructureMerger 6441b75
• tests for crossover machine and PartialFilledStructureMerger 5481be7
• Fixed use of global isRef variable, to make it threading-safe e576e0b
• Added control 'isref' creating a CML with reaction and listmolecules d9d20c2
• Removed unused import e1c03fb
• Removed last bits of implementation details from the API: now uses List<> instead of ArrayList<> 7727b72
• Removed output to STDOUT 14e1d12
• Added missing @cdk.bug tag and used interfaces where possible 04001b7
• Added a test case for GeometryTools.has2DCoordinatesNew where a mol file has a single atom with 0,0,0 as coordinate. This is not considered a 2d coordinate right now, but in a way it is one. f5e123e
• added a method to make cyclopentane to MoleculeFactory 0064458
• Added missing unit test for getClosestAtom(double, double, IAtomContainer, IAtom) 95f811a
• Improve performance: to find the closest atom, we do can simply use the squared distances. The smaller than relation is equivalent in normal and squared distance space. 46b5f83
• Added a unit test to see of the calculated bond length average includes bonds in all IAtomContainer's 563fe28
• Added second test for getClosestAtom(), now with more than two atoms 5724205
• Added E and Z as allowed configurations 7a1b919
• Added UP_OR_DOWN_INVERTED, which is the equivalent of UP_OR_DOWN but with a different stereocenter f175650
• Extended JavaDoc, explaining how these IBond.Stereo types define the stereocenter, and indicating for each type explicitly which atom is the stereocenter 35af889
• Added convenience method to find the closest atom to a given point. 8d5ee5c
• Reimplemented shiftReactionVertical(IReaction, Rectangle2D, Rectange2D, double) originally implemented as jchempaint-primary patch 1cab8c3c9350ada9b1d054712189720c865e502a by Stefan Kuhn: now reuses other methods (fixing the movement of the reaction agents), and added missing unit tests 230b7e1
• Added a getBondLengthAverage(IReaction reaction) method, a rewritten version of 1cab8c3c9350ada9b1d054712189720c865e502a by Stefan Kuhn, and the matching unit test d37498a
• Add a GeometryTools method to get atoms near another atom (Gilleain). Added unit test for the new method (Egon). 420ab11
• Moved IAtomColorer and ICDKChangeListener from the standard module to the interfaces module fdbadae
• Updated to include the float and binary information found in PubChem 8eacbfc
• Ant has a release 1.8 that should be accepted in build.xml 4398cc4
Summary
In a brief summary, this release mostly focuses on applying a number of small bug fixes and patches. But there are some things of interest: Stefan is working on structure generation and rewrote PartialFilledStructureMerger and CrossoverMachine. I introduced some generics magic in the reader API which I learned from Arvid in the CDK-JChemPaint patch. This patch removes the need to cast when reading an IChemObject from a file in the readers which have been updated (MDLV2000Reader only at this time). Instead, you can now just type:
IMolecule mol = reader.read(new Molecule());
The list of patches furthermore contains an update of the PubChem reader to support reading of additional fields, and the support of the CML @ref attribute in CMLReact (doi:10.1021/ci0502698).

But the most interesting bit of this release is to me, that the last few patches are now reviewed and applied to make CDK-JChemPaint compile against a off-the-shelf CDK release (1.3.3 or higher :).

Authors
26  Egon Willighagen
9  Stefan Kuhn
1  Brian Gilman
1  Mark Rynbeek
1  Miguel Rojas Cherto
1  Gilleain Torrance

Reviewers
This is a new category too, and created using the command git log cdk-1.3.2.. | grep Signed-off | cut -d':' -f2 | cut -d'<' -f1 | sort | uniq -c. Not every reviewer signs off commits, and no one other than the current commit right owners actually do this. Everyone is more than invited to check the patch tracker, and review patches give comments if you feel the patch can be improved, or sign it off otherwise (git commit --amend --signoff), which gives the other reviewers some idea of the state of the patch. Rajarshi did most of the reviewing work of this release; his contributions are very much appreciated.
23  Rajarshi Guha
4  Egon Willighagen