Skip to main content

Jupyter UI extensions for drug discovery visualization - ADMET, 3D complex viewer, SMILES drawing

Project description

refua-notebook

Jupyter UI extensions for drug discovery visualization. This package provides inline notebook widgets for displaying ADMET properties, 3D molecular structures, and SMILES drawings from Refua objects. It also includes an IPython extension that automatically registers rich HTML representations for Refua objects.

Features

  • IPython Extension: Automatic widget display for Refua SM, Protein, Complex, and FoldResult objects
  • Rich Visualization: 2D structures, 3D Mol* views, and property summaries rendered directly from Refua objects

Installation

pip install refua-notebook

Or with Poetry:

poetry add refua-notebook

refua-notebook depends on Refua directly, so installing this package will also install refua.

Quick Start

Automatic Widget Display (IPython Extension)

The easiest way to use refua-notebook is to load it as an IPython extension. This automatically registers rich HTML representations for Refua objects:

# Option 1: Load as IPython extension
%load_ext refua_notebook

# Option 2: Activate programmatically
import refua_notebook
refua_notebook.activate()

# Now Refua objects display automatically as widgets!
from refua import SM, Protein, Complex

# Proteins show sequence info (and 3D structure if folded)
Protein("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ", ids="A")

# Folded complexes show a tabbed view with 3D structure, affinity, and molecule details
complex = Complex([
    Protein("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ", ids="A"),
    SM("CCO"),
]).request_affinity()
result = complex.fold()
complex  # Shows 3D structure with binding affinity (uses complex.last_fold)

Displaying the Refua objects directly is enough; the extension handles rich HTML rendering automatically.

JupyterLab Renderer (Required for JupyterLab)

JupyterLab blocks inline scripts, so the package ships a prebuilt JupyterLab renderer that loads Mol* and SmilesDrawer locally and renders the application/vnd.refua+json MIME output. With recent JupyterLab versions, no jupyter labextension install or jupyter lab build step is required—installing the Python package is enough.

To rebuild the prebuilt labextension (requires network access for npm packages):

cd labextension
yarn install
yarn build:prod

Refua Integration

refua-notebook is built on top of the Refua drug discovery toolkit:

from refua import Complex, Protein, SM

# Fold a protein-ligand complex
complex = Complex([
    Protein("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ", ids="A"),
    SM("CCO"),
]).request_affinity()
result = complex.fold()

# Display the Refua objects directly
complex
result.affinity

Examples

The examples/ directory includes runnable notebooks:

  • refua_folding.ipynb
  • refua_antibody_design.ipynb
  • refua_peptide_design_mdm2.ipynb
  • refua_peptide_design_glp1r.ipynb
  • refua_peptide_design_integrin_avb3.ipynb

Rebuild all examples (executes and writes outputs in-place):

poetry run jupyter nbconvert --execute --to notebook --inplace examples/*.ipynb

API Reference

Extension Functions

# Load extension (in notebook)
%load_ext refua_notebook

# Programmatic activation
import refua_notebook
refua_notebook.activate()     # Enable automatic widget display
refua_notebook.deactivate()   # Disable automatic widget display
refua_notebook.is_active()    # Check if extension is active

Development

# Clone the repository
git clone <your-repo-url>
cd refua-notebook

# Install dependencies
poetry install

# Run tests
poetry run pytest

# Optional browser-level JupyterLab widget test
poetry run playwright install chromium
REFUA_JLAB_PLAYWRIGHT=1 poetry run pytest tests/test_jupyterlab_playwright.py

# Format code
poetry run black refua_notebook tests

License

MIT License

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

refua_notebook-0.7.1.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

refua_notebook-0.7.1-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file refua_notebook-0.7.1.tar.gz.

File metadata

  • Download URL: refua_notebook-0.7.1.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Darwin/25.3.0

File hashes

Hashes for refua_notebook-0.7.1.tar.gz
Algorithm Hash digest
SHA256 6baf70595c7da0a2332d42f4a67ed679f4b7d3ac75d4216db5f52202c5cdc0ed
MD5 8d8daf1489a9bd001e5290a1b995c445
BLAKE2b-256 1c72dc8aa5a0eb540899c336d2ce3a2f484f17a9175a0269dfb29e7833594fd4

See more details on using hashes here.

File details

Details for the file refua_notebook-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: refua_notebook-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.14.3 Darwin/25.3.0

File hashes

Hashes for refua_notebook-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 65027afe309da0b6401bb01741193d3ef13ee706d9191cf1db04a2e9467dce88
MD5 ca0c0600d2bc69f4c8850ad928326770
BLAKE2b-256 b2b8ac3b2b794fb03fd564aeb914bf2a267ad69c9fc35c026ade3e0cf73bdef0

See more details on using hashes here.

Supported by

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