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:
Missing dependencies: .. code-block:: bash
pip install py3Dmol rdkit
Invalid SMILES: - Check SMILES syntax - Use valid chemical notation
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