ColabFold — 快速蛋白质结构预测工具(AlphaFold2 加速版)
一句话说明
ColabFold 把 AlphaFold2 和 RoseTTAFold 的结构预测速度提升了 40-60 倍——关键在于用 MMseqs2 替换了慢速的 MSA 搜索,还提供了免费的 Google Colab 笔记本和本地安装版。白话理解:AlphaFold2 的"涡轮增压版",一个蛋白几分钟出结构。
安装与配置
# 方法1:conda 安装(推荐,本地运行)
conda install -c conda-forge -c bioconda colabfold # 安装 ColabFold
# 确认版本(当前 v1.6.1,支持 AlphaFold2.3 权重和 AF3 JSON 输出)
colabfold_batch --help # 确认安装成功
# 安装 AlphaFold2 模型权重(首次运行自动下载,约 6GB)
# 也可提前下载:
python -m colabfold.download # 下载模型权重到默认缓存目录
# 方法2:Google Colab(无需安装,推荐初学者)
# 访问:https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb
# GPU 要求(本地运行)
# 推荐:NVIDIA GPU,≥8GB 显存(500aa以内蛋白)
# 长序列(>1000aa)需要 ≥16GB 显存
核心用法
单序列预测
# 准备 FASTA 文件
cat > my_protein.fasta << 'EOF'
>MyProtein
MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDGTQDNLSGAEKAVQVKVKALPDAQFEVVHSLAKWKRQTLGQHDFSAGEGLYTHMKALRPDEDRLSPLHSVYVDQWDWERVMGDGERQFSTLKSTVEAIWAGIKATEAAVSEEFGLAPFLPDQIHFVHSQELLSRYPDLDAKGRERAIAKDLGAVFLVGIGGKLSDGHRHDVRAPDYDDWSTPSELGHAGLNGDILVWNPVLEDAFELSSMGIRVDADTLKHQLALTGDEDRLELEWHQALLRGEMPQTIGGGIGQSRLTMLLLQLPHIGQVQAGVWPAAVRESVPSLL
EOF
# 运行 ColabFold(本地版)
colabfold_batch \
my_protein.fasta \ # 输入 FASTA 文件
results/ \ # 输出目录
--num-recycle 3 \ # 结构精修循环次数(默认3,精度/速度权衡)
--num-models 5 \ # 预测模型数量(5个模型取最佳)
--use-gpu-relax \ # 用 GPU 做 Amber 能量最小化(更快)
--amber \ # 启用 Amber 结构优化(提高准确性)
--templates # 使用 PDB 模板数据库辅助预测
多序列批量预测
# 把所有序列放入一个 FASTA 文件(多序列格式)
colabfold_batch \
all_proteins.fasta \ # 包含多条序列的 FASTA
batch_results/ \ # 输出目录(每个序列生成子目录)
--num-recycle 3 \ # 循环次数
--num-models 5 # 5个模型
# 查看输出文件
ls batch_results/MyProtein/
# MyProtein_unrelaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb → 未优化结构
# MyProtein_relaxed_rank_001_alphafold2_ptm_model_1_seed_000.pdb → 优化后结构
# MyProtein_plddt.json → 每个氨基酸的 pLDDT 置信度分数(0-100)
# MyProtein_predicted_aligned_error_v1.json → PAE矩阵(评估结构域间关系)
参数详解
| 参数 | 含义 | 推荐值 |
|---|
--num-recycle | Evoformer 循环次数 | 3(快)/ 12(更准) |
--num-models | 预测模型数(1-5) | 5(取最佳)/ 1(快速筛查) |
--amber | Amber 能量最小化优化 | 推荐开启 |
--use-gpu-relax | GPU 加速 Amber | 有 GPU 时推荐 |
--templates | 使用 PDB 模板 | 同源蛋白多时推荐 |
--msa-mode | MSA 搜索模式 | mmseqs2_uniref_env(默认) |
--model-type | 模型类型 | auto(默认)/ alphafold2_multimer_v3(复合体) |
--stop-at-score | 达到该 pLDDT 分数停止 | 85(节省时间) |
--max-msa | 最大 MSA 序列数 | 512(快)/ 4096(准) |
实战案例
案例:预测蛋白质复合体(多聚体)
# 复合体预测:两条链用 : 分隔
cat > complex.fasta << 'EOF'
>ChainA:ChainB
MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPIL:MSGTGVSTGRPDKIIFAPNKEVIVKNLQAASRLGLQA
EOF
# 运行多聚体预测
colabfold_batch \
complex.fasta \
complex_results/ \
--model-type alphafold2_multimer_v3 \ # 多聚体专用模型(v3 更准)
--num-recycle 3 \ # 循环次数
--num-models 5 \ # 5个模型
--amber # 能量优化
案例:评估结构质量
import json # 读取 JSON 格式分数文件
import numpy as np # 数值计算
import matplotlib.pyplot as plt # 绘图
# 读取 pLDDT 分数(每个氨基酸的置信度)
with open("results/MyProtein/MyProtein_plddt.json") as f:
plddt = json.load(f) # 读取 JSON
positions = list(range(1, len(plddt) + 1)) # 氨基酸位置编号
scores = list(plddt.values()) # pLDDT 分数列表
# 绘制 pLDDT 曲线图
fig, ax = plt.subplots(figsize=(12, 4))
ax.plot(positions, scores, linewidth=1, color="blue") # 画线图
ax.axhline(y=90, color="green", linestyle="--", # 90分参考线
label="Very high (>90)")
ax.axhline(y=70, color="orange", linestyle="--", # 70分参考线
label="Confident (>70)")
ax.axhline(y=50, color="red", linestyle="--", # 50分参考线
label="Low (<50)")
ax.set_xlabel("Residue position")
ax.set_ylabel("pLDDT score")
ax.set_title("Per-residue confidence (pLDDT)")
ax.legend()
plt.tight_layout()
plt.savefig("plddt_plot.pdf")
print(f"平均 pLDDT: {np.mean(scores):.2f}") # 打印平均分
常见报错与解决
| 报错 | 原因 | 解决方法 |
|---|
CUDA out of memory | GPU 显存不足 | 减少 --max-msa;用 --num-models 1 |
MMseqs2 server timeout | 网络连接慢或服务器繁忙 | 重试;或用 --msa-mode single_sequence 跳过 MSA |
| pLDDT 全部 < 50 | 蛋白质天然无序区域多 | 正常现象;尝试截取结构域单独预测 |
| 结构与实验值差异大 | 序列同源蛋白少 | 开启 --templates;增加 --num-recycle |
| 权重文件下载失败 | 网络问题 | 配置代理;手动下载权重文件 |
速查表
# 安装
conda install -c conda-forge -c bioconda colabfold
# 单蛋白预测
colabfold_batch protein.fasta results/ --num-recycle 3 --num-models 5 --amber
# 复合体预测(A:B格式)
colabfold_batch complex.fasta results/ --model-type alphafold2_multimer_v3
# 快速筛查(1个模型,不优化)
colabfold_batch proteins.fasta results/ --num-models 1 --num-recycle 1
# 输出文件关键指标
# pLDDT > 90 → 非常高可信度(骨架准确)
# pLDDT > 70 → 高可信度
# pLDDT 50-70 → 低可信度(可能无序区域)
# pLDDT < 50 → 不可靠,天然无序
# 在线版(免费,无需安装)
# https://colab.research.google.com/github/sokrypton/ColabFold/blob/main/AlphaFold2.ipynb