alphafold-database について
alphafold-database は、AlphaFold DB のタンパク質構造予測を取得・分析するスキルです。構造生物学や計算研究向けに、個別検索、信頼度の評価、プロテオームの一括取得を扱います。
主な機能
- 01UniProt ID による予測検索
- 02mmCIF・PDB 構造のダウンロード
- 03pLDDT・PAE 指標の確認
- 04Google Cloud による一括データ取得
- 05BioPython による構造解析
活用シーン
- 01構造解析用タンパク質モデルの取得
- 02領域・ドメインの信頼度評価
- 03種別プロテオームデータの取得
- 04ドッキングやタンパク質工学用モデルの準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ leonchaox/ qinyan-academic-skills --skill alphafold-databaseインストール後、Claude Code で/alphafold-databaseを入力して読み込まれたか確認します。
同梱ファイルreferences/api_reference.md
詳細
AlphaFold Database
概要
AlphaFold DB は、DeepMind と EMBL-EBI が管理する、2 億以上のタンパク質について AI が予測した 3D タンパク質構造を収録する公開リポジトリです。信頼度指標付きの構造予測にアクセスし、座標ファイルをダウンロードし、一括データセットを取得して、予測結果を計算ワークフローに統合できます。
このスキルを使用する場面
次のような状況で AI が予測したタンパク質構造を扱う場合に、このスキルを使用してください。
- UniProt ID またはタンパク質名でタンパク質構造予測を取得する
- 構造解析用に PDB/mmCIF 座標ファイルをダウンロードする
- 予測の信頼性を評価するため、予測信頼度指標(pLDDT、PAE)を解析する
- Google Cloud Platform 経由でプロテオームの一括データセットにアクセスする
- 予測構造を実験データと比較する
- 構造ベースの創薬やタンパク質工学を実施する
- 実験構造がないタンパク質の構造モデルを構築する
- AlphaFold の予測結果を計算パイプラインに統合する
主な機能
1. 予測の検索と取得
Biopython を使用する場合(推奨):
Biopython ライブラリは、AlphaFold 構造を取得するための最も簡単なインターフェースを提供します。
from Bio.PDB import alphafold_db
# Get all predictions for a UniProt accession
predictions = list(alphafold_db.get_predictions("P00520"))
# Download structure file (mmCIF format)
for prediction in predictions:
cif_file = alphafold_db.download_cif_for(prediction, directory="./structures")
print(f"Downloaded: {cif_file}")
# Get Structure objects directly
from Bio.PDB import MMCIFParser
structures = list(alphafold_db.get_structural_models_for("P00520"))
API に直接アクセスする場合:
REST エンドポイントを使用して予測を照会します。
import requests
# Get prediction metadata for a UniProt accession
uniprot_id = "P00520"
api_url = f"https://alphafold.ebi.ac.uk/api/prediction/{uniprot_id}"
response = requests.get(api_url)
prediction_data = response.json()
# Extract 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'):
"""Query UniProt to get accession IDs"""
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()
# Example: Find UniProt IDs for a protein name
protein_ids = get_uniprot_ids("hemoglobin", query_type="GENE_NAME")
2. 構造ファイルのダウンロード
AlphaFold では、各予測について複数のファイル形式が提供されています。
利用可能なファイルの種類:
- モデル座標(
model_v4.cif):mmCIF/PDBx 形式の原子座標 - 信頼度スコア(
confidence_v4.json):残基ごとの pLDDT スコア(0~100) - 予測アラインメント誤差(
predicted_aligned_error_v4.json):残基ペアの信頼度を示す PAE 行列
ダウンロード URL:
import requests
alphafold_id = "AF-P00520-F1"
version = "v4"
# Model coordinates (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)
# Confidence scores (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 形式(代替):
# Download as PDB format instead of mmCIF
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
# Load confidence scores
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()
# Extract pLDDT scores
plddt_scores = confidence['confidenceScore']
# Interpret confidence levels
# pLDDT > 90: Very high confidence
# pLDDT 70-90: High confidence
# pLDDT 50-70: Low confidence
# pLDDT < 50: Very low confidence
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(予測アラインメント誤差):
PAE は、ドメイン間の相対位置に対する信頼度を示します。
import numpy as np
import matplotlib.pyplot as plt
# Load PAE matrix
pae_url = f"https://alphafold.ebi.ac.uk/files/{alphafold_id}-predicted_aligned_error_v4.json"
pae = requests.get(pae_url).json()
# Visualize PAE matrix
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')
# Low PAE values (<5 Å) indicate confident relative positioning
# High PAE values (>15 Å) suggest uncertain domain arrangements
4. Google Cloud 経由での一括データアクセス
大規模な解析には、Google Cloud のデータセットを使用します。
Google Cloud Storage:
# Install gsutil
uv pip install gsutil
# List available data
gsutil ls gs://public-datasets-deepmind-alphafold-v4/
# Download entire proteomes (by taxonomy ID)
gsutil -m cp gs://public-datasets-deepmind-alphafold-v4/proteomes/proteome-tax_id-9606-*.tar .
# Download specific files
gsutil cp gs://public-datasets-deepmind-alphafold-v4/accession_ids.csv .
BigQuery のメタデータへのアクセス:
from google.cloud import bigquery
# Initialize client
client = bigquery.Client()
# Query metadata
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")
生物種別にダウンロードする場合:
⚠️ セキュリティに関する注意:以下の例では、簡潔さを優先して
shell=Trueを使用しています。本番環境では、コマンドインジェクションの脆弱性を防ぐため、引数のリストを指定したsubprocess.run()の使用を推奨します。詳しくは Python subprocess security を参照してください。
import subprocess
import shlex
def download_proteome(taxonomy_id, output_dir="./proteomes"):
"""Download all AlphaFold predictions for a species"""
# Validate taxonomy_id is an integer to prevent injection
if not isinstance(taxonomy_id, int):
raise ValueError("taxonomy_id must be an integer")
pattern = f"gs://public-datasets-deepmind-alphafold-v4/proteomes/proteome-tax_id-{taxonomy_id}-*_v4.tar"
# Use list form instead of shell=True for security
subprocess.run(["gsutil", "-m", "cp", pattern, f"{output_dir}/"], check=True)
# Download E. coli proteome (tax ID: 83333)
download_proteome(83333)
# Download human proteome (tax ID: 9606)
download_proteome(9606)
5. 構造の解析と分析
BioPython を使用して、ダウンロードした AlphaFold 構造を扱います。
from Bio.PDB import MMCIFParser, PDBIO
import numpy as np
# Parse mmCIF file
parser = MMCIFParser(QUIET=True)
structure = parser.get_structure("protein", "AF-P00520-F1-model_v4.cif")
# Extract coordinates
coords = []
for model in structure:
for chain in model:
for residue in chain:
if 'CA' in residue: # Alpha carbons only
coords.append(residue['CA'].get_coord())
coords = np.array(coords)
print(f"Structure has {len(coords)} residues")
# Calculate distances
from scipy.spatial.distance import pdist, squareform
distance_matrix = squareform(pdist(coords))
# Identify contacts (< 8 Å)
contacts = np.where((distance_matrix > 0) & (distance_matrix < 8))
print(f"Number of contacts: {len(contacts[0]) // 2}")
B 因子(pLDDT 値)の抽出:
AlphaFold では、pLDDT スコアが B 因子列に格納されています。
from Bio.PDB import MMCIFParser
parser = MMCIFParser(QUIET=True)
structure = parser.get_structure("protein", "AF-P00520-F1-model_v4.cif")
# Extract pLDDT from B-factors
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())
# Identify high-confidence regions
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"] # Multiple proteins
results = []
for uniprot_id in uniprot_ids:
try:
# Get prediction
predictions = list(alphafold_db.get_predictions(uniprot_id))
if predictions:
pred = predictions[0]
# Download structure
cif_file = alphafold_db.download_cif_for(pred, directory="./batch_structures")
# Get confidence data
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()
# Calculate statistics
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}")
# Create summary DataFrame
df = pd.DataFrame(results)
print(df)
インストールとセットアップ
Python ライブラリ
# Install Biopython for structure access
uv pip install biopython
# Install requests for API access
uv pip install requests
# For visualization and analysis
uv pip install numpy matplotlib pandas scipy
# For Google Cloud access (optional)
uv pip install google-cloud-bigquery gsutil
3D-Beacons API の代替手段
AlphaFold には、3D-Beacons の連合 API 経由でもアクセスできます。
import requests
# Query via 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()
# Filter for AlphaFold structures
af_structures = [s for s in data['structures'] if s['provider'] == 'AlphaFold DB']
一般的なユースケース
構造プロテオミクス
- 解析用にプロテオーム全体の予測をダウンロードする
- タンパク質間で信頼度の高い構造領域を特定する
- 予測構造を実験データと比較する
- タンパク質ファミリーの構造モデルを構築する
創薬
- ドッキング研究用に標的タンパク質構造を取得する
- 結合部位のコンフォメーションを解析する
- 予測構造内で創薬可能なポケットを特定する
- 相同タンパク質間で構造を比較する
タンパク質工学
- pLDDT を使用して安定領域と不安定領域を特定する
- 信頼度の高い領域に変異を設計する
- PAE を使用してドメイン構成を解析する
- タンパク質のバリアントや変異をモデル化する
進化研究
- 生物種間でオーソログの構造を比較する
- 構造的特徴の保存性を解析する
- ドメインの進化パターンを研究する
- 機能上重要な領域を特定する
主要な概念
UniProt アクセッション: タンパク質の主要な識別子(例: "P00520")。AlphaFold DB への問い合わせに必須です。
AlphaFold ID: 内部識別子の形式: AF-[UniProt アクセッション]-F[フラグメント番号](例: "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