Skip to main content

Running ImJoy in Jupyter notebooks.

Project description

ImJoy Jupyter Extension

Try the demo here: Binder

Using ImJoy with Jupyter notebooks

This extension utilizes the imjoy-rpc library to enable bidirectional RPC calls between the ImJoy core and plugins.

The library has an abstract transport interface that can support different types of transport. For now, we support Jupyter comms message which is a custom message protocol used in Jupyter notebooks (for example powers jupyter widgets).

To use it, you need to install the imjoy-jupyter-extension in javascript which will also include the imjoy-rpc as a dependency.

Install the Jupyter notebook extension

pip install -U imjoy-jupyter-extension

Use ImJoy plugins inside Jupyter notebooks

Now you can start a jupyter notebook via for example jupyter notebook command, you should be able to see an ImJoy icon in the toolbar if everything goes well.

imjoy in the notebook toolbar

Now run ImJoy plugins in a cell, see an example that uses itk-vtk-viewer to visualize images:

import imageio
import numpy as np
from imjoy_rpc import api

class ImJoyPlugin():
    def setup(self):
        api.log('plugin initialized')

    async def run(self, ctx):
        viewer = await api.showDialog(type="itk-vtk-viewer",
                                      src="https://oeway.github.io/itk-vtk-viewer/")
        # show a 3D volume
        image_array = np.random.randint(0, 255, [10,10,10], dtype='uint8')

        # show a 2D image
        # image_array = imageio.imread('imageio:chelsea.png')

        await viewer.imshow(image_array)

api.export(ImJoyPlugin())

With the above code, you created an ImJoy plugin. To run it, click the Run button with the ImJoy icon. It will then call the run function of your plugin.

Run Jupyter notebook inside ImJoy

You can also do the reverse by running a notebook inside ImJoy, to do that, please first create an empty jupyter notebook. Then copy and paste the url into the "+ PLUGINS" dialog, press enter and install the plugin. Click the newly installed plugin and you will get a notebook page open in ImJoy.

Try to copy and paste the itk-vtk-viewer example to a cell and execute it. Similarily, if you now click the run ImJoy button in the toolbar, you will get the viewer open insided ImJoy.

Project details


Download files

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

Source Distribution

imjoy-jupyter-extension-0.2.7.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

imjoy_jupyter_extension-0.2.7-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file imjoy-jupyter-extension-0.2.7.tar.gz.

File metadata

  • Download URL: imjoy-jupyter-extension-0.2.7.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.1

File hashes

Hashes for imjoy-jupyter-extension-0.2.7.tar.gz
Algorithm Hash digest
SHA256 ac9e4320a3877182b5f1c01f1e4e2bbca53f4e134719e2ea9d8c9d77faa413b5
MD5 703e2cb6b61326747431d604825e1bdc
BLAKE2b-256 833417ce1cb2e09b3b841e967290cf7d77d8c1397fdfb5f5f615e76cbc650a13

See more details on using hashes here.

Provenance

File details

Details for the file imjoy_jupyter_extension-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: imjoy_jupyter_extension-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.1

File hashes

Hashes for imjoy_jupyter_extension-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b5530939c16ad50b4a8ca0ad8fd6b7eec8844d8fc16746f22d2772450cd04a24
MD5 82cc75fba9674a8f1ec0c1392d39d137
BLAKE2b-256 b20b03b0a9326d9d51f100b9bbe4da8387fde2f3a4c8739e99a2d974381f70b9

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page