ColabFold(Mirdita 等,Nature Methods 2022)解决了 AlphaFold2 最大的实用障碍:MSA 搜索太慢、数据库太大。它用 MMseqs2 替代 HHblits/Jackhmmer,把搜索时间从数小时压缩到数分钟,且通过远程服务器提供,用户无需下载任何数据库。
核心改进
| 官方 AlphaFold2 | ColabFold | |
|---|---|---|
| MSA 搜索工具 | Jackhmmer + HHblits | MMseqs2 |
| 搜索耗时 | 数十分钟~数小时 | 数分钟 |
| 数据库 | 需本地下载 > 2 TB | 远程服务器,无需下载 |
| 运行环境 | 需自建 GPU 环境 | Google Colab 免费 GPU |
| 易用性 | 命令行 + 配置 | 网页点击即用 |
| 模型 | AF2 | AF2、AF2-multimer |
「让原本需要专业运维支持的工具变成人人可用」是 ColabFold 最大的贡献——它的实际影响可能超过任何算法改进。
三种使用方式
# 方式一:Google Colab(最简单,适合零星使用)
# 打开 https://github.com/sokrypton/ColabFold
# 点 AlphaFold2.ipynb 的 Colab 徽章
# 粘贴序列 → 运行 → 下载结果
# 免费 GPU 有时长限制,长序列可能超时
# 方式二:本地安装(适合批量与敏感数据)
pip install "colabfold[alphafold]"
# 或使用官方安装脚本 install_colabbatch_linux.sh
colabfold_batch input.fasta output_dir/
# 常用参数:
colabfold_batch input.fasta output_dir/ \
--num-recycle 6 \
--num-models 5 \
--num-seeds 3 \
--amber \
--templates \
--model-type auto
# 方式三:本地 MMseqs2 数据库(完全离线)
# 适合有保密要求的序列
# 需要下载 ColabFoldDB(约 1 TB,仍远小于官方数据库)
colabfold_search input.fasta /path/to/db/ msas/
colabfold_batch msas/ output_dir/
关键参数的作用
# --num-recycle(默认 3)
# 循环回收次数,把预测结果再输入网络精化
# 增加到 6~12 通常能改善难预测的序列
# 代价:时间线性增长
# → 【对低置信度的预测,先试试加大这个参数】
# --num-models(默认 5)
# AF2 有 5 个训练好的模型,各自预测
# → 保留全部可以看预测的一致性
# → 5 个模型结果差异大 = 该预测不可靠
# --num-seeds(默认 1)
# 每个模型用不同随机种子多次预测
# → 采样构象多样性
# → 对可能有多构象的蛋白很有用
# --amber
# 用 Amber 力场做结构弛豫
# 修正键长键角与侧链冲突
# → 【如果要用于 MD 或对接,建议开启】
# → 只影响局部几何,不改变整体折叠
# --templates
# 使用 PDB 中的同源结构作为模板
# → 对有近缘结构的蛋白有帮助
# → 但也可能把模板的构象偏好带进来
# → 【想预测非模板构象时应关闭】
# --msa-mode
# mmseqs2_uniref_env 默认,最全
# mmseqs2_uniref 只用 UniRef,更快
# single_sequence 【不用 MSA】—— 用于测试无 MSA 时的表现
# --pair-mode(多链)
# unpaired_paired 默认
# paired 只用配对的 MSA(对复合物更好)
# unpaired 不配对
多链复合物预测
# 输入 FASTA 中用冒号分隔各链
# input.fasta:
# >complex_AB
# MKTAYIAKQRQISFVKSHFSRQ:MSKGEELFTGVVPILVELDGDV
colabfold_batch complex.fasta out/ \
--model-type alphafold2_multimer_v3 \
--num-recycle 12 \
--num-models 5
# 同源多聚体:重复同一序列
# >homodimer
# MKTAYIAK...:MKTAYIAK...
# 判读多链预测:
# 看 ipTM(界面置信度)而非只看 pLDDT
# ipTM > 0.8 界面很可能正确
# ipTM 0.6~0.8 不确定
# ipTM < 0.6 界面预测不可靠
#
# 看链间 PAE
# 两条链间的 PAE 低 = 相对取向可信
# PAE 高 = 各链结构可信但相对位置不可信
#
# 看多个模型的一致性
# 5 个模型给出相似的界面 = 更可信
#
# 提醒:
# AF2-Multimer 对【弱瞬时相互作用】预测不可靠
# 对抗体-抗原界面表现也不佳(见 364)
# → 复合物预测建议用 Boltz-2 或 Chai-1(见 121、122)
输出文件的解读
| 文件 | 内容 |
|---|---|
*_relaxed_rank_001_*.pdb |
最佳模型(Amber 弛豫后) |
*_unrelaxed_rank_*.pdb |
未弛豫的原始预测 |
*_scores_rank_*.json |
pLDDT、PAE、pTM、ipTM |
*_predicted_aligned_error_v1.json |
PAE 矩阵 |
*.a3m |
MSA(可复用,省去重新搜索) |
*_coverage.png |
MSA 覆盖度图 |
*_PAE.png |
PAE 热图 |
*_plddt.png |
逐残基 pLDDT 曲线 |
先看 *_coverage.png:如果 MSA 很浅(同源序列少),说明预测的先天条件就不好,不必对结果期望太高。
实用技巧
- 保存并复用 MSA:
.a3m文件可以直接作为输入,跳过搜索——调参重跑时能节省大量时间; - 低置信度时的应对顺序:① 增加
--num-recycle;② 检查 MSA 覆盖度;③ 尝试--templates;④ 分域分别预测(长的多域蛋白); - 探索多构象:增加
--num-seeds,并尝试--max-msa 32:64这类降低 MSA 深度的设置——减少 MSA 有时能让模型采样到不同的构象状态,这是研究构象变化的一个技巧; - 长序列显存不足:分域预测,或用
--use-gpu-relax false; - 敏感序列:不要用远程 MMseqs2 服务器——序列会发送到外部。用本地数据库方案。
关键要点
- 用 MMseqs2 替代传统搜索工具,把 MSA 搜索从小时级压到分钟级且无需本地数据库;
- 保存
.a3m复用,调参重跑时可跳过最耗时的步骤; - 低置信度时先加大
--num-recycle;降低 MSA 深度有时能采样到不同构象; - 敏感序列不要用远程服务器——序列会发送到外部。
延伸资源
- AlphaFold2:112《AlphaFold2 论文精读》;OpenFold:117《OpenFold》;ESMFold:116《ESMFold 论文精读》;
- AlphaPulldown:119《AlphaPulldown》;Boltz-2:121《Boltz-2 技术报告精读》。