Tuesday, February 10, 2009

CDK 1.2 Release Candidate

I release CDK 1.1.5 today. Below is the email I sent to the cdk-user mailing list:
Hi all,

I am happy to be able to announce the first Release Candidate for CDK 1.2.

Everyone using using CDK 1.0 is suggest to upgrade to this release,
which has fewer bugs, is much better tested, and is faster too. It
also comes with API changes, and a full changelog is not available
(yet). However, the CDK developers are available on this mailing list
and on IRC to help you port CDK 1.0 applications to CDK 1.2. Two
differences in particular I would like to point out at this moment:

1. explicit atom typing

CDK 1.0 did atom typing at various places to perform its function,
leading to inconsistencies and bugs. CDK 1.2 introduces a new atom
typing module which isolates atom typing from other algorithms.
Consequently, the CDK will be more critical on your code and your
data: where the old code might have silently eaten incorrect input,
the new implementation complains: expect exceptions! The actual atom
type list used in CDK 1.2 is more complete than the ones used in CDK
1.0; however, it is not unlikely that you will find no atom type
perceived for a clearly valid atom type. Please report such cases.

And I really want to stress this: in every instance where CDK 1.2, CDK
1.0 would have failed too, though it might have not complained about

2. no rendering functionality

The new rendered under development (see the cdk-jchempaint mailing
) has not made the CDK 1.2.0 release. However, it is expected to
be available in a later CDK 1.2.x release. If you really need the
graphics functionality, please contact me. Bioclipse2 is an example
project which combines CDK 1.2 with the new rendering code.


This release features contributions from a larger developer group than
ever before. In particular, I would like to welcome those who have
picked up JuniorJobs, and provided other smaller patches! A full list
of authors is available from:

(If you see your name missing (sorry!), please just email me)

If you like to contribute too, there are many ways. The JuniorJobs is
just an example and are available from:


CDK 1.2 RC1 is available from SourceForge as CDK 1.1.5:

Alternatively, you can download the release from SVN:


As said, this CDK release is the most tested CDK release ever, with
more than 10 thousand unit tests! However, there are open (minor)
issues, which you can see reported at Nightly:

The number of failing unit tests is below 1%, and in the same range as
the number of failing tests for CDK 1.0. Importantly, these are
typically fails of unit tests which are not available in the CDK 1.0
unit test suite; that is, many of the failing unit tests in CDK 1.0
are *not* failing in CDK 1.2 (it really is rewarding to upgrade!)

However, if you find additional bugs (or just have wishlists), you can
report these with our SourceForge bug tracker at:


Over the next weeks I hope to compose a somewhat useful list of
changes. I have not made up my mind yet how that will take shape,
maybe as a list of blogs, which I'll aggregate later. Dunno yet.
Suggestions and contributions welcome :)

JavaDoc for the release is not yet available on SF for download
(working on that), but available for the cdk1.2.x / branch at:

OK, that wraps it up for now. Just reply if you have questions.



  1. Feature or bug? IteratingMDLReader no longer implements the java.util.Iterator interface, which causes iteration to fail from CPython/JPype. Is this intentional?

  2. Ditto Jython + CDK 1.1.5. I see you removed this in SVN 10907. I hope it comes back. It seems that implementing this interface is necessary for easy iteration from other languages.

  3. Just had a quick look... (thanx for the rev info)...

    And I see that throwing CDKExceptions might very well conflict with the Iterator interface... I'll look into it asap...

  4. OK, I 'fixed' the code, and it uses Iterator again.

    Did you find any other problems with using the CDK 1.1.5 in Cinfony?

  5. That's great. My test suite currently doesn't get very far without the iterator (required for reading the test molecules). The only other thing I noticed was that I needed to download the xerces jar to get the descriptorengine (MOLECULAR) to work. This wasn't necessary with the previous CDK.

    I'm assuming I can get a new jar from nightly to continuing testing right? (if not - could you provide an updated one somehow?)

    - Noel

  6. Yes, the jar from Nightly helps.

    The 1.2.0 is the next release...

  7. This comment has been removed by the author.

  8. Am using the nightly jar. New problem is that MDLWriter no longer allow setting of properties of SD files. Neither does SDFWriter. (This has changed since CDK 1.1.5)

  9. Looking at the src code, SDWriter seems to include the properties automatically. If so, great!

  10. Yeah, that's code hacked up yesterday... I got your email on it, and will check the works...

    You should be able to use it as 'iterating' writer, but just passing it molecules repetitively... It just supports IMoleculeSet for small stuff too...

    As SD properties, it serializes IMolecule.getProperties()...