Skip to main content

bokeh extension for jsmol

Project description

Build Status

JSmol bokeh extension

This extension lets you visualize atomic structures in bokeh using JSmol.

Features

  • Works both using bokeh and bokeh server
  • See example.html. Structure displays in standalone html, button will start working in bokeh server

Prerequisites

Note: As of 2019-06, NodeJS is required to compile the .ts / .coffee files. Once bokeh provides guidelines on how to bundle compiled javascript, the NodeJS dependency may be dropped.

Installation

Versioning

  • jsmol-bokeh-extension 0.1.x works with bokeh < 1.1 (written in CoffeScript)
  • jsmol-bokeh-extension 0.2 and above works with bokeh >= 1.1 (written in TypeScript)
pip install jsmol-bokeh-extension

Usage

Below a complete example.py demonstrating how to use the jsmol bokeh extension:

rom bokeh.models import ColumnDataSource
from bokeh.io import show, curdoc
from bokeh.models.widgets import Button, TextInput
from bokeh.layouts import layout, widgetbox

from jsmol_bokeh_extension import JSMol

script_source = ColumnDataSource()

info = dict(
    height="100%",
    width="100%",
    serverURL="https://chemapps.stolaf.edu/jmol/jsmol/php/jsmol.php",
    use="HTML5",
    j2sPath="https://chemapps.stolaf.edu/jmol/jsmol/j2s",
    script=
    "background black;load https://chemapps.stolaf.edu/jmol/jsmol-2013-09-18/data/caffeine.mol",
)

applet = JSMol(
    width=600,
    height=600,
    script_source=script_source,
    info=info,
)

button = Button(label='Execute')
inp_script = TextInput(value='background white;')


def run_script():
    script_source.data['script'] = [inp_script.value]


button.on_click(run_script)

ly = layout([applet, widgetbox(button, inp_script)])

show(ly)
curdoc().add_root(ly)

Note: The example can be run both using bokeh and bokeh server:

# run locally (displays structure but button won't work)
python example.py

# run using bokeh server (displays structure and button should work)
bokeh serve example.py --show

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for jsmol-bokeh-extension, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size jsmol-bokeh-extension-0.2.1.tar.gz (5.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page