Pages

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

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

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

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

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!

No comments:

Post a Comment

Search This Blog

This blog deals with chemblaics in the broader sense. Chemblaics (pronounced chem-bla-ics) is the science that uses computers to solve problems in chemistry, biochemistry and related fields. The big difference between chemblaics and areas such as chem(o)?informatics, chemometrics, computational chemistry, etc, is that chemblaics only uses open source software, open data, and open standards, making experimental results reproducible and validatable. And this is a big difference!

Cookies

In the EU there is a directive upcoming requiring websites to warn people about HTTP cookies. This website uses the Blogger.com platform, Google Adsense (not that is it actually paying anything significantly), and a few scripts to count how often a blog post was tweeted, using Topsy and LinkedIn. These services undoubtedly make use of cookies, which you can disallow in your browser.