跳转至

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-recycleEvoformer 循环次数3(快)/ 12(更准)
--num-models预测模型数(1-5)5(取最佳)/ 1(快速筛查)
--amberAmber 能量最小化优化推荐开启
--use-gpu-relaxGPU 加速 Amber有 GPU 时推荐
--templates使用 PDB 模板同源蛋白多时推荐
--msa-modeMSA 搜索模式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 memoryGPU 显存不足减少 --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