pymol について
ホスト上で PyMOL を実行し、ダウンロード済みの分子構造ファイルを可視化・解析するスキルです。OSMesa によるソフトウェアレンダリングを使うため、GPU、ディスプレイ、X server は不要です。
主な機能
- 01ソフトウェアレンダリングで構造を描画
- 02PNG 画像と .pse セッションの作成
- 03B-factor または pLDDT による着色
- 04残基と結合ポケットの強調
- 05構造を重ね合わせて RMSD を出力
活用シーン
- 01タンパク質の二次構造の描画
- 02AlphaFold 構造の信頼度値の確認
- 03タンパク質とリガンドの接触の可視化
- 04重ね合わせによる2構造の比較
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ google-deepmind/ science-skills --skill pymolインストール後、Claude Code で/pymolを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/citation.bibPYMOL_REFERENCE.mdRECIPES.md詳細
PyMOL
前提条件
uv:uvのスキルを読み、セットアップ手順に従って、uvがインストールされ、PATH に設定されていることを確認してください。- ユーザーへの通知:ワークスペースのルートディレクトリに .licenses/pymol_LICENSE.txt が存在しない場合は、(1)https://www.pymol.org/ のライセンスを確認するようユーザーにはっきりと通知し、(2)通知文とタイムスタンプを記録したファイルを作成してください。
概要
すべての PyMOL コマンドは、OSMesa ソフトウェアレンダリングを使用して uv 経由でホスト上で実行されます。GPU、ディスプレイ、X サーバーは不要です。PyMOL を実行する前に、構造ファイルをホストにダウンロードしておく必要があります。
次の場合は使用しないでください:
- ユーザーが AlphaFold による予測を実行したい場合。
- ユーザーがドッキングや分子動力学シミュレーションを行いたい場合。
- ユーザーが配列しか持っておらず、構造ファイルを持っていない場合。まず構造を取得してください。続行する前に、PDB または AlphaFold Database から構造を取得できる、インストール済みの他のスキルがないか確認してください。
セットアップ(エージェント向けの指示)
ホストシステムに uv がインストールされていることを確認してください。PyMOL スクリプトでは、依存関係の宣言に PEP 0723 ヘッダーを使用します。スクリプトの実行時に uv run が pymol-open-source-whl を含む依存関係を自動的にインストールします。
基本ルール
- 出力パスは絶対パス、またはユーザーのプロジェクトルートからの相対パスにしてください。 必ずユーザーのプロジェクトディレクトリから PyMOL スクリプトを実行してください。
- ソフトウェアレンダリングのみを使用してください。 出力には
cmd.png()を使用してください。ハードウェアアクセラレーションを使用するcmd.draw()やcmd.ray()は決して使用しないでください。OSMesa はこれをサポートしていません。ヘッドレスレンダリングでは、環境変数PYOPENGL_PLATFORM=osmesaを設定してください。 - PNG 出力と同じ場所に
.pseセッションファイルを必ず保存してください。 これにより、ユーザーはローカルの PyMOL でセッションを開き、さらに詳しく確認できます。 - すべての PyMOL スクリプトの末尾で、必ず
cmd.quit()を呼び出してください。 省略すると、プロセスが応答しなくなります。 - 初期化の定型コードは必須です。 すべての PyMOL スクリプトは初期化シーケンスから始めてください。
from pymol import cmdはfinish_launching()の後に記述し、前に記述してはいけません。 - 選択構文、一般的なコマンド、注意点については、references/PYMOL_REFERENCE.md を参照してください。
- 実行前のファイル確認:PyMOL スクリプトを作成または実行する前に、要求された構造ファイルがホストマシン上に実際に存在することを必ず確認してください。
- 構造の読み込みを確認:
cmd.load()で構造を読み込んだ後、cmd.count_atoms("all")を確認して、読み込みが成功したことを必ず検証してください。結果が 0 の場合は、標準出力にエラーを表示し、直ちにcmd.quit()を呼び出してください。 - アルファ炭素トレースの自動検出:カートゥーン表示の場合、PyMOL スクリプトで構造がアルファ炭素トレースかどうか(
cmd.count_atoms("name CA") == cmd.count_atoms("all"))を自動的に検出してください。その場合は、必ず アルファ炭素トレースのカートゥーンの手順に従ってください。 - 通知:このスキルを使用した場合は、そのことを出力に記載してください。
クイックスタート
- 構造ファイルがユーザーのプロジェクト内のディレクトリにダウンロードされていることを確認してください。
- 必須の初期化定型コードと PEP 0723 ヘッダーを含む PyMOL Python スクリプト(例:
render.py)を作成してください。 uv run経由で実行してください:bash uv run render.py
最小限のスクリプト例(render.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()
よく使うレシピ
すぐにコピーして使える完全なレシピについては、references/RECIPES.mdを参照してください。利用可能なレシピ:
- 二次構造を色分けしたカートゥーン表示 — ヘリックス/シート/ループの基本的な色分け
- アルファ炭素トレースのカートゥーン表示 — CA のみの構造でカートゥーン表現を強制
- B 因子(pLDDT)の色分け — B 因子に基づく連続スペクトルの色分け
- AlphaFold pLDDT の色分け — 標準的なしきい値に基づく信頼度の色分け
- 特定の残基を強調表示 — 活性部位や重要な残基をスティック表示
- 表面のレンダリング — カートゥーン表示に重ねた透明な表面
- 静電表面のレンダリング — 真空中の静電気学的表示(定性的)
- 複数鎖複合体の色分け — 鎖ごとの自動色分け
- B 因子のパティ解析 — 柔軟性に比例したチューブ幅
- 空洞とポケットの可視化 — リガンドに焦点を当てた表面空洞の検出
- 複数構造の一括レンダリング — 構造ファイルのディレクトリをレンダリング
- 残基間の距離を測定 — ラベル付きの CA–CA 間距離
- 結合ポケットにズーム — ポケットに焦点を当てたシンプルな表示
- タンパク質とリガンドの相互作用 — リガンドの分離、スタイル付きレンダリング、極性接触
- 2 つの構造の重ね合わせと RMSD — 自動フォールバック付きの align/cealign
- インシリコ変異導入 — 変異導入ウィザードで残基を変異
- 既存のセッションを読み込んで変更 —
.pseファイルを再度開く
出力の解釈
output/ディレクトリには PNG 画像と.pseセッションファイルが含まれます。- 測定値や指標(距離、RMSD、原子数)は PyMOL スクリプトによって stdout に出力されます。これらの値をユーザーに報告してください。
- PNG 画像をユーザーに提示し、可視化内容を説明してください。
.pseファイルをローカルの PyMOL で開き、可視化をさらに確認、回転、変更できることをユーザーに伝えてください。- ユーザーが変更を希望する場合は、保存済みの
.pseを新しいスクリプトで読み込み、再実行してください。 - 表面を含む大きなセッションでは、
--max_output_mbの上限(既定値は 500 MB)を超えることがあります。必要に応じて--max_output_mb=1000で上限を増やしてください。
コメント
Markdown 対応