Scientific Visualization Tools¶

ToolUniverse provides simple and powerful visualization tools for proteins and molecules. Generate beautiful interactive HTML visualizations with just a few lines of code.

Quick Start¶

from tooluniverse import ToolUniverse

# Initialize ToolUniverse
tu = ToolUniverse()
tu.load_tools()

# Visualize a protein
result = tu.run({
    "name": "visualize_protein_structure_3d",
    "arguments": {"pdb_id": "1CRN"}
})

# Save the visualization
with open("protein.html", "w") as f:
    f.write(result["visualization"]["html"])

Installation¶

Install with visualization dependencies:

pip install tooluniverse[visualization]

Available Tools¶

1. Protein 3D Visualization¶

Tool: visualize_protein_structure_3d

Visualize 3D protein structures from PDB database.

Basic Usage:

result = tu.run({
    "name": "visualize_protein_structure_3d",
    "arguments": {"pdb_id": "1CRN"}
})

Options: - pdb_id: PDB ID (e.g., “1CRN”, “7CGO”) - style: “cartoon”, “stick”, “sphere”, “line” (default: “cartoon”) - color_scheme: “spectrum”, “rainbow”, “ssPyMOL” (default: “spectrum”) - width: Width in pixels (default: 800) - height: Height in pixels (default: 600)

2. Molecule 2D Visualization¶

Tool: visualize_molecule_2d

Generate 2D molecular structure images.

Basic Usage:

result = tu.run({
    "name": "visualize_molecule_2d",
    "arguments": {"smiles": "CCO"}
})

Options: - smiles: SMILES string (e.g., “CCO” for ethanol) - molecule_name: Common name (e.g., “aspirin”, “caffeine”) - width: Width in pixels (default: 400) - height: Height in pixels (default: 400) - output_format: “png” or “svg” (default: “png”)

3. Molecule 3D Visualization¶

Tool: visualize_molecule_3d

Create interactive 3D molecular structures.

Basic Usage:

result = tu.run({
    "name": "visualize_molecule_3d",
    "arguments": {"smiles": "CCO"}
})

Options: - smiles: SMILES string - style: “stick”, “sphere”, “cartoon”, “line”, “spacefill” (default: “stick”) - color_scheme: “default”, “spectrum”, “rainbow” (default: “default”) - width: Width in pixels (default: 800) - height: Height in pixels (default: 600)

Output Format¶

All tools return the same format:

{
    "success": True,
    "visualization": {
        "html": "<html>...</html>",  # Interactive HTML
        "type": "protein_structure_3d",
        "data": {...},  # Input data
        "metadata": {...}  # Additional info
    }
}

Examples¶

Run the examples:

# Quick examples
python examples/visualization_quickstart.py

# More examples
python examples/visualization_examples.py

Common Examples¶

Visualize different proteins:

proteins = ["1CRN", "7CGO", "1HTM"]
for pdb_id in proteins:
    result = tu.run({
        "name": "visualize_protein_structure_3d",
        "arguments": {"pdb_id": pdb_id}
    })
    with open(f"{pdb_id}.html", "w") as f:
        f.write(result["visualization"]["html"])

Visualize different molecules:

molecules = ["CCO", "CC(=O)O", "c1ccccc1"]  # ethanol, acetic acid, benzene
for smiles in molecules:
    result = tu.run({
        "name": "visualize_molecule_2d",
        "arguments": {"smiles": smiles}
    })
    with open(f"{smiles}.html", "w") as f:
        f.write(result["visualization"]["html"])

Troubleshooting¶

Common Issues:

  1. Missing dependencies: .. code-block:: bash

    pip install py3Dmol rdkit

  2. Invalid SMILES: - Check SMILES syntax - Use valid chemical notation

  3. PDB ID not found: - Verify PDB ID exists at https://www.rcsb.org/ - Check spelling

Performance Tips: - Use smaller dimensions for large molecules - Disable surface rendering for better performance

Resources¶