name: alphafold description: > 使用AlphaFold2结构预测验证蛋白质设计。在以下情况使用此技能: (1) 验证设计的序列是否正确折叠, (2) 预测结合物-靶标复合物结构, (3) 计算置信度指标(pLDDT、pTM、ipTM), (4) 设计的自洽性验证, (5) 使用AlphaFold-Multimer进行多链复合物预测。
对于更快的单链预测,请使用esm。 对于QC阈值,请使用protein-qc。 license: MIT category: design-tools tags: [structure-prediction, validation, reference] biomodals_script: modal_alphafold.py
AlphaFold2 结构验证
先决条件
| 要求 | 最低 | 推荐 |
|---|---|---|
| Python | 3.8+ | 3.10 |
| CUDA | 11.0+ | 12.0+ |
| GPU 显存 | 32GB | 40GB (A100) |
| 内存 | 32GB | 64GB |
| 磁盘空间 | 100GB | 500GB (用于数据库) |
如何运行
第一次使用? 请参阅 安装指南 来设置 Modal 和 biomodals。
选项 1:ColabFold(推荐用于多聚体)
cd biomodals
modal run modal_colabfold.py \
--input-faa sequences.fasta \
--out-dir output/
GPU: A100 (40GB) | 超时: 默认 3600秒
选项 2:本地安装
git clone https://github.com/deepmind/alphafold.git
cd alphafold
python run_alphafold.py \
--fasta_paths=query.fasta \
--output_dir=output/ \
--model_preset=monomer \
--max_template_date=2026-01-01
选项 3:ESMFold(快速单链预测)
modal run modal_esmfold.py \
--sequence "MKTAYIAKQRQISFVK..."
关键参数
| 参数 | 默认值 | 选项 | 描述 |
|---|---|---|---|
--model_preset |
monomer | monomer/multimer | 模型类型 |
--num_recycle |
3 | 1-20 | 循环迭代次数 |
--max_template_date |
- | YYYY-MM-DD | 模板截止日期 |
--use_templates |
True | True/False | 是否使用模板搜索 |
输出格式
output/
├── ranked_0.pdb # 最佳模型
├── ranked_1.pdb # 次佳模型
├── ranking_debug.json # 置信度分数
├── result_model_1.pkl # 完整结果
├── msas/ # MSA 文件
└── features.pkl # 输入特征
提取指标
import pickle
with open('result_model_1.pkl', 'rb') as f:
result = pickle.load(f)
plddt = result['plddt']
ptm = result['ptm']
iptm = result.get('iptm', None) # 仅多聚体
pae = result['predicted_aligned_error']
示例输出
成功运行
$ python run_alphafold.py --fasta_paths complex.fasta --model_preset multimer
[INFO] 运行 MSA 搜索...
[INFO] 运行模型 1/5...
[INFO] 运行模型 5/5...
[INFO] 结构松弛...
结果:
ranked_0.pdb:
pLDDT: 87.3 (平均值)
pTM: 0.78
ipTM: 0.62
PAE (界面): 8.5
已保存至 output/
良好输出的特征:
- pLDDT: > 85 (平均值,0-100 标度) 或 > 0.85 (归一化)
- pTM: > 0.70
- ipTM: > 0.50 (适用于复合物)
- PAE_interface: < 10
决策树
我应该使用 AlphaFold 吗?
│
├─ 你要预测什么?
│ ├─ 单个蛋白质 → ESMFold (更快)
│ ├─ 蛋白质-蛋白质复合物 → AlphaFold/ColabFold ✓
│ ├─ 蛋白质 + 配体 → Chai 或 Boltz
│ └─ 批量序列 → ColabFold ✓
│
├─ 你需要什么?
│ ├─ 最高精度 → AlphaFold/ColabFold ✓
│ ├─ 快速筛选 → ESMFold
│ └─ 无需 MSA 的预测 → Chai 或 ESMFold
│
└─ 选择哪个 AF2 选项?
├─ 本地安装 → 完全控制,设置较慢
├─ ColabFold → 更简单,MSA 服务器
└─ Modal → 推荐用于批量处理
典型性能
| 任务规模 | 时间 (A100) | 成本 (Modal) | 备注 |
|---|---|---|---|
| 100 个复合物 | 1-2小时 | ~$8 | 使用 MSA 服务器 |
| 500 个复合物 | 5-10小时 | ~$40 | 标准任务 |
| 1000 个复合物 | 10-20小时 | ~$80 | 大型任务 |
每个复合物: 使用 MSA 服务器约 30-60 秒。
验证
find output -name "ranked_0.pdb" | wc -l # 应与输入数量匹配
故障排除
低 pLDDT 区域: 可能表明无序或设计不佳 低 ipTM: 界面置信度不高,检查热点 高 PAE 非对角线: 链之间可能不相互作用 内存不足错误: 改用带 MSA 服务器的 ColabFold
错误解释
| 错误 | 原因 | 修复方法 |
|---|---|---|
RuntimeError: CUDA out of memory |
序列过长 | 使用 A100 或拆分预测 |
KeyError: 'iptm' |
对复合物运行单体模型 | 使用多聚体预设 |
FileNotFoundError: database |
缺少 MSA 数据库 | 使用 ColabFold MSA 服务器 |
TimeoutError |
MSA 搜索过慢 | 减少 num_recycles |
下一步: 使用 protein-qc 进行筛选和排序。