mcpField
P
protein-structure-analysis

protein-structure-analysis

github.com/awslabsデータ・データベース6876 回インストール4 週間前に更新
リポジトリ

protein-structure-analysis について

BiopythonやPyMOLなどを使うタンパク質構造解析向けの推論スキルです。ツール選択、パラメーター、形式変換、解析時の注意点を案内します。

主な機能

  1. 01PDB/mmCIF解析の指針
  2. 02RMSD用原子の選択と対応付け
  3. 03結合ポケットの検出と表示
  4. 04接触・二次構造・角度の解析
  5. 05構造形式変換のルール

活用シーン

  1. 01タンパク質構造を比較してRMSDを計算
  2. 02リガンド結合ポケットの検出と可視化
  3. 03ドッキング用に構造をPDBQTへ変換
  4. 04ラマチャンドランプロットや接触マップの解析

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/awslabs/hcls-agent-skills --skill protein-structure-analysis

インストール後、Claude Code で/protein-structure-analysisを入力して読み込まれたか確認します。

詳細

タンパク質構造解析 — パイプラインスキル(最小限の足場)

概要

タンパク質構造タスク向けに、ツール選択のロジック、形式変換のルール、特定分野での注意点を追加します。エージェントはすでに Biopython/PyMOL の構文を把握しています。このスキルは、よくあるパラメーターやワークフローのミスを防ぎます。

使用方法

  • PDB/mmCIF の解析、RMSD の計算、ポケットの検出、形式の変換を行う場合に有効化します
  • ラマチャンドランプロット、接触マップ、B 因子解析、DSSP 割り当てを行う場合に有効化します
  • 下流のドッキングに向けて構造を準備する場合(PDBQT エクスポート)に有効化します

主な概念

SMCRA 階層: Structure → Model → Chain → Residue → Atom。常に適切なレベルで反復処理してください。NMR ファイルには複数のモデルがあります。

Altloc: 空白以外のコード('A'、'B')で示される代替コンフォメーションです。幾何計算を行う前に、1 つに絞り込んでください。

fpocket の出力: 入力ファイルの隣ではなく、現在の作業ディレクトリに <basename>_out/ を書き込みます。ポケットはドラッガビリティスコア(0~1)順にランク付けされます。

判断ロジック

ツールの選択
タスクツール主な考慮事項
PDB/mmCIF の解析Biopython PDBParser/MMCIFParser常に QUIET=True を渡します
RMSD の重ね合わせBio.PDB.Superimposer同じ長さの 1 対 1 対応する原子リストが必要です
結合ポケットの検出fpocket CLIクリーンな PDB(altloc と不要な HETATM を含まないもの)が必要です
ポケットの可視化PyMOL(ヘッドレスでは -cq)ポケット選択には byres all within 5 of organic を使用します
接触解析Bio.PDB.NeighborSearchデフォルトのカットオフは 4.0 Å。原子ペアを返します
二次構造Biopython 経由の DSSP新しいインストールではバイナリ名は mkdssp です
形式:PDB→mmCIFBio.PDB.MMCIFIO座標の損失はありません
形式:PDB→PDBQTobabel -O out.pdbqt -xr先に水素を追加するには -xh を追加します
ラマチャンドランPPBuilder → get_phi_psi_list()末端は None を返すため、確認が必要です
RMSD の種類の選択
シナリオ使用する原子備考
主鎖の比較Cα のみフォールド類似性の標準です
ループの柔軟性主鎖すべて(N、Cα、C、O)局所的な偏差を捉えます
結合部位の比較リガンドから 5 Å 以内の全原子先に残基を選択する必要があります
配列が同一全原子同じ長さの鎖にのみ有効です

重要なパラメーター

パラメーター値変更する場合
NeighborSearch のカットオフ4.0 Å水素結合では 3.5、疎水性相互作用では 5.0
Superimposer の原子Cα全原子を使うのは配列が同一の場合のみ
fpocket -m(最小アルファ球数)35(デフォルト)小さく浅いポケットでは 15 に下げます
DSSP バイナリ名mkdssp古いインストールでは dssp を使用します
obabel -xr フラグ受容体モード柔軟なリガンドの PDBQT では省略します
PPBuilder と CaPPBuilder の比較PPBuilderCaPPBuilder は Cα のみのトレースに限って使用します

よくある間違い

  • 誤り: PDB 内のモデルは 1 つだけだと思い込む → 正解: 必ず structure[0] を使うか、モデルを反復処理します → 理由: NMR アンサンブルには多数のモデルがあり、そのまま反復処理すると想定外の原子に遭遇します

  • 誤り: ジオメトリ計算で altloc を無視する → 正解: atom.get_altloc() in ('', 'A') でフィルタリングします → 理由: 重複した原子により、RMSD と二面角の計算が不正確になります

  • 誤り: 主鎖を対象としているのに、全原子の RMSD を計算する → 正解: フォールドを比較する場合は Cα に限定します → 理由: 側鎖によって RMSD が増大し、配列が完全には一致しない場合に対応付けが崩れます

  • 誤り: Superimposer に長さの異なる原子リストを渡す → 正解: 残基番号で対応付けし、同じ長さの並行リストを作成します → 理由: set_atoms() では厳密な 1 対 1 の対応が必要です

  • 誤り: PDBQT にエクスポートする前に水素を追加しない → 正解: obabel -xh を実行してから -xr -O receptor.pdbqt を実行します → 理由: 結晶構造の PDB には水素原子が含まれていません。ドッキングのスコアリングには水素原子が必要です

  • 誤り: 主鎖の計算に HETATM や水を含める → 正解: residue.id[0] == ' ' でフィルタリングします → 理由: ヘテロ原子と水によって、ファイ・プサイ角や主鎖 RMSD の計算が不正確になります

  • 誤り: None のファイ・プサイ角に math.degrees() を使う → 正解: if phi is not None and psi is not None で確認します → 理由: 鎖の末端では None が返され、TypeError により処理がクラッシュします

  • 誤り: dssp というデフォルトのバイナリ名を想定する → 正解: DSSP() に dssp='mkdssp' を渡します → 理由: 新しいバージョンのインストールでは mkdssp しか提供されない場合があります

  • 誤り: fpocket の出力が入力ファイルの隣に生成されると思い込む → 正解: 対象ディレクトリから実行するか、実行後に出力を移動します → 理由: fpocket は入力ファイルの場所ではなく、現在の作業ディレクトリに出力します

  • 誤り: パーサーで QUIET=True を指定し忘れる → 正解: PDBParser(QUIET=True) を使います → 理由: 致命的ではない警告が標準出力に大量に表示され、実際のエラーが見えにくくなります

回答形式

  • ユーザーが必要とするコマンドまたはコードを最初に提示し、その後で説明します
  • 次の構成にします:入力の確認 → 動作するコード → 主なパラメーターの説明 → 注意点
  • 各タスクにつき、完全に動作する例を 1 つ示します。すべての代替案は示しません
  • コードコメントは必要最小限にして、実用的な内容にします
  • 目安:コード 50~100 行と、それを補足する簡潔な説明

コメント