Visualize, analyze, and render protein and molecular structures using PyMOL. Use when the user wants to create images of protein structures, perform structural alignments or superposition, measure distances or contacts, highlight binding sites or active site residues, color by B-factor/pLDDT, or analyze protein-ligand interactions. Do not use for docking, molecular dynamics, or sequence-only analysis.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
uv: Read the uv skill and follow its Setup instructions to ensure
uv is installed and on PATH.All PyMOL commands run on the host via uv with OSMesa software rendering — no
GPU, display, or X server is needed. Structure files must be downloaded to the
host before running PyMOL.
Do NOT use when:
Ensure that uv is installed on the host system. The PyMOL scripts use PEP 0723
headers to declare their dependencies, and uv run will automatically handle
installing them (including pymol-open-source-whl) when the script is executed.
cmd.png() for output. Never use
cmd.draw() or cmd.ray() with hardware acceleration — OSMesa does not
support it. Set environment variable PYOPENGL_PLATFORM=osmesa for headless
rendering..pse session file alongside any PNG output. This lets
the user open the session in their local PyMOL for further inspection.cmd.quit() at the end of every PyMOL script. Omitting it
causes the process to stop responding.from pymol import cmd must come after
finish_launching(), not before.cmd.load(),
always verify it succeeded by checking cmd.count_atoms("all"). If the
result is 0, print an error to stdout and call cmd.quit() immediately.render.py) with the required init
boilerplate and PEP 0723 header.uv run: bash uv run render.pyrender.py)# /// script
# requires-python = ">=3.10, <3.13"
# dependencies = [
# "pymol-open-source-whl",
# ]
# ///
import os
import sys
# Set environment variable for headless rendering
os.environ["PYOPENGL_PLATFORM"] = "osmesa"
import pymol # pytype: disable=import-error
pymol.pymol_argv = ["pymol", "-cq"]
pymol.finish_launching()
from pymol import cmd # pytype: disable=import-error
cmd.load("AF-P00520-F1-model_v4.cif", "structure")
cmd.show("cartoon")
cmd.color("green", "ss h")
cmd.color("yellow", "ss s")
cmd.color("gray", "ss l+''")
cmd.orient()
cmd.set("ray_opaque_background", 1)
cmd.png("output/render.png", width=1200, height=900, dpi=150)
cmd.save("output/session.pse")
cmd.quit()See references/RECIPES.md for complete, copy-paste ready recipes. Available recipes:
.pse fileoutput/ directory contains PNG images and a .pse session file..pse file in their local PyMOL to further
explore, rotate, or modify the visualization..pse in a new script and
re-run.--max_output_mb limit (default
500 MB). Increase it with --max_output_mb=1000 if needed.0b42509
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.