tooluniverse-protein-structure-retrieval
tooluniverse-protein-structure-retrieval について
タンパク質構造を検索し、メタデータと品質を評価する ToolUniverse スキルです。実験構造と予測モデルの区別、提供元間の比較を支援し、構造化されたプロファイルレポートを作成します。
主な機能
- 01タンパク質と生物種の特定
- 02実験構造と予測モデルの検索
- 03分解能と信頼度の評価
- 04リガンドと結合部位の取得
- 05複数提供元を横断した構造検索
- 06構造プロファイルレポートの作成
活用シーン
- 01タンパク質アクセッションから構造を検索
- 02創薬作業前にモデルを評価
- 03利用可能な構造とリガンドを比較
MCP 対応
ToolUniverse のツールでタンパク質構造レコード、モデル、注釈、リガンド、品質データを取得します。入力にはツールの利用方法が記載されていますが、MCP サーバーの設定方法は示されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-protein-structure-retrievalインストール後、Claude Code で/tooluniverse-protein-structure-retrievalを入力して読み込まれたか確認します。
同梱ファイルCHECKLIST.mdexamples.md
詳細
タンパク質構造データの取得
曖昧さを解消し、品質を評価して、包括的なメタデータとともにタンパク質構造を取得します。
重要:ツール呼び出しでは、必ず英語の用語を使用してください。回答はユーザーの言語で行ってください。
推測せずに調べる:PDB ID、分解能、利用可能性を決して推測しないでください。必ず RCSB/PDBe と AlphaFold に問い合わせて確認してください。
ドメインに関する推論
すべての構造が同等とは限りません。X線結晶構造で 2 A 未満なら、創薬に適した高品質です。クライオ電子顕微鏡で 3~4 A なら、フォールドの確認には適していますが、側鎖の確認には適しません。AlphaFold はよく折りたたまれたドメインには非常に優れていますが、無秩序領域の信頼性は低くなります。結論を導く前に、必ず pLDDT(AlphaFold)または分解能(実験構造)を確認してください。
ワークフロー
Phase 0: Clarify (if needed) → Phase 1: Disambiguate Protein → Phase 2: Retrieve Structures → Phase 3: Report
フェーズ 0:確認(必要な場合)
次の場合にのみ質問してください:タンパク質名が曖昧な場合(例:「キナーゼ」)、生物種が指定されていない場合、実験構造と AlphaFold のどちらが必要か不明な場合。 次の場合は省略してください:特定の PDB ID、UniProt アクセッション、タンパク質と生物種が明確な場合。
フェーズ 1:タンパク質の特定
# By PDB ID: direct retrieval
# By UniProt: get AlphaFold + search experimental structures
af_structure = tu.tools.alphafold_get_prediction(uniprot_id=uniprot_id)
# By protein name: search
result = tu.tools.PDBeSearch_search_structures(query=protein_name)
同定チェックリスト
- タンパク質名/遺伝子が特定され、生物種が確認されている
- UniProt アクセッション(利用可能な場合)、アイソフォーム/変異体が指定されている(該当する場合)
フェーズ 2:データ取得(内部処理)
ユーザーには伝えずに取得してください。処理の経過を説明しないでください。
pdb_id = "4INS"
# Search, metadata, quality, ligands, similar structures
result = tu.tools.PDBeSearch_search_structures(query=name)
metadata = tu.tools.get_protein_metadata_by_pdb_id(pdb_id=pdb_id)
exp = tu.tools.RCSBData_get_entry(pdb_id=pdb_id)
quality = tu.tools.PDBeValidation_get_quality_scores(pdb_id=pdb_id)
ligands = tu.tools.PDBe_get_structure_ligands(pdb_id=pdb_id) # data.ligands[]
similar = tu.tools.PDB_search_similar_structures(query=pdb_id, search_type="structure") # data.results[] with rank, score
# By UniProt accession: all PDB entries, and ligand-binding residues across entries
entries = tu.tools.PDBeSIFTS_get_all_structures(uniprot_accession=uniprot_id) # data.pdb_entries[]
sites = tu.tools.PDBe_KB_get_ligand_sites(uniprot_accession=uniprot_id) # data.ligands[]
# PDBe additional data
summary = tu.tools.pdbe_get_entry_summary(pdb_id=pdb_id)
molecules = tu.tools.pdbe_get_entry_molecules(pdb_id=pdb_id)
# AlphaFold (when no experimental structure, or for comparison)
af = tu.tools.alphafold_get_prediction(uniprot_id=uniprot_id)
フォールバックの順序
| 優先 | フォールバック |
|---|---|
| RCSB 検索 | PDBe 検索 |
| get_protein_metadata | pdbe_get_entry_summary |
| 実験構造 | AlphaFold 予測 |
| get_protein_ligands | PDBe_get_structure_ligands(PDB ID ごと)または PDBe_KB_get_ligand_sites(UniProt アクセッションごと) |
| 使用可能な AlphaFold モデルがない場合(マルチドメインタンパク質、特定の範囲で pLDDT が低い場合) | SwissModel_get_models を該当する残基 range でフィルタリングします。このリポジトリにはドメインごとの相同性モデルが含まれており、AlphaFold の全長モデルでは十分に解決できない場合があります |
SWISS-MODEL リポジトリ(ホモロジーモデル+再インデックスされた実験構造)
SwissModel_get_summary(uniprot_id=...) を使うと、「ホモロジーモデルが存在するか、品質はどの程度か」を一度の呼び出しで確認できます。対象アクセッションについて SWISS-MODEL が提供するすべてのエントリーから、カバレッジが最も高いエントリーが返されます。重要:返される「最良」のエントリーは、UniProt の残基範囲に合わせて再インデックスされた実験的 PDB 構造の場合があります(ライブで確認済み:EGFR/P00533 では、get_summary の best_model はホモロジーモデルではなく、X-RAY DIFFRACTION エントリーでした)。「最良モデル」が「計算によるホモロジーモデル」を意味すると決めつけず、best_model.method を確認してください。
計算によるホモロジーモデルのみを取得するには、SwissModel_get_models(uniprot_id=..., provider="swissmodel") を呼び出してください。provider="pdb" を指定すると、代わりに再インデックスされた実験的エントリーのみが取得され、provider を省略すると両方が返されます。ほかのフィルターには range(残基範囲。特定の領域で AlphaFold の信頼度が低い大型のマルチドメインタンパク質で便利です)と template(特定の PDB テンプレート ID)があります。
SwissModel_download_pdb(uniprot_id=..., provider=...) は、下流のドッキングや可視化に使える実際の ATOM/HETATM 座標テキスト(URL だけではありません)を取得します。get_models と同じフィルターを使用できます。SwissModel_get_models_batch(uniprot_ids=[...]) は、最大 250 個のアクセッションを一度に解決します。遺伝子リスト全体でモデルの利用可否を確認し、代わりに AlphaFold/ESMFold が必要なタンパク質を判断する場合に便利です。
品質指標に関する注意(ライブで確認済み):テストした実際のホモロジーモデルエントリー(EGFR の SWISS-MODEL モデル 2 件)では、いずれも qmean_global/qmean_z_score が null でした。QMEAN は存在しないことがよくあり、常に信頼できる指標ではありません。より一貫して値が入力されている品質の手がかりとして、coverage(モデルが対象とする UniProt 配列の割合)、template(モデルの作成元となった PDB 構造)、method を使用してください。QMEAN は必須の確認項目ではなく、値がある場合の追加情報として扱ってください。
SWISS-MODEL と AlphaFold の使い分け:AlphaFold(上記)は、UniProt でレビュー済みのタンパク質に対するデフォルトの単一モデル参照です。次の場合は、特に SWISS-MODEL を利用してください。(a)異なるテンプレートから作成された複数の代替モデルを比較する必要がある場合、(b)大型タンパク質のある領域で AlphaFold の信頼度が低く、その領域をより良くカバーするテンプレートによるドメイン特異的なホモロジーモデルのほうが有効な可能性がある場合、(c)多数のアクセッションを一度に確認し、AlphaFold を個別に N 回呼び出す代わりに一括検索したい場合。
3D-Beacons(すべての構造プロバイダーを横断するメタアグリゲーター)
どの構造ソースがUniProtアクセッションに対して最も多く、最良のカバレッジを持つかまだわからない場合は、ThreeDBeacons_get_structure_summary(accession=...) を最初に呼び出すのが最適です。このツールはPDBe、SWISS-MODEL、AlphaFold DB、AlphaFill、ModelArchiveを同時に検索し、by_provider の件数と by_category の内訳(EXPERIMENTALLY DETERMINED/TEMPLATE-BASED/AB-INITIO)を返します。実例(ライブで検証済み):EGFR/P00533 → total_structures: 426、by_provider: {"PDBe": 412, "SWISS-MODEL": 2, "AlphaFold DB": 6, "AlphaFill": 1, "ModelArchive": 5}。これにより、このタンパク質はすでに実験構造によって圧倒的に多くカバーされていること、またSWISS-MODELの2件(前述のフェーズ)は実際に利用可能な構造のごく一部であることがわかります。3D-BeaconsでPDBeの件数がはるかに多いと示された場合は、SWISS-MODEL独自の一覧だけで調査を終えないでください。
ThreeDBeacons_get_structures(accession=..., category=..., provider=..., max_results=...) は、件数だけでなく個々の構造/モデルのレコードを返します。別の場所で詳細を取得する前に、category または provider で絞り込んでください。ThreeDBeacons_get_annotations(accession=..., type=..., provider=...) は、残基レベルの注釈(例:type="DOMAIN"、type="BINDING")をタンパク質の3Dモデルに対応付けます。実例として、BRCA1/P38398に対する type="DOMAIN" のクエリは、実際のドメインと残基の対応関係を返します。一方、P04637に対する type="BINDING" のクエリでは、正当に注釈が0件(annotation_count: 0)となることがあります。ここで結果が空でも、呼び出しの失敗ではなく、集約されたソースに該当する注釈が存在しないことを意味します。
ワークフロー:UniProtアクセッションを調べる際は、PDBe/RCSB(フェーズ2)、AlphaFold、SWISS-MODELのいずれを詳しく調べるか決める前に、最初の全体把握のステップとして ThreeDBeacons_get_structure_summary を使用してください。
PDB-REDO(再精密化された実験構造)
PDB-REDOは、すべてのX線PDBエントリーを最新のソフトウェア/パラメーターで自動的に再精密化します。多くの場合、元の登録時の精密化品質が改善されます。PDB_REDO_get_structure_quality(pdb_id=...) は、再精密化構造の詳細な精密化指標(単位格子の軸、B因子、実空間/作業相関係数 CCFFIN/CCWFIN、分解能 DATARESH、完全性)を返します。実例(ライブで検証済み):PDB 4hjo(EGFR構造)→ DATARESH: 2.75、CCWFIN: 0.93、COMPLETED: 96.9。PDB_REDO_get_version_info(pdb_id=...) は、同じエントリーの再精密化の来歴/バージョン情報を返します。
使用する場合:下流の創薬判断に精度が重要な場合は、元のPDB登録時に記載された分解能/R因子よりも、PDB-REDOの再精密化指標を優先してください。再精密化によってR-freeが大きく変わることがあり、元の登録に含まれる軽微なモデルの誤りが修正される場合もあります。
フェーズ3:構造プロファイルのレポート
構造プロファイルレポートとして提示します。検索プロセスは表示しません。以下を含めてください。
- 検索の概要:クエリ、生物種、実験構造とAlphaFold構造の件数
- 最良の構造:PDB ID、UniProt、生物種、手法、分解能、日付、品質評価
- 実験の詳細:手法、分解能、R因子、R-free、空間群
- 構成:鎖、残基(カバレッジ%)、リガンド、水分子、金属
- 結合リガンド:リガンドID、名称、種類、結合部位
- 結合部位の詳細(創薬向け):位置、重要な残基、ドラッガビリティ
- 代替構造:分解能、手法、リガンドを含め、品質順に表示
- AlphaFold予測:UniProt、モデルバージョン、pLDDT信頼度分布、ユースケース
- 構造の比較:構造間の分解能、完全性、リガンド
- ダウンロードリンク:PDB/mmCIF/AlphaFold形式、データベースURL
品質評価
実験構造
| ティア | 基準 |
|---|---|
| 優秀 | X線 <1.5A、完全、R-free <0.22 |
| 高 | X線 <2.0A または Cryo-EM <3.0A |
| 良好 | X線 2.0-3.0A または Cryo-EM 3.0-4.0A |
| 中程度 | X線 >3.0A または NMR アンサンブル |
| 低 | >4.0A、不完全、または問題あり |
分解能のユースケース
<1.5A:原子レベルの詳細、水素結合の解析。1.5-2.0A:創薬設計。2.0-2.5A:構造ベースの設計。2.5-3.5A:全体的な構造。>3.5A:ドメイン配置のみ。
AlphaFold の信頼度(pLDDT)
90:非常に高く、実験構造に近い。70-90:バックボーンは良好。50-70:不確実/柔軟。<50:無秩序である可能性が高い。
エラー処理
| エラー | 対応 |
|---|---|
| "PDB ID not found" | 4文字形式を確認し、廃止されていないか確認します |
| "No structures" | AlphaFold を提案し、類似タンパク質を案内します |
| "Download failed" | 1回再試行し、代替リンクを提示します |
| "Resolution unavailable" | NMR/モデルの可能性が高いため、評価でその旨を記載します |
ツールリファレンス
RCSB PDB: PDBeSearch_search_structures(検索)、get_protein_metadata_by_pdb_id(基本情報)、RCSBData_get_entry(詳細)、PDBeValidation_get_quality_scores(品質)、PDBe_get_structure_ligands(エントリー内のリガンド)、PDBe_KB_get_ligand_sites(UniProt アクセッションに対応するリガンド結合残基)、PDBeSIFTS_get_all_structures(UniProt アクセッションに対応するすべての PDB エントリー)、PDB_search_similar_structures(類似構造)
PDBe: pdbe_get_entry_summary(概要)、pdbe_get_entry_molecules(エンティティ)、pdbe_get_entry_experiment(実験情報)、PDBe_KB_get_ligand_sites(ポケット)
AlphaFold: alphafold_get_prediction(予測を取得)、alphafold_get_summary(検索)
SWISS-MODEL: SwissModel_get_summary(利用可能な最良のモデルを1回の呼び出しで取得)、SwissModel_get_models(すべてのモデルを一覧表示。range/provider/template でフィルタリング可能)、SwissModel_download_pdb(座標データのテキストを取得)、SwissModel_get_models_batch(1回の呼び出しで最大250個の UniProt アクセッションを処理)
3D-Beacons: ThreeDBeacons_get_structure_summary(プロバイダー横断の件数。最初の呼び出しに最適)、ThreeDBeacons_get_structures(個々の構造/モデルのレコード。category/provider でフィルタリング可能)、ThreeDBeacons_get_annotations(3D モデルに対応付けられた、残基レベルのドメイン/結合アノテーション)
PDB-REDO: PDB_REDO_get_structure_quality(再精密化された X線指標)、PDB_REDO_get_version_info(再精密化の来歴)