Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


Tree [c7493d] /

File Date Author Commit
.externalToolBuilders 2008-01-29 egonw egonw [bf6d69] Applied the mf/ branch to trunk/
META-INF 2011-12-10 Egon Willighagen Egon Willighagen [51af32] Removed the nonotify module (replaced by silent)
develjar 2012-12-13 Egon Willighagen Egon Willighagen [412d7e] Updated PMD to version 5.0.1
doc 2011-11-19 Egon Willighagen Egon Willighagen [7bc077] Fixed the cheminf.bibx well-formedness (fixes #...
jar 2012-10-03 John May John May [31dbb7] Added meta data about commons-math jar
nbproject 2012-06-13 Jonty Lawson Jonty Lawson [c5e2e8] Provide the necessary project files for netBeans
perf 2009-11-22 Egon Willighagen Egon Willighagen [45f683] New IChemObjectBuilder interface:
pmd 2012-12-13 Egon Willighagen Egon Willighagen [412d7e] Updated PMD to version 5.0.1
src 2012-11-29 John May John May [cc2af0] Corrected method call on DebugChemObject
tools 2011-03-25 Egon Willighagen Egon Willighagen [694132] Escape /'s too
.classpath 2012-10-01 Egon Willighagen Egon Willighagen [d7d900] Added a new jar
.cvsignore 2005-08-25 tohel tohel [1bcfa1] added undo/redo functionality to JChempaint
.gitignore 2012-06-13 Jonty Lawson Jonty Lawson [c5e2e8] Provide the necessary project files for netBeans
.project 2008-08-28 egonw egonw [9aa93a] No, commiting a local git branch does not resul...
AUTHORS 2012-07-01 Egon Willighagen Egon Willighagen [76d32b] Added two more recent authors
BUGS 2002-01-03 egonw egonw [04105e] These bugs are fixed some time ago. The doc now...
README 2012-07-01 Egon Willighagen Egon Willighagen [d0f38b] Updated the README (fixes #3538451)
build-eclipse.xml 2006-09-20 egonw egonw [f93b70] Added runDoclet, to get JUnit test working
build.properties 2008-09-19 jonalv jonalv [b30346] Changed to build of jumbo with a fix by me. Hop...
build.props 2012-10-07 Egon Willighagen Egon Willighagen [823148] And open for more API changes
build.xml 2012-10-29 Stephan Beisken Stephan Beisken [9af07f] Added renderextra to dist-large and test-all ta...
changelog.txt 2011-01-03 Egon Willighagen Egon Willighagen [1d0486] Added recent changes
createModulePages.groovy 2009-12-28 Egon Willighagen Egon Willighagen [35550b] Use local PMD and JUnit reports if available
devel.xml 2012-08-05 Egon Willighagen Egon Willighagen [91a673] Refactored to have jar file names as properties...
doc.xml 2004-01-27 egonw egonw [4c075d] Added Ant doc.xml build file for converting doc...
doxygen.xml 2012-08-05 Egon Willighagen Egon Willighagen [5858df] Split out Doxygen generation, so that creating ...
javadoc.xml 2012-08-05 Egon Willighagen Egon Willighagen [4f02a0] Added the dependencies to the taglet so that it...
manifest.mf 2010-04-26 Syed Asad Rahman Syed Asad Rahman [10edb7] The big SMSD patch.
plugin.xml 2008-05-19 egonw egonw [cfaa1e] Reworked Eclipse settings, to define a org.open...
pmd-migrating.xml 2012-12-13 Egon Willighagen Egon Willighagen [c7493d] Also updated the other two PMD config files for...
pmd-unused.xml 2012-12-13 Egon Willighagen Egon Willighagen [c7493d] Also updated the other two PMD config files for...
pmd.xml 2012-12-13 Egon Willighagen Egon Willighagen [412d7e] Updated PMD to version 5.0.1
pom.xml 2010-10-01 Egon Willighagen Egon Willighagen [714c51] Updated version and confirmed inception year
test.bat 2003-09-10 egonw egonw [47af66] Removed all last bits of JSX stuff (except for ...
test.sh 2003-09-10 egonw egonw [47af66] Removed all last bits of JSX stuff (except for ...

Read Me

CDK - The Chemical Development Kit
Copyright 1997-2012 The CDK Development Team
License: LGPL v2, see doc/lgpl.license

1. Introduction

You are currently reading the README file for the Chemistry Development Project (CDK).
This project is hosted under http://cdk.sourceforge.net/
Please refer to these pages for updated information and the latest version of the CDK.

The CDK is an open-source library of algorithms for structural chemo- and bioinformatics, implemented in 
the programming language Java(tm). The library is published under terms of the the 
GNU Lesser General Public License v2. This has implications on what you can do with sources and
binaries of the CDK library. For details, please refer to the file LICENSE, which should have been
provided with this distribution.

PLEASE NOTE: This is a library of useful data structures and algorithms to manipulate them 
from the area of structural chemo- and bioinformatics. As such, it is intended for the use by
programmers, who wish to save some effort by reusing code. It is not intended for the enduser. 
If you consider yourself to be more like user, you might not find what you wanted. 
Please refer to other projects like the JChemPaint project (http://jchempaint.github.com/)
or the Jmol project (http://www.jmol.org/) for programs that actually take advantage of the 
CDK library.

2. Compiling

Compiling and jar-ing the software is done with Jakarta's 
Ant (http://jakarta.apache.org/ant/) 1.7.1 or better and Java 1.6.0 or better:

cdk/$ ls build.xml
cdk/$ ant

"ant -p" gives a list of possible compilation targets. The default target is 'dist-all', which
creates a number of .jar files in the 'dist' directory corresponding to subsets of the CDK
functionality. For convenience, one large .jar file containing everything can be created using the
target 'dist-large' (using the command "ant dist-large"). This is also created in dist/jar and is
typically named something like 'cdk-1.4.11.jar'.

2.1 Creating the JavaDoc documentation for the API

The JavaDoc documentation for the API describes all of the CDK classes in detail. It functions as
the user manual for the CDK, although you should also look at the list of examples and tutorials
below. This documentation is created by 'ant' from the Java source code for the CDK as follows:

cdk/$ ls javadoc.xml
cdk/$ ant -buildfile javadoc.xml html

The documenation is created as a series of .html pages in doc/api. If you use firefox, you can read
the documentation using the following command:

cdk/$ firefox doc/api/index.html

3. Running tests

IMPORTANT: this requires the Git version of the sources, because the test files are not included in
the source code distribution.

After you compiled the code, you can do "ant test-all" to run the test suite of non-interactive, automated
tests. You might need to copy an appropriate junit.jar into your $ANT_HOME/lib
directory or somewhere else in your classpath.
Upon "ant dist-all test-dist-all test-all", you should see something like:

Running org.openscience.cdk.test.CDKTests
Tests run: 1065, Failures: 7, Errors: 1, Time elapsed: 27,55 sec

As you can see, the vast majority of tests ran successfully, but that there
are failures and errors. The $CDK_HOME/reports/results.txt file contains
information about the outcome of the tests.

There are also run interactive tests, like the Controller2DTest. In order to try them, you can edit the "run"
target in the build.xml file to look like this:

	<target name="run" depends="dist">
		<java classname="org.openscience.cdk.test.ControllerTest" fork="yes">
			<arg value=""/>
				<pathelement location="${dist}/jar/cdk.jar"/>
				<pathelement path="${java.class.path}"/>
				<pathelement location="."/>
				<fileset dir="jar">
				<include name="*.jar"/>

Then, a "ant run" should give you a window where you can add bonds to a given structure.
Currently, there are more than 15000 test, of which a large part tests the data, datadebug and 
silent classes.

You can run the tests for an individual module with (for the core module):

cdk/$ ant -Dmodule=core compile-module jarTestdata test-module

4. Using CDK

CDK is a class library intended to be used by other programs. It will not run 
as a stand-alone program, although it contains some GUI- and command
line applications. In order to use the CDK in your program, you need to build
the distribution jars by running "ant dist-all". They will end up in
$CDK_HOME/dist/jar. Copy all cdk-*.jars as well as all jars from $CDK_HOME/jar
to the lib directory of the project for which you intend to have CDK support and
use them as you would use any other third party jar.

Alternatively, run "ant dist-large" to create a jar cdk-svn-YYYYMMDD.jar in
$CDK_HOME/dist/jar. This large jar contains all the CDK code and all third
party libraries that code depends on. 

5. Examples and tutorials

To get started using the CDK, you may be interested in the following websites which contain
examples and tutorials:

* http://pele.farmbio.uu.se/planetcdk/
* http://rguha.net/code/java/
* http://www.redbrick.dcu.ie/~noel/CDKJython.html

And for updates on CDK use cases:

* https://plus.google.com/103703750118158205464/posts