Kekule.js Overview

Kekule.js is an open source JavaScript library for chemoinformatics released under MIT license. Currently, it is molecule-centric, focusing on providing the ability to represent, draw, edit, compare and search molecule structures on web browsers.

Major Features

The whole library is divided into several modules, each provides different features and functions. Users can use the combination of modules for specific purpose. The following table lists the major features of each module in Kekule.js.

Module Major feature(s)
  • Representation of chemical concepts including element, atom, bond, molecule and reaction
  • Read/write different format of chemical data. Now including:
    • Kekule JSON/XML format
    • CML
    • MDL MOL2000/3000
    • SMILES
  • Provides low-level cross-browser render methods to draw molecule (and other chemical objects) in web browser context
  • Algorithms for chemical graph theory, including:
    • Ring perception
    • Aromatic ring recognization
    • Molecule comparison
    • Sub-structure search
    • Stereo center and stereo bond identification
  • Small components to be used in web applications, including button, text box, combo box, dialog, tree view, tab view, text editor, color picker, object inspector and so on
  • Animation system to show/hide those widgets
  • Actions associated with those widgets
Chem Widget
  • Widgets related to chemistry, including:
    • Periodical table
    • 2D or 3D viewer for molecule and other chemical objects
    • 2D diagram editor for molecule and other chemical objects
Web Component
  • Web component wrappers for widgets.
  • Some extra function, including:
    • Adapter for InChI lib, support of InChI format
    • Adapter for Open Babel, support of many other chemical data formats
    • Adapter for Indigo lib, support of 2D auto-layout


The whole Kekule.js package can be installed with npm:

npm install --save kekule

then be imported to your project with ES module import:

import { Kekule } from 'kekule';
// if Kekule widgets is used, the theme CSS should be imported as well
import 'kekule/theme/default';

As a JavaScript library, Kekule.js can also be included in HTML page in a traditional way using by <script> tag:

<script src="kekule.min.js"></script>

If widget or chem widget modules are used, additional style sheet file also need to be linked in HTML page:

<link rel="stylesheet" type="text/css" href="themes/default/kekule.css" />


A tutorial explaining the basic usage of Kekule.js has been made available at here.

Supported Web Browsers

All modern web browsers, including ones on mobile devices are supported. For instance (but not limited to):


The work of Kekule.js has been publish on Journal of Chemical Information and Modeling. To support our work, please cite: J. Chem. Inf. Model. 2016, 56(6), 1132−1138 and J. Chem. Inf. Model. 2016, 57(10), 2407−2412.