OpenFold 由哥伦比亚大学 AlQuraishi 组主导,是 AlphaFold2 的 PyTorch 可训练复现。DeepMind 官方实现基于 JAX 且只发布推理代码与权重,OpenFold 补上了最关键的一块:你可以从头训练,也可以在自己的数据上微调。这让结构预测模型第一次真正可被研究社区改造。
部署
git clone https://github.com/aqlaboratory/openfold.git
cd openfold
mamba env create -f environment.yml
conda activate openfold
python setup.py install
bash scripts/download_alphafold_params.sh openfold/resources/ # 可直接用 AF2 权重
python run_pretrained_openfold.py fasta_dir/ pdb_mmcif/mmcif_files/ \
--output_dir out/ --config_preset model_1_ptm \
--model_device cuda:0
它与 AlphaFold2 的权重二进制兼容,可以直接加载官方参数做推理,也可加载 OpenFold 自训练的权重。
相对官方实现的差异
| 维度 | AlphaFold2 官方 | OpenFold |
|---|---|---|
| 框架 | JAX / Haiku | PyTorch |
| 训练代码 | 不提供 | 完整提供 |
| 微调 | 不支持 | 支持 |
| 许可 | 权重非商业 | 代码 Apache 2.0,OpenFold 自训权重许可更宽松 |
| 显存优化 | 一般 | 有 DeepSpeed 等优化,长序列更友好 |
许可差异是很多团队选它的真实原因:AF2 官方权重带非商业限制,而 OpenFold 自行训练的权重许可更宽松,商业场景下的可用性不同。使用前仍需核对具体版本的条款。
什么场景真的需要它
- 要微调到特定蛋白家族:例如抗体、膜蛋白、特定折叠类型,通用模型表现不佳时,用自有结构数据微调可能改善。
- 要改架构做研究:想验证 Evoformer 的某个设计、换 MSA 处理方式、做消融实验——只有可训练的实现才能做。
- 要蒸馏或加速:把大模型压缩成更快的版本用于高通量场景。
- 要中间表示:OpenFold 便于取出 Evoformer 的嵌入表示,作为下游任务(功能预测、突变效应)的特征——这是很多实际项目用它的方式。
反过来说,如果只是想拿到某个蛋白的结构,完全不需要 OpenFold:用 AlphaFold Server、ColabFold 或直接查 AlphaFold DB 更快更省事。为一次性预测部署整套训练环境是明显的过度工程。
训练成本要有心理准备
- 从头训练需要数百 GPU-天量级的算力与 PDB 全量数据 + 自蒸馏数据集,绝大多数团队不现实。
- 微调成本低得多,但仍需多卡与相当规模的结构数据;样本太少时容易过拟合,收益不稳定。
- 训练与推理都要 MSA 数据库(数百 GB),存储与检索时间要提前规划。
上手提示
- 它的独占价值是「可训练、可微调、许可更宽松」,不是预测得更准;
- 只想要结构就用 AlphaFold Server / ColabFold,别过度工程;
- 取 Evoformer 嵌入做下游特征,是它被低估的实用用法;
- 从头训练成本极高,多数团队应只考虑微调。
延伸资源
- 教程与背景:019《AlphaFold Server 教程》、110《PyMOL 可视化》;
- 对照实现:192《Boltz》、193《Chai-1》、190《HelixFold3》;
- 蛋白语言模型路线:194《ESM》、195《ESMFold》。