数据与AI
需要无 GPU 渲染/分析蛋白质结构时,用…
当已有蛋白质/分子结构文件,且需要在无显示器的宿主环境可视化、比对、测量、着色或分析相互作用时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要无 GPU 渲染/分析蛋白质结构时,特定
解决思路
- 阅读 `uv` skill 并遵循其 Setup instructions,确保 `uv` 已安装且在 PATH 中。
- 如果 workspace 根目录中还没有 `.licenses/pymol_LICENSE.txt`,先显著通知用户查看 https://www.pymol.org/ 的许可证,然后创建该文件记录通知文本和时间戳。
- 所有 PyMOL 命令都在 host 上通过 `uv` 运行,并使用 OSMesa 软件渲染;无需 GPU、display 或 X server。
- 运行 PyMOL 前,必须先把结构文件下载到 host。
- 确保 host system 上已安装 `uv`。
- PyMOL scripts 使用 PEP 0723 headers 声明依赖;`uv run` 执行脚本时会自动安装依赖,包括 `pymol-open-source-whl`。
- 输出路径必须使用绝对路径,或相对于用户 project root;始终从用户 project directory 运行 PyMOL scripts。
- 仅使用软件渲染;用 `cmd.png()` 输出;不要使用 `cmd.draw()` 或 `cmd.ray()` 的硬件加速,因为 OSMesa 不支持;设置环境变量 `PYOPENGL_PLATFORM=osmesa` 进行 headless rendering。
- 任何 PNG 输出旁总是保存一个 `.pse` session 文件。
- 每个 PyMOL script 末尾总是调用 `cmd.quit()`;遗漏会导致进程停止响应。
- 每个 PyMOL script 必须以初始化 boilerplate 开头;`from pymol import cmd` 必须在 `finish_launching()` 之后,而不是之前。
- 参考 `references/PYMOL_REFERENCE.md` 获取 selection syntax、常用命令和 gotchas。
- Pre-Flight File Check:在编写或运行 PyMOL script 前,必须验证请求的结构文件确实存在于 host machine。
- 用 `cmd.load()` 加载结构后,总是通过 `cmd.count_atoms("all")` 验证是否成功;如果结果为 0,向 stdout 打印错误并立即调用 `cmd.quit()`。
- 对 cartoon representation,PyMOL scripts 应自动检测结构是否为 alpha-carbon trace(`cmd.count_atoms("name CA") == cmd.count_atoms("all")`),若是则必须遵循 Alpha carbon trace cartoon recipe。
- 如果使用此 skill,确保在输出中提及。
- 确保结构文件已下载到用户 project 中的某个目录。
- 编写 PyMOL Python script(例如 `render.py`),包含必需 init boilerplate 和 PEP 0723 header。
- 通过 `uv run` 运行,例如 `bash uv run render.py`。
- 最小示例脚本 `render.py` 可作为模板:使用 PEP 0723 header 声明 `requires-python = ">=3.10, <3.13"` 和依赖 `pymol-open-source-whl`;设置 `os.environ["PYOPENGL_PLATFORM"] = "osmesa"`;设置 `pymol.pymol_argv = ["pymol", "-cq"]`;调用 `pymol.finish_launching()`;再 `from pymol import cmd`;然后 `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()`。
- 按 `references/RECIPES.md` 中完整、可复制粘贴的 recipes 操作;可用 recipes 包括 Cartoon with secondary structure coloring(基本 helix/sheet/loop 着色)。
- 按 `references/RECIPES.md` 操作 Alpha carbon trace cartoon(对 CA-only 结构强制使用 cartoon representation)。
- 按 `references/RECIPES.md` 操作 B-factor (pLDDT) coloring(按 B-factor 连续光谱着色)。
- 按 `references/RECIPES.md` 操作 AlphaFold pLDDT coloring(使用标准阈值置信度颜色)。
- 按 `references/RECIPES.md` 操作 Highlight specific residues(将 active site 或关键残基显示为 sticks)。
- 按 `references/RECIPES.md` 操作 Surface rendering(在 cartoon 上叠加透明 surface)。
- 按 `references/RECIPES.md` 操作 Electrostatic surface rendering(真空 electrostatics,定性)。
- 按 `references/RECIPES.md` 操作 Multi-chain complex colors(自动按链着色)。
- 按 `references/RECIPES.md` 操作 B-factor putty analysis(tube 宽度与 flexibility 成比例)。
- 按 `references/RECIPES.md` 操作 Cavity and pocket visualization(surface cavity 检测并聚焦 ligand)。
- 按 `references/RECIPES.md` 操作 Multi-structure batch rendering(渲染一个结构目录)。
- 按 `references/RECIPES.md` 操作 Measure distance between residues(带 label 的 CA–CA 距离)。
- 按 `references/RECIPES.md` 操作 Zoom into binding pocket(简单聚焦 pocket)。
- 按 `references/RECIPES.md` 操作 Protein-ligand interaction(ligand 分离、styled rendering、polar contacts)。
- 按 `references/RECIPES.md` 操作 Two-structure superposition with RMSD(使用 align/cealign 并自动 fallback)。
- 按 `references/RECIPES.md` 操作 In silico mutagenesis(用 mutagenesis wizard 突变残基)。
- 按 `references/RECIPES.md` 操作 Load and modify an existing session(重新打开 `.pse` 文件)。
- `output/` 目录包含 PNG images 和 `.pse` session file。
- 任何 measurements 或 metrics(distances、RMSD、atom counts)由 PyMOL script 打印到 stdout;向用户报告这些值。
- 向用户展示 PNG images 并描述 visualization。
- 告诉用户可以在本地 PyMOL 中打开 `.pse` 文件,以进一步 explore、rotate 或 modify visualization。
- 如果用户想要修改,加载保存的 `.pse` 到新 script 并重新运行。
- 大型含 surface 的 sessions 可能超过 `--max_output_mb` 限制(默认 500 MB);如需要,用 `--max_output_mb=1000` 增大。
适用边界 · 注意事项
- 用户想运行 AlphaFold predictions。
- 用户想做 docking 或 molecular dynamics simulations。
- 用户只有 sequence 且没有 structure file(应先获取结构;检查是否有其他已安装 skill 可从 PDB 或 AlphaFold Database 获取结构)。