蛋白质结构预测:进阶工具🔗
关键词: ESMFold, RoseTTAFold, OpenFold, Boltz-1, Chai-1, Protenix, 蛋白质语言模型
难度: ⭐⭐⭐
预计阅读时间: 45 分钟
最后更新: 2026-04-08
本章导读🔗
上一章我们详细介绍了 AlphaFold⅔ 的原理和使用方法。然而在实际研究中,AlphaFold 并不总是最佳选择——有时你需要更快的速度(例如对百万级蛋白质组进行筛选),有时你需要对模型进行微调以适应特定蛋白质家族,有时你需要预测蛋白质与核酸、小分子的复合物结构但 AlphaFold3 的开源限制让你无法自由使用。
本章将介绍 AlphaFold 之外的主流蛋白质结构预测工具,包括基于蛋白质语言模型的 ESMFold、David Baker 实验室的 RoseTTAFold 系列、可训练的开源实现 OpenFold,以及 2024-2025 年涌现的新一代工具 Boltz-1、Chai-1 和 Protenix。
读完本章,你将能够:
- 理解各工具的架构差异和适用场景
- 根据具体需求(速度/精度/复合物/可定制性)选择最合适的工具
- 完成 ESMFold、Boltz-1、Chai-1 等工具的安装与基本使用
- 理解新一代工具与 AlphaFold3 的性能对比
前置知识: 建议先阅读 01_蛋白质结构预测_AlphaFold.md,了解 MSA、pLDDT、PAE 等基本概念。
1. ESMFold(Meta AI)🔗
1.1 核心思想:用蛋白质语言模型替代 MSA🔗
ESMFold 由 Meta AI(原 Facebook AI Research)团队于 2022 年发表,其核心创新在于:完全不需要多序列比对(MSA),直接从单条蛋白质序列预测三维结构。
这一能力来源于其底层的蛋白质语言模型 ESM-2(Evolutionary Scale Modeling)。ESM-2 是一个拥有 150 亿参数(15B)的 Transformer 模型,在超过 6500 万条蛋白质序列上进行自监督预训练(masked language modeling,类似于 BERT 在自然语言中的训练方式)。通过学习海量蛋白质序列中残基之间的上下文关系,ESM-2 在其内部表示中隐式地编码了进化信息和结构知识——换句话说,MSA 中的共进化信号被"压缩"到了语言模型的参数中。
架构简图:
单条氨基酸序列
↓
[ESM-2 语言模型 (15B 参数)]
↓ 提取残基表示 + 残基对表示
[Folding Trunk] → 类似 AlphaFold2 的 Structure Module
↓
3D 原子坐标 + pLDDT 置信度
与 AlphaFold2 的关键区别在于:AlphaFold2 需要耗费大量时间搜索数据库构建 MSA(通常占总耗时的 50% 以上),而 ESMFold 跳过了 MSA 搜索步骤,直接由语言模型提供等价的进化信息。
1.2 速度优势🔗
ESMFold 最大的卖点是速度。以下是与 AlphaFold2 的速度对比(基于原论文和社区测试):
| 指标 | AlphaFold2 (ColabFold) | ESMFold |
|---|---|---|
| MSA 搜索时间 | 5-60 分钟 | 0(不需要) |
| 结构预测时间(~300 残基) | ~5-10 分钟 | ~15 秒 |
| 端到端总时间(~300 残基) | ~15-60 分钟 | ~15 秒 |
| 速度倍率 | 1× | 约 60× |
| 全人类蛋白质组(~2 万蛋白质) | ~数周 | ~数小时 |
注意: 上述数据为大致估计,实际速度取决于序列长度、GPU 型号和批量处理策略。ESMFold 在 A100 GPU 上的推理速度约为 14.2 秒/蛋白质(平均长度 ~350 残基)。
1.3 适用场景与局限🔗
ESMFold 最适合以下场景:
- 大规模蛋白质组筛选:需要对百万级序列快速获得结构估计,例如宏基因组学中的蛋白质功能注释
- 快速初步结构评估:在实验设计前快速检查目标蛋白的可能折叠状态
- MSA 不可用的蛋白质:孤儿蛋白(orphan proteins)、全新设计的蛋白质、高度变异的病毒蛋白等缺乏同源序列的情况——AlphaFold2 的 MSA 稀疏无法发力时,ESMFold 反而不受影响
- 高通量虚拟筛选的预处理:作为分子对接前的快速结构生成工具
- 蛋白质可预测性评估:ESMFold 的 pLDDT 可以作为序列是否具有稳定折叠的快速判断指标
局限性:
| 方面 | 说明 |
|---|---|
| 精度 | 对于 MSA 丰富的蛋白质,精度低于 AlphaFold2(TM-score 平均差 ~0.05-0.10) |
| 长序列 | 处理超过 ~1000 残基的蛋白质时显存需求急剧增加 |
| 复合物 | 不支持多链复合物预测 |
| 复杂折叠 | 对于复杂拓扑(如结结构、β-螺旋桨)精度下降明显 |
| 侧链精度 | 侧链原子坐标的精度不如 AlphaFold2 |
经验法则: 如果 ESMFold 预测的 pLDDT > 0.7,其结构通常与 AlphaFold2 的结果高度一致。如果 pLDDT < 0.5,则建议回退到 AlphaFold2 获取更可靠的预测。
1.4 使用方式🔗
ESMFold 提供了多种使用方式,按易用性排列:
方式一:ESM Metagenomic Atlas(在线查询)🔗
Meta AI 已经用 ESMFold 对 6.17 亿条宏基因组蛋白质序列进行了结构预测,结果存放在 ESM Metagenomic Atlas 中。
访问地址: https://esmatlas.com/
如果你的目标蛋白序列已在数据库中,可以直接下载预计算的结构,无需自行运行。
方式二:ESMFold API(快速预测单条序列)🔗
ESMFold 提供了 REST API,可以直接通过 HTTP 请求进行预测,无需安装任何软件:
import requests
def predict_with_esmfold(sequence, output_path="esmfold_prediction.pdb"):
"""使用 ESMFold API 预测蛋白质结构
Args:
sequence: 氨基酸序列(单字母编码)
output_path: 输出 PDB 文件路径
"""
url = "https://api.esmatlas.com/foldSequence/v1/pdb/"
response = requests.post(url, data=sequence, timeout=300)
if response.status_code == 200:
with open(output_path, "w") as f:
f.write(response.text)
print(f"✓ 预测完成,已保存到: {output_path}")
else:
print(f"✗ 预测失败 (HTTP {response.status_code}): {response.text}")
# 示例:预测一段短蛋白质
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVL"
predict_with_esmfold(sequence)
API 限制: 序列长度上限约 400 残基,且服务可能受流量影响不稳定。长序列或批量预测建议使用本地安装。
方式三:本地安装(推荐批量使用)🔗
# 安装依赖
pip install fair-esm
# 或从源码安装(获取最新版本)
pip install git+https://github.com/facebookresearch/esm.git
本地预测代码:
import torch
import esm
# 加载 ESMFold 模型(首次运行会自动下载,约 15GB)
model = esm.pretrained.esmfold_v1()
model = model.eval().cuda() # 需要 GPU
# 可选:降低显存使用(损失一点速度)
model.set_chunk_size(128)
# 预测单条序列
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVL"
with torch.no_grad():
output = model.infer_pdb(sequence)
# 保存为 PDB 文件
with open("esmfold_result.pdb", "w") as f:
f.write(output)
print("✓ 预测完成")
批量预测多条序列:
import torch
import esm
from pathlib import Path
def batch_predict_esmfold(sequences, output_dir="esmfold_results"):
"""批量预测蛋白质结构
Args:
sequences: dict,格式 {name: sequence}
output_dir: 输出目录
"""
Path(output_dir).mkdir(exist_ok=True)
model = esm.pretrained.esmfold_v1()
model = model.eval().cuda()
model.set_chunk_size(128)
for name, seq in sequences.items():
print(f"正在预测: {name} ({len(seq)} 残基)...", end=" ")
try:
with torch.no_grad():
pdb_string = model.infer_pdb(seq)
output_path = f"{output_dir}/{name}.pdb"
with open(output_path, "w") as f:
f.write(pdb_string)
print(f"✓ 完成")
except RuntimeError as e:
if "out of memory" in str(e):
print(f"✗ 显存不足,跳过")
torch.cuda.empty_cache()
else:
raise
print(f"\n全部完成,结果保存在: {output_dir}/")
# 使用示例
sequences = {
"protein_A": "MKTVRQERLKSIVRILERSKEPVSGAQ...",
"protein_B": "GALMGLGTLYFLVKGMGVSDPDAKKF...",
"protein_C": "MVLSPADKTNVKAAWGKVGAHAGEYGAE...",
}
batch_predict_esmfold(sequences)
GPU 显存需求参考:
| 序列长度 | 所需显存(约) |
|---|---|
| < 400 残基 | ~8 GB |
| 400-800 残基 | ~16 GB |
| 800-1200 残基 | ~24 GB(使用 chunk_size=64) |
| > 1200 残基 | ~40 GB+(建议使用 A100) |
方式四:HuggingFace Transformers🔗
如果你熟悉 HuggingFace 生态,也可以通过 transformers 库使用 ESMFold:
from transformers import AutoTokenizer, EsmForProteinFolding
# 加载模型和 tokenizer
tokenizer = AutoTokenizer.from_pretrained("facebook/esmfold_v1")
model = EsmForProteinFolding.from_pretrained("facebook/esmfold_v1")
model = model.eval().cuda()
# 预测
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVL"
inputs = tokenizer([sequence], return_tensors="pt", add_special_tokens=False)
inputs = {k: v.cuda() for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
# outputs.positions 包含原子坐标
# outputs.plddt 包含 pLDDT 置信度
print(f"平均 pLDDT: {outputs.plddt.mean().item():.2f}")
2. RoseTTAFold 系列(David Baker Lab)🔗
2.1 RoseTTAFold:三轨架构🔗
RoseTTAFold 由华盛顿大学 David Baker 实验室(2024 年诺贝尔化学奖得主)开发,于 2021 年发表在 Science 上。它与 AlphaFold2 几乎同时独立开发,在 CASP14 中也取得了优异成绩(排名第二)。
核心创新:三轨网络(Three-Track Network)
RoseTTAFold 的核心设计理念是同时处理三个信息层级,并让它们之间不断交换信息:
- 1D 轨道:处理序列级别的信息(类似 AlphaFold2 的 MSA 表示)
- 2D 轨道:处理残基对之间的关系(类似 AlphaFold2 的 pair 表示)
- 3D 轨道:直接操作三维坐标——这是与 AlphaFold2 最大的区别
在 AlphaFold2 中,Evoformer 只处理 1D 和 2D 信息,最后才由 Structure Module 生成 3D 坐标。而 RoseTTAFold 从第一层开始就同时在三个层级上推理,三个轨道之间通过注意力机制持续交换信息,使得序列、距离和 3D 坐标能够相互约束、共同优化。
与 AlphaFold2 的核心对比:
| 特性 | AlphaFold2 | RoseTTAFold |
|---|---|---|
| 架构 | Evoformer (1D+2D) → Structure Module (3D) | 三轨并行 (1D+2D+3D) |
| MSA 处理 | JackHMMER + HHblits | HHblits |
| 模型参数量 | ~93M | ~~130M |
| CASP14 排名 | 第 1 | 第 2 |
| 单链预测精度 (TM-score) | ~0.92 (中位数) | ~0.85 (中位数) |
| 训练数据 | PDB + UniClust30 | PDB + UniRef30 |
| 开源程度 | 代码+权重 | 代码+权重(更宽松的 MIT 协议) |
2.2 RoseTTAFold2(RF2)🔗
RoseTTAFold2 是 2023 年发布的重大升级版本,在架构和性能上都有显著提升:
主要改进:
- 精度大幅提升:单链预测精度接近 AlphaFold2
- 蛋白质-蛋白质复合物预测:支持多链输入,预测蛋白质间相互作用
- 蛋白质-核酸复合物:初步支持蛋白质-DNA/RNA 复合物
- 改进的采样策略:使用去噪扩散(diffusion)思想优化结构预测
- 更好的配体绑定位点预测
安装与使用:
# 克隆仓库
git clone https://github.com/uw-ipd/RoseTTAFold2.git
cd RoseTTAFold2
# 创建 conda 环境
conda env create -f environment.yaml
conda activate RF2
# 下载权重和数据库(~500GB,主要是序列数据库)
./install_dependencies.sh
# 预测单链结构
python predict.py \
--input_fas example/test.fasta \
--output_dir results/ \
--device cuda:0
2.3 RoseTTAFold All-Atom(RFAA)🔗
RFAA 是 2024 年发表在 Science 上的最新版本,代表了 RoseTTAFold 系列的重大飞跃:从纯蛋白质预测扩展到"所有原子"级别的生物分子复合物预测。
支持的分子类型:
| 分子类型 | 支持情况 | 示例 |
|---|---|---|
| 蛋白质 | ✅ | 单链、多链复合物 |
| 核酸(DNA/RNA) | ✅ | 蛋白质-DNA 复合物 |
| 小分子配体 | ✅ | 蛋白质-药物相互作用 |
| 金属离子 | ✅ | 含锌指结构域的蛋白质 |
| 共价修饰 | ✅ | 糖基化、磷酸化蛋白质 |
这使得 RFAA 在功能上最接近 AlphaFold3,但完全开源(BSD 协议)。
安装(需要较大的存储空间):
# 克隆仓库
git clone https://github.com/baker-laboratory/RoseTTAFold-All-Atom.git
cd RoseTTAFold-All-Atom
# 安装 conda 环境
conda env create -f environment.yaml
conda activate RFAA
# 下载预训练权重
./install_weights.sh
# 下载序列数据库(可选,会显著提高精度但需要大量磁盘空间)
./install_databases.sh
预测蛋白质-小分子复合物:
# 准备输入配置文件 (YAML 格式)
cat > input_config.yaml << 'EOF'
job_name: my_complex
protein:
fasta_file: protein.fasta
chain: A
ligand:
sdf_file: ligand.sdf # 小分子的 SDF 格式文件
output_path: results/
EOF
# 运行预测
python run_inference.py --config input_config.yaml
预测蛋白质-核酸复合物:
cat > dna_complex.yaml << 'EOF'
job_name: protein_dna
protein:
fasta_file: protein.fasta
chain: A
nucleic_acid:
fasta_file: dna.fasta # DNA/RNA 序列
chain: B
type: DNA # 或 RNA
output_path: results/
EOF
python run_inference.py --config dna_complex.yaml
2.4 何时选择 RoseTTAFold🔗
RoseTTAFold 系列在以下场景中有明显优势:
- 蛋白质设计(Protein Design):Baker 实验室的蛋白质设计工具链(RFdiffusion、ProteinMPNN 等)与 RoseTTAFold 深度集成——如果你在做蛋白质设计,RoseTTAFold 是天然的结构验证工具
- 需要完全开源的方案:RoseTTAFold 系列采用宽松的开源协议(BSD/MIT),适合商业用途和自由修改
- 蛋白质-小分子/核酸复合物:RFAA 在 AlphaFold3 开源之前(以及 AF3 License 限制下)是最成熟的全原子复合物预测开源方案之一
- 计算资源有限:RoseTTAFold 的 GPU 显存需求通常低于 AlphaFold2
3. OpenFold🔗
3.1 是什么:AlphaFold2 的可训练开源复现🔗
OpenFold 是由哥伦比亚大学 Mohammed AlQuraishi 实验室开发的 AlphaFold2 完全复现(reproduction),使用 PyTorch 重新实现了 AlphaFold2 的完整架构。
与原版 AlphaFold2 的关键区别:
| 特性 | DeepMind AlphaFold2 | OpenFold |
|---|---|---|
| 框架 | JAX/Haiku | PyTorch(更通用、社区更大) |
| 可训练性 | 仅推理(权重固定) | 完全可训练(支持微调和从头训练) |
| 推理精度 | 标准 | 与原版一致(经过严格验证) |
| 权重 | DeepMind 发布 | 提供独立训练的权重 + 兼容 DeepMind 权重 |
| 代码可读性 | 一般 | 更好的文档和代码注释 |
| 许可证 | Apache 2.0 | Apache 2.0 |
3.2 核心优势:可微调🔗
OpenFold 最大的价值在于你可以用自己的数据微调它。这在以下场景中非常重要:
- 特定蛋白质家族:对于 G 蛋白偶联受体(GPCR)、抗体等特定家族,使用该家族的实验结构进行微调后,预测精度可以显著提升
- 实验数据整合:将交联质谱(XL-MS)、小角散射(SAXS)等实验约束整合到训练过程中
- 方法学研究:如果你在研究蛋白质结构预测的方法本身(例如新的损失函数、新的网络模块),OpenFold 是最佳的实验平台
- 蒸馏和压缩:可以训练更小、更快的模型用于特定应用
3.3 安装与使用🔗
# 克隆仓库
git clone https://github.com/aqlaboratory/openfold.git
cd openfold
# 安装(推荐使用 conda)
conda env create -n openfold -f environment.yml
conda activate openfold
# 安装 OpenFold
pip install -e .
# 下载预训练权重
bash scripts/download_openfold_params.sh openfold/resources
# 下载数据库(与 AlphaFold2 相同的数据库)
bash scripts/download_alphafold_dbs.sh /path/to/database/dir
运行推理(与 AlphaFold2 相同精度):
python run_pretrained_openfold.py \
fasta_dir \
data/pdb_mmcif/mmcif_files/ \
--uniref90_database_path data/uniref90/uniref90.fasta \
--mgnify_database_path data/mgnify/mgy_clusters_2022_05.fa \
--pdb70_database_path data/pdb70/pdb70 \
--uniclust30_database_path data/uniclust30/uniclust30_2018_08/uniclust30_2018_08 \
--bfd_database_path data/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
--model_device cuda:0 \
--config_preset model_1_ptm \
--openfold_checkpoint_path openfold/resources/openfold_params/finetuning_2.pt \
--output_dir results/
微调示例(高级用法):
# 在自定义数据集上微调 OpenFold
python train_openfold.py \
--training_data_dir /path/to/training/mmcif \
--alignment_dir /path/to/alignments \
--template_mmcif_dir /path/to/templates \
--output_dir /path/to/output \
--config_preset model_1_ptm \
--seed 42 \
--num_train_epochs 5 \
--learning_rate 1e-4 \
--checkpoint_every_epoch \
--resume_from_openfold_checkpoint openfold/resources/openfold_params/finetuning_2.pt
提示: 微调 OpenFold 通常需要 A100(40GB/80GB)GPU。对于大多数用户来说,直接使用预训练权重进行推理就足够了,微调主要面向方法学开发人员或需要对特定蛋白质家族进行优化的高级用户。
4. 新一代工具(2024-2025 发布)🔗
2024 年 5 月,DeepMind 发布了 AlphaFold3,支持蛋白质、核酸、小分子等多种分子的复合物预测,但其模型权重受到较严格的使用限制(禁止商业用途,限制药物发现应用)。这一限制激发了社区开发开源替代方案的热潮,2024 年下半年涌现了多个重要工具。
4.1 Boltz-1(MIT 开源 AF3 替代方案)🔗
开发者: Boltz 团队(MIT GenBio)
发布时间: 2024 年 12 月
开源协议: MIT License(完全自由使用,包括商业用途)
论文: Boltz-1: Democratizing Biomolecular Interaction Modeling
Boltz-1 是首个真正完全开源的 AlphaFold3 级别工具,支持预测蛋白质、核酸、小分子、共价修饰等多种分子类型的复合物结构。
核心特点:
- 完整复现 AF3 架构:扩散模型(diffusion model)+ confidence model
- MIT 许可证:无任何使用限制,可自由用于学术和商业目的
- 支持的分子类型:蛋白质、DNA、RNA、小分子、金属离子、共价修饰
- 性能:在多个基准测试上与 AlphaFold3 Server 的结果接近
安装:
# 方式一:pip 安装(推荐)
pip install boltz
# 方式二:从源码安装
git clone https://github.com/jwohlwend/boltz.git
cd boltz
pip install -e .
使用方式:
Boltz-1 使用 YAML 格式的输入文件描述预测任务。
预测蛋白质单链结构:
# 准备 FASTA 文件
cat > my_protein.fasta << 'EOF'
>protein_A
MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVL
EOF
# 运行预测
boltz predict my_protein.fasta --out_dir results/
预测蛋白质-小分子复合物:
# input.yaml
sequences:
- protein:
id: A
sequence: MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVL
- ligand:
id: B
smiles: "CC(=O)Oc1ccccc1C(=O)O" # 阿司匹林的 SMILES
预测蛋白质-核酸复合物:
# dna_complex.yaml
sequences:
- protein:
id: A
sequence: MKTVRQERLKSIVRILERSKEPVSGAQ...
- dna:
id: B
sequence: ATCGATCGATCG
- dna:
id: C
sequence: CGATCGATCGAT
Python API 使用:
from boltz import Boltz1
# 加载模型
model = Boltz1.from_pretrained()
# 从 FASTA 或 YAML 预测
results = model.predict("input.yaml")
# 结果包含:
# - 预测结构 (CIF 格式)
# - 置信度分数 (pLDDT, pAE, pDE 等)
# - 排序后的多个模型
关键参数说明:
| 参数 | 默认值 | 说明 |
|---|---|---|
--num_diffusion_steps | 200 | 扩散步数,越多精度越高但越慢 |
--num_samples | 1 | 生成的预测模型数量 |
--recycling_steps | 3 | 循环优化次数 |
--output_format | mmcif | 输出格式,支持 mmcif 和 pdb |
4.2 Chai-1(高性能 AF3 替代)🔗
开发者: Chai Discovery
发布时间: 2024 年 9 月
开源协议: 非商业用途免费(学术自由使用)
论文: Chai-1: Decoding the molecular interactions of life
Chai-1 在发布时,在多个基准测试上超过了 AlphaFold3 Server 的性能,尤其在蛋白质-小分子和蛋白质-核酸复合物预测方面表现出色。
核心亮点:
- 顶尖精度:在 CASP15 蛋白质-配体目标和 PoseBusters 基准上表现优异
- 蛋白质-小分子对接:在药物发现场景中表现突出
- MSA 可选:支持 MSA 输入也支持无 MSA 模式(使用内置语言模型)
- 快速推理:支持 Flash Attention 和多种优化
安装:
基本使用:
import torch
from chai_lab.chai1 import run_inference
# 准备输入 FASTA(支持多链)
fasta_content = """>protein|name=TargetProtein
MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVL
>ligand|name=Drug
CC(=O)Oc1ccccc1C(=O)O
"""
# 写入临时文件
fasta_path = "/tmp/input.fasta"
with open(fasta_path, "w") as f:
f.write(fasta_content)
# 运行预测
candidates = run_inference(
fasta_file=fasta_path,
output_dir="/tmp/chai_results",
num_trunk_recycles=3,
num_diffn_timesteps=200,
seed=42,
device=torch.device("cuda:0"),
use_esm_embeddings=True, # 使用 ESM 语言模型嵌入
)
# candidates 是按置信度排序的预测结果列表
for i, cand in enumerate(candidates.cif_paths):
print(f"模型 {i}: {cand}")
# 对应的置信度分数
scores = candidates.ranking_data[i]
print(f" aggregate_score: {scores['aggregate_score']:.3f}")
在线使用(无需安装):
Chai Discovery 也提供了在线预测服务:https://lab.chaidiscovery.com/
对于偶尔使用的用户,在线服务是最简单的选择。
4.3 Protenix(字节跳动 AF3 复现)🔗
开发者: 字节跳动(ByteDance)AI for Science 团队
发布时间: 2024 年 12 月
开源协议: Apache 2.0
仓库: https://github.com/bytedance/Protenix
Protenix(原名 ByteFolder)是字节跳动团队对 AlphaFold3 的忠实复现(faithful reproduction),严格遵循 AlphaFold3 论文中描述的架构细节。
核心特点:
- 严格遵照 AF3 论文实现:包括扩散模型、confidence head、MSA module 等所有关键组件
- 训练代码开源:不仅提供推理代码,还提供完整的训练流程——这对于方法学研究者非常有价值
- 社区活跃:文档详细,issue 响应迅速,定期更新
- 良好的工程质量:代码结构清晰,支持分布式训练
安装:
# 克隆仓库
git clone https://github.com/bytedance/Protenix.git
cd Protenix
# 安装依赖
pip install -e .
# 下载预训练权重
python scripts/download_weights.py
运行预测:
# 使用 JSON 格式的输入文件
cat > input.json << 'EOF'
{
"name": "my_prediction",
"sequences": [
{
"protein": {
"id": "A",
"sequence": "MKTVRQERLKSIVRILERSKEPVSGAQ..."
}
},
{
"ligand": {
"id": "B",
"smiles": "CC(=O)Oc1ccccc1C(=O)O"
}
}
]
}
EOF
python predict.py --input input.json --output_dir results/
4.4 新一代工具性能对比🔗
以下对比基于各工具官方论文和社区复现的基准测试结果(截至 2025 年初):
蛋白质单链预测(PDB 测试集 TM-score):
| 工具 | TM-score (中位数) | GDT-TS (中位数) | 说明 |
|---|---|---|---|
| AlphaFold2 | 0.92 | 92.4 | 标准参照 |
| ESMFold | 0.86 | ~85 | 不需要 MSA |
| RoseTTAFold2 | 0.89 | ~88 | — |
| OpenFold | 0.92 | ~92 | 与 AF2 一致 |
| AlphaFold3 | 0.93 | — | 最新基准 |
| Boltz-1 | ~0.91 | — | 接近 AF3 |
| Chai-1 | ~0.92 | — | 接近 AF3 |
| Protenix | ~0.91 | — | 接近 AF3 |
注意: 以上数值为近似值,来源于各自论文和社区评测。不同测试集上的结果可能有差异,仅供参考趋势。
蛋白质-配体复合物预测(PoseBusters 基准,成功率 RMSD < 2Å):
| 工具 | PoseBusters 成功率 |
|---|---|
| AlphaFold3 Server | ~76% |
| Chai-1 | ~77% |
| Boltz-1 | ~72% |
| Protenix | ~71% |
| RoseTTAFold All-Atom | ~62% |
| AlphaFold2 (无配体) | N/A |
蛋白质-核酸复合物预测(RNA/DNA 界面 DockQ):
| 工具 | 蛋白质-DNA DockQ | 蛋白质-RNA DockQ |
|---|---|---|
| AlphaFold3 Server | ~0.67 | ~0.72 |
| Chai-1 | ~0.59 | ~0.63 |
| Boltz-1 | ~0.55 | ~0.58 |
| Protenix | ~0.54 | ~0.56 |
| RFAA | ~0.48 | ~0.52 |
关键结论: 新一代工具在蛋白质-小分子对接上已经非常接近甚至超越 AlphaFold3 Online Server,但在蛋白质-核酸复合物方面仍有差距。Chai-1 在配体对接上表现最为突出,Boltz-1 在开源自由度上优势明显。
5. 工具选择决策指南🔗
5.1 综合对比表🔗
| 特性 | AlphaFold2 | ESMFold | RoseTTAFold2 | RFAA | OpenFold | Boltz-1 | Chai-1 | Protenix |
|---|---|---|---|---|---|---|---|---|
| 单链精度 | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★★☆ | ★★★★★ | ★★★★☆ | ★★★★★ | ★★★★☆ |
| 复合物支持 | 仅蛋白质 | 否 | 蛋白质 | 全类型 | 仅蛋白质 | 全类型 | 全类型 | 全类型 |
| 小分子配体 | ✗ | ✗ | ✗ | ✅ | ✗ | ✅ | ✅ | ✅ |
| 核酸 | ✗ | ✗ | 初步 | ✅ | ✗ | ✅ | ✅ | ✅ |
| 速度 | 慢 | 极快 | 中 | 中 | 慢 | 中 | 中 | 中 |
| 需要 MSA | 是 | 否 | 是 | 是 | 是 | 是(可选) | 可选 | 是(可选) |
| GPU 显存 | ≥16GB | ≥8GB | ≥12GB | ≥16GB | ≥16GB | ≥16GB | ≥16GB | ≥16GB |
| 磁盘空间 | ~2.5TB | <1GB | ~500GB | ~500GB | ~2.5TB | ~50GB | ~30GB | ~50GB |
| 可微调 | ✗ | ✗ | ✗ | ✗ | ✅ | ✗ | ✗ | ✅ |
| 在线服务 | ColabFold | API | ✗ | ✗ | ✗ | ✗ | ✅ Web | ✗ |
| 许可证 | Apache 2.0 | MIT | BSD | BSD | Apache 2.0 | MIT | 非商业 | Apache 2.0 |
5.2 决策流程图🔗
根据你的具体需求,按以下流程选择工具:
你的任务是什么?
│
├─ 单链蛋白质结构预测
│ ├─ 需要最高精度?
│ │ ├─ 是 → AlphaFold2 / ColabFold
│ │ └─ 否 → 继续 ↓
│ ├─ 需要极快速度(大规模筛选)?
│ │ ├─ 是 → ESMFold
│ │ └─ 否 → 继续 ↓
│ ├─ 目标蛋白缺少同源序列(MSA 稀疏)?
│ │ ├─ 是 → ESMFold(不依赖 MSA)
│ │ └─ 否 → AlphaFold2 / ColabFold
│ └─ 需要微调模型?
│ ├─ 是 → OpenFold
│ └─ 否 → AlphaFold2 / ColabFold
│
├─ 蛋白质-蛋白质复合物
│ ├─ AlphaFold2-Multimer (ColabFold)
│ ├─ Boltz-1(开源无限制)
│ └─ Chai-1(高精度)
│
├─ 蛋白质-小分子复合物
│ ├─ 需要最高精度?
│ │ ├─ 是 → Chai-1 / AlphaFold3 Server
│ │ └─ 否 → Boltz-1(完全开源)
│ ├─ 需要商业使用?
│ │ ├─ 是 → Boltz-1(MIT 协议)
│ │ └─ 否 → Chai-1 或 AlphaFold3 Server
│ └─ 需要可训练?
│ └─ 是 → Protenix(提供完整训练代码)
│
├─ 蛋白质-核酸复合物
│ ├─ AlphaFold3 Server(精度最高)
│ ├─ Boltz-1 / Chai-1(开源方案)
│ └─ RFAA(Baker 实验室生态)
│
└─ 蛋白质设计验证
└─ RoseTTAFold2(与 RFdiffusion 等设计工具链集成)
5.3 典型场景推荐🔗
场景一:我有一个新蛋白质序列,想快速看看它长什么样
→ ESMFold API(15 秒出结果,无需任何安装)
import requests
sequence = "你的蛋白质序列"
response = requests.post("https://api.esmatlas.com/foldSequence/v1/pdb/", data=sequence)
with open("quick_result.pdb", "w") as f:
f.write(response.text)
场景二:我需要高精度的单链结构用于分子对接/MD 模拟
→ ColabFold(AlphaFold2 精度,不需要本地 GPU)
场景三:我想预测蛋白质和药物小分子的结合模式
→ Chai-1(精度最高)或 Boltz-1(完全开源)
场景四:我有 100 万条宏基因组蛋白质序列需要结构注释
→ ESMFold 本地部署(~14 秒/蛋白质,A100 上约 5-6 天处理完)
场景五:我在开发新的结构预测方法,需要一个可修改的基线模型
→ OpenFold(PyTorch 实现,完全可训练)或 Protenix(包含完整训练代码)
场景六:我在做蛋白质设计(de novo design),需要验证设计结果
→ RoseTTAFold2(与 RFdiffusion + ProteinMPNN 设计流程无缝衔接)
本章小结🔗
- ✅ ESMFold 是目前最快的结构预测工具(~60× 快于 AF2),基于蛋白质语言模型,不需要 MSA,适合大规模筛选和 MSA 稀疏的蛋白质
- ✅ RoseTTAFold 系列(特别是 RFAA)提供了完全开源的全原子复合物预测方案,与 Baker 实验室的蛋白质设计工具链深度集成
- ✅ OpenFold 是 AlphaFold2 的可训练 PyTorch 复现,是方法学研究和模型微调的最佳选择
- ✅ Boltz-1 是首个 MIT 协议的 AlphaFold3 级别工具,支持全类型复合物预测,自由度最高
- ✅ Chai-1 在蛋白质-配体对接上表现顶尖,是药物发现场景的优选
- ✅ Protenix 是严格遵循 AF3 论文的复现,提供完整训练代码,适合深度定制
- ✅ 没有单一的"最好"工具——根据你的具体需求(精度、速度、分子类型、许可证)选择最合适的方案
延伸阅读🔗
- ESMFold 论文 - Lin et al., Science, 2023
- ESM Metagenomic Atlas(2025-01 访问)
- RoseTTAFold 论文 - Baek et al., Science, 2021
- RoseTTAFold All-Atom 论文 - Krishna et al., Science, 2024
- OpenFold GitHub(2025-01 访问)
- Boltz-1 论文 - Wohlwend et al., bioRxiv, 2024
- Chai-1 技术报告 - Chai Discovery, bioRxiv, 2024
- Protenix GitHub(2025-01 访问)
- 相关章节:蛋白质结构预测:AlphaFold
- 相关章节:蛋白质设计与工程
参考文献🔗
-
Lin, Z. et al., "Evolutionary-scale prediction of atomic-level protein structure with a language model", Science, 379(6637), 2023. https://doi.org/10.1126/science.ade2574 ↩
-
Baek, M. et al., "Accurate prediction of protein structures and interactions using a three-track neural network", Science, 373(6557), 2021. https://doi.org/10.1126/science.abj8754 ↩
-
Krishna, R. et al., "Generalized biomolecular modeling and design with RoseTTAFold All-Atom", Science, 384(6693), 2024. https://doi.org/10.1126/science.adl2528 ↩
-
Ahdritz, G. et al., "OpenFold: Retraining AlphaFold2 yields new insights into its learning mechanisms and capacity for generalization", Nature Methods, 2024. https://doi.org/10.1038/s41592-024-02272-z ↩
-
Wohlwend, J. et al., "Boltz-1: Democratizing Biomolecular Interaction Modeling", bioRxiv, 2024. https://doi.org/10.1101/2024.11.19.624167 ↩
-
Chai Discovery, "Chai-1: Decoding the molecular interactions of life", bioRxiv, 2024. https://doi.org/10.1101/2024.10.10.615955 ↩
-
ByteDance AI for Science, "Protenix: An open-source reproduction of AlphaFold3", GitHub, 2024. https://github.com/bytedance/Protenix ↩