## Thursday, March 22, 2012

### CDK 1.4.8: the changes, the authors, and the reviewers

Mmmm... when I pasted the list of changes in the CDK 1.4.8 release (download it here), I was surprised by the length. Then again, the 1.4.7 release was almost three months ago.

However, a careful look at the list shows that quite a few are JavaDoc fixes, additional unit testing in the inchi module, and other small tuning. Of more much more interest are the fix in the SDF parser, which failed to continue reading when it encountered a broken molfile entry in the SD file. For some just as important, the DeduceBondSystemTool got some attention, and Kevin improved the code by having it look for all rings only in isolated ring systems, a trick we use elsewhere too, speeding it up significantly for some structures. BTW, that class still has limitations, and we are discussing other options. Atom parities can now be read and written in the MDL molfile format, and IUPAC isotope masses have been updated for a 2009 report. The PDB and MDL readers have seen two further improvements.

All in all, enough to mark this release too as a highly recommended update in the 1.4 series!

The changes
• Helper methods now return results, rather than change parameter content, and uses interfaces as variable types rather than implementations (patch by Kevin Lawson). d4c4af2
• Added Kevin Lawson to the list of AUTHORS e9c3f4b
• The Bioclipse test case of failing bond order assignment 596258a
• Unit test with the SMILES reported by Kevin Lawson d9c147d
• Split up into ring systems before running the AllRingsFinder to speed up the algorithm (patch by Kevin Lawson) 47d65be
• Bridge methods are methods introduced by compilers in relation to methods that use generics. Various renderer related method trigger test methods for just bridge methods, but are never really implemented. 32d58d6
• Removing redundant code b56e08b
• Fixed empty @return javadoc tags: some removed (e.g. with @inheritDoc), some now got a description c6ec88f
• Added a missing # in the @see (needed for methods) dd4e299
• Synchronized variable names in the API and JavaDoc 5554355
• Fixed link to the CDKMCS class, which is now in a different package 7253481
• More unit tests. All methods are now at least tested once. (closes #3005889) e63ff94
• Testing of the InChI generator 10fe8c0
• Added dedicated unit testing for the InChIGeneratorFactory a80b6d5
• Test to make sure the SMILES parser gets the formal neighbor counts correct 5b1654d
• Fixed a wrong test for undefined values in the Burden matrix 516edbb
• Added unit test for undefined G-M partial charges 38b548f
• Updated bcut descriptor to check for undefined values before getting eigenvalues. Added test file and test case. Addresses bug 3489559 7d698ef
• Fix for charge parsing in PDB files, based on the patch by Nils 7c7248a
• Resolution for Bug 3485634 e2eb007
• Same as earlier: use the returned object, which is not the same as the passed IAtomContainer 7199518
• Assertion error fix a977e85
• Write atom parity c7aa428
• Fixed unit test: because the implementation creates an IMolecule object, the original 'molecule' pointer does not get atoms, and the returned IMolecule object should be assigned to get a molecule with information 8ff4584
• Added close to unit-test resource stream eae7598
• Added ability to read atom parity from Mol files (inc. junit test). 07bbbb2
• Updated isotope abundance values according to the IUPAC technical report 2009. fb47c57
• Updated unit test for commit #3093241, where null's are always larger than an actual object 1bb844d
• Ensure the OpenJavaDocCheck plugins are compiled 03ef86b
• s/NewDefaultChemOjectBuilder/DefaultChemObjectBuilder/g (closes #3456420) e2344ff
• Fixes for the pseudo atom patch backporting: allow reading of IAtomContainer where IMolecule was already supported, fixed imports. Also removes an redundant, incorrect accepts() method 7dc949f
• Updates MDL readers to set symbol of pseudatoms to label. Ensures that writing such a molecule does not force the SDF writer to see all pseudoatoms as R groups. Added unit test and test cases for V2000 and V3000 readers as well as V2000 writer e59d204
• Added Yap Chun Wei to the list of authors 2943deb
The authors
24  Egon Willighagen
7  John May
7  Rajarshi Guha
2  Kevin Lawson
1  Stephan Beisken


OK, formally, I had 26 patches, but two were gitified by me, but .java files sent by Kevin Lawson. A third patch was based on suggestions from Nils.

BTW, I have a tendency to end up in the upper part of this list, but please keep in mind I gain extra commits with minor, maintenance tweaks, and that I am tremendously happy with contributions from all! This release is another one, largely the result of work from less frequent contributors, but summing all those up, it defines what makes the CDK project going! Thanx to all in the CDK community!

The reviewers
9  Rajarshi Guha
7  Egon Willighagen
1  John May


Likewise, the importance of these reviewers should not be underestimated too. And this list only gives the names of the people that signed of patches; the list of reviewers is sometimes longer! In fact, one of my patches was the direct result of excellent peer reviewing by Arvid Berg (Uppsala University), who suggested me to use a one-line Method.isBridge() call, instead of my 40 lines of code! Well done!