Chemistry Development Kit

The Chemistry Development Kit (CDK) is computer software, a library in the programming language Java, for chemoinformatics and bioinformatics. It is available for Windows, Linux, Unix, and macOS. It is free and open-source software distributed under the GNU Lesser General Public License (LGPL) 2.0.

History
The CDK was created by Christoph Steinbeck, Egon Willighagen and Dan Gezelter, then developers of Jmol and JChemPaint, to provide a common code base, on 27–29 September 2000 at the University of Notre Dame. The first source code release was made on 11 May 2011. Since then more than 100 people have contributed to the project, leading to a rich set of functions, as given below. Between 2004 and 2007, CDK News was the project's newsletter of which all articles are available from a public archive. Due to an unsteady rate of contributions, the newsletter was put on hold.

Later, unit testing, code quality checking, and Javadoc validation was introduced. Rajarshi Guha developed a nightly build system, named Nightly, which is still operating at Uppsala University. In 2012, the project became a support of the InChI Trust, to encourage continued development. The library uses JNI-InChI to generate International Chemical Identifiers (InChIs). In April 2013, John Mayfield (né May) joined the ranks of release managers of the CDK, to handle the development branch.

Library
The CDK is a library, instead of a user program. However, it has been integrated into various environments to make its functions available. CDK is currently used in several applications, including the programming language R, CDK-Taverna (a Taverna workbench plugin), Bioclipse, PaDEL, and Cinfony. Also, CDK extensions exist for Konstanz Information Miner (KNIME) and for Excel, called LICSS.

In 2008, bits of GPL-licensed code were removed from the library. While those code bits were independent from the main CDK library, and no copylefting was involved, to reduce confusions among users, the ChemoJava project was instantiated.

Chemoinformatics

 * 2D molecule editor and generator
 * 3D geometry generation
 * ring finding
 * substructure search using exact structures and Smiles arbitrary target specification (SMARTS) like query language
 * QSAR descriptor calculation
 * fingerprint calculation, including the ECFP and FCFP fingerprints
 * force field calculations
 * many input-output chemical file formats, including simplified molecular-input line-entry system (SMILES), Chemical Markup Language (CML), and chemical table file (MDL)
 * structure generators
 * International Chemical Identifier support, via JNI-InChI

Bioinformatics

 * protein active site detection
 * cognate ligand detection
 * metabolite identification
 * pathway databases
 * 2D and 3D protein descriptors

General

 * Python wrapper; see Cinfony
 * Ruby wrapper
 * active user community