Skip to content


Repository files navigation

License Version PRs



The Trident Chemwidgets (TCW) package provides a set of Jupyter widgets to improve data visibility in cheminformatics and molecular machine learning.

Trident Chemwidgets is a product of Trident Bioscience. Trident Bioscience builds machine learning applications for the biotech and pharmaceutical industries. If you're interested in learning more, you can visit us at or email us at


Trident Chemwidgets is available from pip and conda:


pip install trident-chemwidgets


conda install -c conda-forge trident-chemwidgets

Then, for Jupyter Lab, run:

jupyter labextension install trident-chemwidgets

Full instructions here.

Click the link above to access the documentation. If you're looking for example notebooks, check out the links below (clone this repository to use them directly).


We suggest importing Trident Chemwidgets using the convention tcw, as shown below.

import trident_chemwidgets as tcw

Input functions


To facilitate molecular input, TCW provides an interface to the JSME Molecule Editor with added functionality.

editor = tcw.JSME()

You can play with JSME widget in this notebook.

Plotting functions

Understanding the distribution of your data is critical to many cheminformatic tasks. To this end, we supply a number of interactive plotting functions that allow you to display both the data and underlying molecular structures. You can even subset and save the data based on the property values for use in downstream analysis.


For 1-dimensional datasets, TCW provides a histogram plot function:

histogram = tcw.Histogram(data=data, smiles='smiles', x='tpsa', x_label='TPSA')

You can play with Histogram widget in this notebook.

Scatter plot

For 2-dimensional datasets, TCW provides a scatter plot function:

scatter = tcw.Scatter(data=data, smiles='smiles', x='mwt', y='logp',
                      x_label='Molecular Weight', y_label='logP')

You can play with Scatter widget in this notebook.

Output functions

Interactive molecule

To examine features at the atom level, TCW provides a function to plot a molecule and allow users to explore the atom-specific features:

mol = tcw.InteractiveMolecule('CC(C)CC1=CC=C(C=C1)C(C)C(=O)O', data=atom_data)

You can play with InteractiveMolecule widget in this notebook.