alphafold-database
AlphaFoldデータベースに収録された2億件以上のAI予測タンパク質構造にアクセスできるスキルです。UniProt IDによる構造の検索・取得、PDB/mmCIFファイルのダウンロード、信頼性指標(pLDDT、PAE)の解析が可能で、創薬研究や構造生物学に活用できます。
description の原文を見る
Access AlphaFold's 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
SKILL.md 本文
AlphaFold Database
Overview
AlphaFold DB は DeepMind と EMBL-EBI により保守される、200 百万以上のタンパク質に関する AI 予測 3D 構造の公開リポジトリです。信頼度メトリクス付きの構造予測にアクセスでき、座標ファイルをダウンロードでき、大規模データセットを取得でき、計算ワークフローに予測を統合できます。
このスキルを使用する場合
このスキルは以下のようなシナリオで AI 予測タンパク質構造を扱う場合に使用すべきです:
- UniProt ID またはタンパク質名によるタンパク質構造予測の取得
- 構造解析用の PDB/mmCIF 座標ファイルのダウンロード
- 信頼度メトリクス (pLDDT、PAE) の解析による信頼性の評価
- Google Cloud Platform 経由での大規模プロテオーム データセットへのアクセス
- 予測構造と実験データの比較
- 構造ベースの創薬またはタンパク質工学の実施
- 実験構造が存在しないタンパク質の構造モデル構築
- AlphaFold 予測を計算パイプラインに統合
主な機能
1. 予測の検索と取得
Biopython の使用 (推奨):
Biopython ライブラリは AlphaFold 構造を取得するための最もシンプルなインターフェースを提供します:
from Bio.PDB import alphafold_db
# UniProt アクセッション番号のすべての予測を取得
predictions = list(alphafold_db.get_predictions("P00520"))
# 構造ファイルをダウンロード (mmCIF 形式)
for prediction in predictions:
cif_file = alphafold_db.download_cif_for(prediction, directory="./structures")
print(f"Downloaded: {cif_file}")
# Structure オブジェクトを直接取得
from Bio.PDB import MMCIFParser
structures = list(alphafold_db.get_structural_models_for("P00520"))
API への直接アクセス:
REST エンドポイントを使用して予測をクエリできます:
import requests
# UniProt アクセッション番号の予測メタデータを取得
uniprot_id = "P00520"
api_url = f"https://alphafold.ebi.ac.uk/api/prediction/{uniprot_id}"
response = requests.get(api_url)
prediction_data = response.json()
# AlphaFold ID を抽出
alphafold_id = prediction_data[0]['entryId']
print(f"AlphaFold ID: {alphafold_id}")
UniProt を使用したアクセッション番号の検索:
タンパク質アクセッション番号を最初に見つけるために UniProt を検索します:
import urllib.parse, urllib.request
def get_uniprot_ids(query, query_type='PDB_ID'):
"""UniProt をクエリしてアクセッション ID を取得"""
url = 'https://www.uniprot.org/uploadlists/'
params = {
'from': query_type,
'to': 'ACC',
'format': 'txt',
'query': query
}
data = urllib.parse.urlencode(params).encode('ascii')
with urllib.request.urlopen(urllib.request.Request(url, data)) as response:
return response.read().decode('utf-8').splitlines()
# 例: タンパク質名の UniProt ID を検索
protein_ids = get_uniprot_ids("hemoglobin", query_type="GENE_NAME")
2. 構造ファイルのダウンロード
AlphaFold は各予測に複数のファイル形式を提供します:
利用可能なファイルタイプ:
- Model coordinates (
model_v4.cif): mmCIF/PDBx 形式の原子座標 - Confidence scores (
confidence_v4.json): 残基ごとの pLDDT スコア (0-100) - Predicted Aligned Error (
predicted_aligned_error_v4.json): 残基ペア信頼度の PAE マトリックス
ダウンロード URL:
import requests
alphafold_id = "AF-P00520-F1"
version = "v4"
# モデル座標 (mmCIF)
model_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-model_{version}.cif"
response = requests.get(model_url)
with open(f"{alphafold_id}.cif", "w") as f:
f.write(response.text)
# 信頼度スコア (JSON)
confidence_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-confidence_{version}.json"
response = requests.get(confidence_url)
confidence_data = response.json()
# Predicted Aligned Error (JSON)
pae_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-predicted_aligned_error_{version}.json"
response = requests.get(pae_url)
pae_data = response.json()
PDB 形式 (代替方法):
# mmCIF の代わりに PDB 形式でダウンロード
pdb_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-model_{version}.pdb"
response = requests.get(pdb_url)
with open(f"{alphafold_id}.pdb", "wb") as f:
f.write(response.content)
3. 信頼度メトリクスの処理
AlphaFold 予測には解釈に不可欠な信頼度推定値が含まれています:
pLDDT (残基ごとの信頼度):
import json
import requests
# 信頼度スコアを読み込む
alphafold_id = "AF-P00520-F1"
confidence_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-confidence_v4.json"
confidence = requests.get(confidence_url).json()
# pLDDT スコアを抽出
plddt_scores = confidence['confidenceScore']
# 信頼度レベルの解釈
# pLDDT > 90: 非常に高い信頼度
# pLDDT 70-90: 高い信頼度
# pLDDT 50-70: 低い信頼度
# pLDDT < 50: 非常に低い信頼度
high_confidence_residues = [i for i, score in enumerate(plddt_scores) if score > 90]
print(f"High confidence residues: {len(high_confidence_residues)}/{len(plddt_scores)}")
PAE (Predicted Aligned Error):
PAE は相対的なドメイン位置の信頼度を示します:
import numpy as np
import matplotlib.pyplot as plt
# PAE マトリックスを読み込む
pae_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-predicted_aligned_error_v4.json"
pae = requests.get(pae_url).json()
# PAE マトリックスを可視化
pae_matrix = np.array(pae['distance'])
plt.figure(figsize=(10, 8))
plt.imshow(pae_matrix, cmap='viridis_r', vmin=0, vmax=30)
plt.colorbar(label='PAE (Å)')
plt.title(f'Predicted Aligned Error: {alphafold_id}')
plt.xlabel('Residue')
plt.ylabel('Residue')
plt.savefig(f'{alphafold_id}_pae.png', dpi=300, bbox_inches='tight')
# 低い PAE 値 (<5 Å) は信頼度の高い相対位置を示唆
# 高い PAE 値 (>15 Å) は不確実なドメイン配置を示唆
4. Google Cloud 経由での大規模データアクセス
大規模解析の場合、Google Cloud データセットを使用します:
Google Cloud Storage:
# gsutil をインストール
uv pip install gsutil
# 利用可能なデータをリスト表示
gsutil ls gs://public-datasets-deepmind-alphafold-v4/
# 完全なプロテオームをダウンロード (分類学 ID 別)
gsutil -m cp gs://public-datasets-deepmind-alphafold-v4/proteomes/proteome-tax_id-9606-*.tar .
# 特定のファイルをダウンロード
gsutil cp gs://public-datasets-deepmind-alphafold-v4/accession_ids.csv .
BigQuery メタデータアクセス:
from google.cloud import bigquery
# クライアントを初期化
client = bigquery.Client()
# メタデータをクエリ
query = """
SELECT
entryId,
uniprotAccession,
organismScientificName,
globalMetricValue,
fractionPlddtVeryHigh
FROM `bigquery-public-data.deepmind_alphafold.metadata`
WHERE organismScientificName = 'Homo sapiens'
AND fractionPlddtVeryHigh > 0.8
LIMIT 100
"""
results = client.query(query).to_dataframe()
print(f"Found {len(results)} high-confidence human proteins")
種別によるダウンロード:
import subprocess
def download_proteome(taxonomy_id, output_dir="./proteomes"):
"""種のすべての AlphaFold 予測をダウンロード"""
pattern = f"gs://public-datasets-deepmind-alphafold-v4/proteomes/proteome-tax_id-{taxonomy_id}-*_v4.tar"
cmd = f"gsutil -m cp {pattern} {output_dir}/"
subprocess.run(cmd, shell=True, check=True)
# 大腸菌プロテオームをダウンロード (分類学 ID: 83333)
download_proteome(83333)
# ヒトプロテオームをダウンロード (分類学 ID: 9606)
download_proteome(9606)
5. 構造の解析と分析
ダウンロードした AlphaFold 構造を BioPython で処理します:
from Bio.PDB import MMCIFParser, PDBIO
import numpy as np
# mmCIF ファイルをパース
parser = MMCIFParser(QUIET=True)
structure = parser.get_structure("protein", "AF-P00520-F1-model_v4.cif")
# 座標を抽出
coords = []
for model in structure:
for chain in model:
for residue in chain:
if 'CA' in residue: # アルファ炭素のみ
coords.append(residue['CA'].get_coord())
coords = np.array(coords)
print(f"Structure has {len(coords)} residues")
# 距離を計算
from scipy.spatial.distance import pdist, squareform
distance_matrix = squareform(pdist(coords))
# 接触を特定 (< 8 Å)
contacts = np.where((distance_matrix > 0) & (distance_matrix < 8))
print(f"Number of contacts: {len(contacts[0]) // 2}")
B-factor (pLDDT 値) を抽出:
AlphaFold は pLDDT スコアを B-factor 列に格納します:
from Bio.PDB import MMCIFParser
parser = MMCIFParser(QUIET=True)
structure = parser.get_structure("protein", "AF-P00520-F1-model_v4.cif")
# B-factor から pLDDT を抽出
plddt_scores = []
for model in structure:
for chain in model:
for residue in chain:
if 'CA' in residue:
plddt_scores.append(residue['CA'].get_bfactor())
# 高信頼度領域を特定
high_conf_regions = [(i, score) for i, score in enumerate(plddt_scores, 1) if score > 90]
print(f"High confidence residues: {len(high_conf_regions)}")
6. 複数タンパク質のバッチ処理
複数の予測を効率的に処理します:
from Bio.PDB import alphafold_db
import pandas as pd
uniprot_ids = ["P00520", "P12931", "P04637"] # 複数のタンパク質
results = []
for uniprot_id in uniprot_ids:
try:
# 予測を取得
predictions = list(alphafold_db.get_predictions(uniprot_id))
if predictions:
pred = predictions[0]
# 構造をダウンロード
cif_file = alphafold_db.download_cif_for(pred, directory="./batch_structures")
# 信頼度データを取得
alphafold_id = pred['entryId']
conf_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-confidence_v4.json"
conf_data = requests.get(conf_url).json()
# 統計量を計算
plddt_scores = conf_data['confidenceScore']
avg_plddt = np.mean(plddt_scores)
high_conf_fraction = sum(1 for s in plddt_scores if s > 90) / len(plddt_scores)
results.append({
'uniprot_id': uniprot_id,
'alphafold_id': alphafold_id,
'avg_plddt': avg_plddt,
'high_conf_fraction': high_conf_fraction,
'length': len(plddt_scores)
})
except Exception as e:
print(f"Error processing {uniprot_id}: {e}")
# サマリー DataFrame を作成
df = pd.DataFrame(results)
print(df)
インストールとセットアップ
Python ライブラリ
# 構造アクセス用に Biopython をインストール
uv pip install biopython
# API アクセス用に requests をインストール
uv pip install requests
# 可視化と分析用
uv pip install numpy matplotlib pandas scipy
# Google Cloud アクセス用 (オプション)
uv pip install google-cloud-bigquery gsutil
3D-Beacons API の代替
AlphaFold は 3D-Beacons フェデレーション API でもアクセスできます:
import requests
# 3D-Beacons 経由でクエリ
uniprot_id = "P00520"
url = f"https://www.ebi.ac.uk/pdbe/pdbe-kb/3dbeacons/api/uniprot/summary/{uniprot_id}.json"
response = requests.get(url)
data = response.json()
# AlphaFold 構造をフィルタリング
af_structures = [s for s in data['structures'] if s['provider'] == 'AlphaFold DB']
一般的な用途
構造プロテオミクス
- 完全なプロテオーム予測をダウンロードして解析
- タンパク質全体にわたる高信頼度構造領域を特定
- 予測構造と実験データを比較
- タンパク質ファミリーの構造モデルを構築
創薬
- ドッキング研究用の標的タンパク質構造を取得
- 結合部位の配置を解析
- 予測構造内のドラッグ可能なポケットを特定
- ホモログ間で構造を比較
タンパク質工学
- pLDDT を使用して安定/不安定領域を特定
- 高信頼度領域での変異設計
- PAE を使用してドメイン構造を解析
- タンパク質変異体と変異をモデル化
進化研究
- 種を超えたオルソログ構造を比較
- 構造的特徴の保存を解析
- ドメイン進化パターンを研究
- 機能的に重要な領域を特定
重要な概念
UniProt アクセッション: タンパク質の主要識別子 (例: "P00520")。AlphaFold DB のクエリに必要です。
AlphaFold ID: 内部識別子形式: AF-[UniProt accession]-F[fragment number] (例: "AF-P00520-F1")。
pLDDT (predicted Local Distance Difference Test): 残基ごとの信頼度メトリクス (0-100)。値が高いほど予測の信頼度が高いことを示します。
PAE (Predicted Aligned Error): 残基ペア間の相対位置の信頼度を示すマトリックス。低い値 (<5 Å) は信頼度の高い相対位置を示唆します。
データベースバージョン: 現在のバージョンは v4 です。ファイル URL にはバージョンサフィックスが含まれます (例: model_v4.cif)。
フラグメント番号: 大きなタンパク質はフラグメントに分割される場合があります。フラグメント番号は AlphaFold ID に表示されます (例: F1、F2)。
信頼度解釈ガイドライン
pLDDT 閾値:
- >90: 非常に高い信頼度 - 詳細な解析に適している
- 70-90: 高い信頼度 - 一般に信頼性の高いバックボーン構造
- 50-70: 低い信頼度 - 慎重に使用、柔軟な領域
- <50: 非常に低い信頼度 - おそらく無秩序またはそれほど信頼性なし
PAE ガイドライン:
- <5 Å: ドメインの相対位置を確信的に配置
- 5-10 Å: 配置の信頼度が中程度
- >15 Å: 相対位置が不確実、ドメインは可動的である可能性
資料
references/api_reference.md
以下をカバーする包括的な API ドキュメント:
- 完全な REST API エンドポイント仕様
- ファイル形式の詳細とデータスキーマ
- Google Cloud データセットの構造とアクセスパターン
- 高度なクエリ例とバッチ処理戦略
- レート制限、キャッシング、およびベストプラクティス
- 一般的な問題のトラブルシューティング
詳細な API 情報、大規模ダウンロード戦略、または大規模データセット処理時はこのリファレンスを参照してください。
重要な注意事項
データの使用と表記
- AlphaFold DB は CC-BY-4.0 ライセンスで自由に利用可能です
- 引用: Jumper et al. (2021) Nature および Varadi et al. (2022) Nucleic Acids Research
- 予測は計算モデルであり、実験構造ではありません
- ダウンローム解析の前に必ず信頼度メトリクスを評価してください
バージョン管理
- 現在のデータベースバージョン: v4 (2024-2025 現在)
- ファイル URL にはバージョンサフィックスが含まれます (例:
_v4.cif) - 定期的にデータベース更新を確認してください
- 古いバージョンは時間経過とともに廃止される場合があります
データ品質に関する考慮事項
- 高い pLDDT は機能的正確性を保証しません
- 低信頼度領域は生体内で無秩序である可能性があります
- PAE は相対的なドメイン信頼度を示し、絶対位置ではありません
- 予測はリガンド、翻訳後修飾、および補因子を含みません
- マルチチェーン複合体は予測されません (単一チェーンのみ)
パフォーマンスのヒント
- 単一タンパク質へのアクセスには Biopython を使用してください
- 大規模ダウンロードには Google Cloud を使用してください (個別ファイルより高速)
- ダウンロードしたファイルをローカルにキャッシュして重複ダウンロードを避けてください
- BigQuery 無料ティア: 月 1 TB の処理データ
- 大規模ダウンロードのネットワーク帯域幅を考慮してください
その他の資料
- AlphaFold DB ウェブサイト: https://alphafold.ebi.ac.uk/
- API ドキュメント: https://alphafold.ebi.ac.uk/api-docs
- Google Cloud データセット: https://cloud.google.com/blog/products/ai-machine-learning/alphafold-protein-structure-database
- 3D-Beacons API: https://www.ebi.ac.uk/pdbe/pdbe-kb/3dbeacons/
- AlphaFold 論文:
- Nature (2021): https://doi.org/10.1038/s41586-021-03819-2
- Nucleic Acids Research (2024): https://doi.org/10.1093/nar/gkad1011
- Biopython ドキュメント: https://biopython.org/docs/dev/api/Bio.PDB.alphafold_db.html
- GitHub リポジトリ: https://github.com/google-deepmind/alphafold
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。