pymol について
claudemol のソケットインターフェースを介して PyMOL を操作する、Claude Code 向けの分子可視化スキルです。構造の読み込み、表示、レンダリング、書き出しに対応し、分子構造の解析や図の作成に使えます。
主な機能
- 01PyMOL と claudemol の導入・設定
- 02ローカルまたは RCSB の構造を読み込み
- 03分子表現と色の設定
- 04残基、チェーン、結合部位の選択
- 05視点調整と高解像度画像の作成
- 06画像、セッション、動画の書き出し
活用シーン
- 01PyMOL とソケット接続の設定
- 02タンパク質や複合体の構造確認
- 03リガンド結合部位の強調
- 04論文用の構造図の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aminoanalytica/ amina-skills --skill pymolインストール後、Claude Code で/pymolを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/commands.mdtroubleshooting.mdvisualization.mdscripts/setup_pymol.py詳細
PyMOL:claudemol による分子の可視化
概要
このスキルを使うと、Claude Code から claudemol のソケットインターフェースを介して、分子可視化ソフトウェア PyMOL を操作できます。以下をサポートします。
- セットアップ:claudemol と PyMOL のクロスプラットフォームインストール
- 可視化:タンパク質、小分子、複合体のレンダリング
- 論文掲載用の図:レイトレーシングによる高解像度画像
- インタラクティブな操作:PyMOL コマンドをプログラムから送信
適用シナリオ
| タスクカテゴリ | 例 |
|---|---|
| セットアップ | PyMOL のインストール、claudemol の設定、接続の確認 |
| 構造の読み込み | PDB ファイルの読み込み、RCSB からの取得、ローカル構造のオープン |
| 表現形式 | カートゥーン、サーフェス、スティック、球体、リボン、ライン |
| 色付け | チェーン、スペクトラム、B 因子、カスタムカラーによる色付け |
| 選択 | 残基、チェーン、リガンド、結合部位の選択 |
| カメラ | 表示方向の調整、ズーム、回転、視点の保存 |
| レイトレーシング | 高品質なレンダリング、論文掲載用の図 |
| エクスポート | 画像(PNG)、セッション(PSE)、ムービーの保存 |
セットアップ手順
クイックセットアップ(すべてのプラットフォーム)
自動セットアップスクリプトを実行します。
python /path/to/skills/pymol/scripts/setup_pymol.py
手動セットアップ
1. claudemol をインストールする
pip install claudemol
2. PyMOL をインストールする
macOS(推奨):
brew install pymol
Windows/Linux(ヘッドレス):
pip install pymol-open-source
Windows(ライセンス版 PyMOL):
既存の PyMOL インストールに接続します。references/troubleshooting.md を参照してください。
3. PyMOL を設定する
claudemol setup
これにより、PyMOL の起動時にソケットプラグインが追加されます。
4. 起動して確認する
- PyMOL を通常どおり起動します
- ポート 9880 がリッスンしていることを確認します。
lsof -i :9880 # macOS/Linux netstat -an | findstr 9880 # Windows
ソケット通信
claudemol は、ポート 9880 の TCP ソケットを介して PyMOL と通信します。
基本パターン
import socket
import json
def send_pymol_command(code: str, host: str = 'localhost', port: int = 9880) -> dict:
"""Send a command to PyMOL via claudemol socket."""
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(30)
try:
sock.connect((host, port))
message = json.dumps({"code": code})
sock.sendall(message.encode('utf-8'))
response = sock.recv(65536)
return json.loads(response.decode('utf-8'))
finally:
sock.close()
複数コマンドの例
commands = """
cmd.load('1ubq.pdb')
cmd.show('cartoon')
cmd.color('cyan', 'all')
cmd.orient()
"""
result = send_pymol_command(commands)
クイックリファレンス
構造の読み込み
# From local file
cmd.load('/path/to/structure.pdb')
cmd.load('/path/to/structure.cif')
# From RCSB PDB
cmd.fetch('1ubq')
cmd.fetch('6lu7', type='cif')
表現形式
# Show representations
cmd.show('cartoon', 'all')
cmd.show('surface', 'chain A')
cmd.show('sticks', 'resn LIG')
cmd.show('spheres', 'name CA')
# Hide representations
cmd.hide('lines', 'all')
cmd.hide('everything', 'solvent')
色付け
# Color by chain (automatic colors)
cmd.util.cbc()
# Spectrum coloring (rainbow N to C)
cmd.spectrum('count', 'rainbow', 'all')
# Specific colors
cmd.color('red', 'chain A')
cmd.color('blue', 'resn LIG')
cmd.color('green', 'resi 50-100')
# B-factor coloring
cmd.spectrum('b', 'blue_white_red', 'all')
選択
# Create named selections
cmd.select('binding_site', 'byres resn LIG around 5')
cmd.select('active_site', 'resi 145+41+166 and chain A')
cmd.select('interface', 'chain A within 4 of chain B')
# Selection algebra
cmd.select('no_water', 'all and not solvent')
表示とカメラ
# Orient and zoom
cmd.orient()
cmd.zoom('all')
cmd.zoom('chain A', buffer=5)
cmd.center('resn LIG')
# Set specific view
cmd.set_view([...]) # 18-element matrix
# Store and recall views
cmd.view('view1', 'store')
cmd.view('view1', 'recall')
レイトレーシングとエクスポート
# Basic ray trace
cmd.ray(1920, 1080)
cmd.png('/path/to/output.png')
# Publication quality
cmd.set('ray_trace_mode', 1)
cmd.set('ray_shadows', 'on')
cmd.set('antialias', 2)
cmd.ray(2400, 2400)
cmd.png('/path/to/figure.png', dpi=300)
可視化ワークフロー
ワークフローの詳細については、references/visualization.md を参照してください。
- 基本的なタンパク質の可視化
- チェーンごとの色分けによるカートゥーン表示
- 透明度を設定したサーフェス表示
- リガンド結合部位
- ドメインの強調表示
- 論文掲載品質の図
コマンドリファレンス
コマンドの詳細については、references/commands.md を参照してください。
- すべての
cmd.*関数 - 選択構文
- パラメーターの設定
- カラーパレット
トラブルシューティング
プラットフォーム固有の問題については、references/troubleshooting.md を参照してください。
- macOS の GLUT エラー
- Windows のヘッドレスモード
- 接続拒否エラー
- ディスプレイの問題
よくある問題
| 問題 | 解決方法 |
|---|---|
| 接続が拒否される | PyMOL が起動しており、claudemol プラグインが読み込まれていることを確認します |
| ポート 9880 が使用中 | 他のプロセスを終了するか、ポートを変更します |
| GUI がない(Windows pip) | ヘッドレスモードまたはライセンス版 PyMOL を使用します |
| GLUT が見つからない(macOS) | pip ではなく Homebrew でインストールします |
| レイトレーシングが遅い | 解像度を下げるか、シーンをシンプルにします |
外部リソース
- PyMOL ドキュメント:https://pymol.org/dokuwiki/
- PyMOL Wiki:https://pymolwiki.org/
- claudemol GitHub:https://github.com/colorifix/claudemol
- オープンソース版 PyMOL:https://github.com/schrodinger/pymol-open-source
コメント
Markdown 対応