ketcher

Ketcher Developers Manual

Installation

The installation package contains all required sources.

To run Ketcher in a separate page, use ketcher/index.html:

<a href="ketcher/index.html">Ketcher</a>

To embed Ketcher in another page, use IFrame:

<iframe id="ifKetcher" src="ketcher/index.html" width="800" height="600"></iframe>

Access Ketcher

To access Ketcher from JavaScript, use the following code to obtain the object reference:

var ketcher = ketcherWindow.ketcher;
where ketcherWindow is a separate Ketcher window or

var ketcherFrame = document.getElementById('ifKetcher');
var ketcher = null;

if ('contentDocument' in ketcherFrame)
    ketcher = ketcherFrame.contentWindow.ketcher;
else // IE7
    ketcher = document.frames['ifKetcher'].window.ketcher;

where ifKetcher is a Ketcher IFrame.

setMolecule()

This method updates the current structure in the editor. Pass it a SMILES string or a Molfile/Rxnfile:

ketcher.setMolecule('c1ccccc1');

Note: SMILES import is not available in the standalone mode.

getSmiles()

Exports current structure as a SMILES string.

getMolfile()

Exports current structure as a Molfile/Rxnfile string.

addFragment()

This method switches Ketcher to the fragment insertion mode where a user can specify where to the provided fragment. Pass it a SMILES string or a Molfile/Rxnfile:

ketcher.addFragment('c1ccccc1');

Note: SMILES import is not available in the standalone mode.

Ketcher interaction example

You can look at the source a web page with embedded Ketcher here where the web page interacts with a Ketcher object using this API.

Ketcher Server

The current version of Ketcher has a sample implementation of the server side. A simple Python script ketcher.py listens to the port 8080 and has four interfaces:

Query Action Type Parameters
knocknock Server availability check GET -------------
open Query for loading files from disk POST filedata
save Query for saving files to disk POST filedata
layout Query for converting SMILES to Molfile POST moldata
automap Query for reaction auto-mapping POST moldata, mode
aromatize Query for aromatization POST moldata
dearomatize Query for dearomatization POST moldata

Indigo binaries and Python wrappers are required to perform automatic layout, atom-to-atom mapping or SMILES import. Ketcher server script can be executed as a standalone application and also can run under WSGI.


ketcher installation document

How to save canvas as SVG from the API in Ketcher

To generate image please use the following steps:

H2O

serialize struct to string:

const struct = await ketcher.getKet()

generate Blob:

const imgBlob = await ketcher.generateImage(struct) - png

or

const imgBlob = await ketcher.generateImage(struct, *options)

*options is an object with 'outputFormat' ('svg' or 'png') and 'backgroundColor' (optional) properties. for example:

let options = {outputFormat: 'svg'}

Also see issue