1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in


From cdk

Revision as of 11:58, 30 December 2009 by Shk3 (Talk | contribs)
Jump to: navigation, search


File:news.png We have finished the JCP 3.0 release. This is a totally reworked design, offering a more user friendly interface. We have done thorough testing and are confident this is a better and more stable release than ever. The applet is also signed so that it can do IO and is smaller and faster than ever. Downloads and a test page for the applet are available.

JChemPaint (or JCP for short here) is the editor and viewer included in CDK for 2D chemical structures. It is implemented in several forms: a Java application and two varieties of Java applet.

JChemPaint was started by Christoph Steinbeck in the late 1990's to be the complementary structure editor to Jmol. It was then co-developed by Egon Willighagen and others. Jmol again is a visualisation and analysis tool for 3D molecular structures, started by Dan Gezelter at Notre Dame University, initiator of the Open Science Project and, like JChemPaint, developed by an international team of opensource programmers.

In some aspects JChemPaint is different from other 2D editors:

  • JChemPaint is open source and free software. We believe that scientific software, especially when its development was publicly funded, should be free. As the GNU people put it: «`Free software´ is a matter of liberty, not price. To understand the concept, you should think of `free speech´, not `free beer´». Everyone can participate in the development of the program. Everyone can download and change the source code, provided that they make the changes publicly available again, according to the GNU Lesser General Public License, LGPL. This ensures that the community can take advantage of any bugfix or enhancement made to the system. It also ensures that a scientist, who needs a standard piece of software like a structure editor as a helper application in his/her new program, does not have to reinvent the wheel over and over again because all the structure editors that have been written before are now proprietary software. If there is a free structure editor, he/she can focus on the real science.
  • JChemPaint is in constant development and you can help (see below).
  • Since JChemPaint is written in Java, it runs on any computing platform and operating system for which a Java Virtual Machine (of version >= 1.3 up to JCP 2.4 and version >= 1.5 for JCP > 2.4) has been implemented (like Linux, Windows, Solaris, AIX and others).
  • JChemPaint is available free of charge.
  • JChemPaint is translated into several languages: Dutch, French, German, Polish, Portuguese and Spanish.

Who did it?

JChemPaint was originally written by Christoph Steinbeck and is now developed by his group, Egon Willighagen, members of the Bioclipse developers in Uppsala, and a team of international developers.

How can I participate?

JChemPaint is developed as a SourceForge project labeled JChemPaint Applet and Swing Application. SourceForge provides bugtracking, mailing lists and last but not least SVN access.

There is more than one way to participate:

  • You can participate in the dicussion lists, by making recommendations for new features, submitting bug reports, etc. Bugs reports and feature requests can be made with our bugtracker Trac
  • You can write documentation.
  • You can write source code.
  • You can translate the interface into other languages, or help maintain the existing translations.

If you want to write documentation or start coding, please check the SourceForge site documentation on how to access SVN. If you actively want to contribute, please get a SourceForge account, contact the project admin so that he can add you to the developers list. The next step would be to checkout the source code

How can I get it?

The JChemPaint files (application and applet) can be downloaded from the downloads page of the CDK project at SourceForge. The application is a single jar file (executable using Java), while the applet is packed as a zip file containing a set of jar files; unzip them all together to a single folder in your computer.

To get the stable release (JCP3), go for the "JChemPaint, version 3.x" link.

At http://www.ebi.ac.uk/steinbeck-srv/jchempaint-nightly/ you can also find a nightly build of the applet and the application. For the applet, try the html pages, for the application, download jchempaint-xxx.jar.

JChemPaint application

  • The application is a stand-alone program. It needs an installed Java Virtual Machine for operation. If your system does not have a JVM, get it from Sun's Java website.
  • The JCP application has all the functionality of the JCP Editor applet (see below), plus file input and output.

Below a screenshot of the 3.0 release:


These are the most prominent capabilities of the application; most of them are also available in the applets.

  • Drawing and deletion of single, double, triple and stereo bonds.
  • Ring templates (3-8 atoms) with one-click attachment.
  • Colouring of atom types, and other rendering settings.
  • Editing of atomic charges, isotopes and hydrogen count.
  • Loading and saving of structures in Chemical Markup Language (CML) and as MDL MOL files and SDF files (loading only).
  • Automated Structure Layout, also known as Structure Diagram Generation.
  • Loading structures from the Internet using CAS or NSC number.
  • Normalization of structures, currently limited to aromaticity detection.
  • Saving bitmap pictures of the structures.
  • Saving structures as Scalable Vector Graphics (SVG).
  • Postscript printing.

JChemPaint Editor applet

  • An applet is a Java program that runs only within a web page.
  • The JCP Editor allows the user to draw chemical structures, and to import and export structure data in plain-text formats (SMILES, Molfile, CML)
  • It also allows to programmatically load and display a chemical structure, which can then be edited by the user.

For demonstration, the Steinbeck group (EBI) hosts various releases of the applet. You can try the latest applet there, or a previous release.

A snapshot of the 3.0 release applet is given below:

To learn how to insert and use the applet within a web page, see JChemPaint Inside Webpages.

JChemPaint Viewer applet

  • (An applet is a Java program that runs only within a web page.)
  • The JCP Viewer only allows to programmatically display a chemical structure, which the user cannot modify.
  • Demo page

This is how it looks:

To learn how to insert and use the applet within a web page, see JChemPaint Inside Webpages.

Tips and Tricks

Font smoothing

On Linux, you can use


on startup. This enables font smoothing, giving a better image.


JCP is internationalized and localized. This means that its interface can be shown in different languages (in addition to the English default). Language can be chosen from inside JCP via the View->Language menu

Available translations are (not all are complete): Arabic, Czech, Dutch, German, Hungarian, Norvegian Bokmal, Portuguese (Brazil), Russian, Spanish, Thai.

If needed, the language can be changed in this way:

  • You can start the application in a certain language from a command line (or from a shortcut):
java.exe -Duser.language=nl -jar jchempaint-2.3.4.jar
(you may need to insert the paths to Java and to JCP)
  • For the applet, add a parameter tag like
<param name="language" value="de">
to the <applet> tag in the html page.


JChemPaint is dependant on the CDK project. Releases prior to 3.0 had their code in the main CDK svn, packages org.openscience.cdk.application.jchempaint.*. With release 3.0 a new cdk module called jchempaint, still in the CDK svn, was started.

Some more detailed development topics are:

Using CDK renderer for rendering images

You can also use the renderer classes contained in JCP for rendering images, which can then be written into files, returned in http request etc. For this, you need the jars you get when compiling CDK and the cdk-jchempaint.jar, you get when calling the ant target dist-jars in the classpath of your project. Alternatively, you can also download the jchempaint-lib-X.zip file from the JCP download page, or the cdk-git-DATE.jar from this Nightly page.

Read the Renderer Tutorial about how to use the renderer in your application.

Literature & Citations

  • "An Applet Release of JChemPaint"
Stefan Kuhn. CDK News 3 (1), 21-23 (March 2006). PDF download, mirror 1 · PDF, mirror 2.
  • "JChemPaint - Using the Collaborative Forces of the Internet to Develop a Free Editor for 2D Chemical Structures"
Stefan Krause, Egon Willighagen and Christoph Steinbeck. Molecules 5, 93-98 (2000). Full-text html.

Webpages that use JCP

These are places where you may get a feel of how JCP can be used, and get pieces of html / js source code too.

  • NMRShiftDB - choose a structure and then the "J" little icon; you will see a JCP viewer coupled to NMR tabular and graphic data.
  • ChEBI - Chemical Entities of Biological Interest at European Bioinformatics Institute, go to "Advanced Search"


Personal tools