AlphaFold 蛋白结构预测完整指南:4 步从零跑通,附质量判断方法
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
如果你手头只有一段氨基酸序列,却想知道它折叠成什么形状,AlphaFold 蛋白结构预测能直接给出答案:这个仓库是 DeepMind 开源的 AlphaFold 2 推理管线(Apache 2.0 协议),输入 FASTA 序列,输出带置信度标注的三维结构文件,同时支持 AlphaFold-Multimer 多聚体模式来预测蛋白质复合物的组装形态。
它解决了什么痛点,凭什么可信
实验手段获取蛋白结构一直不便宜:X 射线晶体学要养晶体,冷冻电镜要排队机时,周期从几个月到一两年不等。AlphaFold 把这件事变成了一次 GPU 计算——输入序列,几十分钟拿到预测结构,并且每个残基都自带置信度分数。
它不是"看起来不错的工具",在 2020 年 CASP14 结构预测大赛中,其对真实靶点的预测精度已接近实验分辨率。下图左绿色、右蓝色分别代表实验结构和 AlphaFold 的预测,两者几乎重合,GDT 分数超过 90(满分 100):
这个仓库除了单链(monomer)预测,还提供:
- AlphaFold-Multimer:多链复合物的联合建模,v2.3.0 版权重对大型复合物(训练时最多 20 条链)有明显提升,详见v2.3.0 技术笔记
- CASP15 基线预测集:附人工干预说明,可用于复现与校验
- 简化版 Colab 笔记本:notebooks/AlphaFold.ipynb,不用本机搭环境也能体验
硬件与数据预算:动手前先算清 3 笔账
AlphaFold 只支持 Linux,官方路径是 Docker 容器 + NVIDIA GPU(显存越大,能预测的蛋白越长)。在开始下载之前,先看这 3 个数字:
| 项目 | 完整配置 | 精简配置(reduced_dbs) |
|---|---|---|
| 数据库下载量 | 约 556 GB | 明显更小 |
| 解压后磁盘占用 | 约 2.62 TB | 约 600 GB |
| 硬件底线 | 高速 SSD 强烈建议 | 8 核 CPU / 8 GB 内存 |
- 精简配置通过
--db_preset=reduced_dbs启用,用的是小版 BFD 数据库,适合先跑通流程、硬件一般的用户 - 数据库需要 UniRef90、UniRef30、BFD(或小 BFD)、MGnify、PDB mmCIF、PDB70(单链用)、UniProt 与 PDB SeqRes(多聚体用)等,scripts/ 目录下每个数据库都有对应下载脚本
- 预测耗时大致参考(A100 单卡,不含 MSA 搜索):300 残基约 13 秒,1000 残基约 96 秒,2000 残基约 450 秒,5000 残基则接近 5 小时
首次预测的 4 个步骤:环境、数据、镜像、运行命令
第 1 步:装好 Docker 与 NVIDIA Container Toolkit,并让当前用户免 root 运行 Docker(官方 README 里有完整步骤,见官方 README)。装完可用docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi验证容器能看到 GPU。
第 2 步:下载数据库。安装aria2c后运行下载脚本(耗时较长,建议后台执行):
# 完整数据库;加 reduced_dbs 参数则为精简版 scripts/download_all_data.sh <DOWNLOAD_DIR> # 构建 Docker 镜像 docker build -f docker/Dockerfile -t alphafold .两个关键提醒:<DOWNLOAD_DIR>不要放在仓库目录内部,否则构建镜像时大数据库会被复制进 Docker 构建上下文,慢到无法接受;下载目录需保证读写权限(chmod 755 -R),否则 MSA 工具会抛出莫名其妙的报错。
第 3 步:准备输入 FASTA。单链就一条序列;多聚体则把每条链的序列都写进去(>链名+ 序列,换行分隔)。注意:FASTA 里写了几条序列,模型就按几个亚基来组装,这就是复合物的化学计量比。
第 4 步:运行预测。装好docker/requirements.txt的依赖后:
python3 docker/run_docker.py \ --fasta_paths=your_protein.fasta \ --max_template_date=2022-01-01 \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/绝对路径/输出目录--max_template_date限制模板结构的最晚发布日期,避免"泄漏"到目标结构之后才公布的模板;--output_dir必须是可写的绝对路径。
预测流水线内部发生了什么
一次运行大致经历 5 个阶段,理解它有助于你定位卡在哪一步:
- MSA(多序列比对)阶段最耗时,也是磁盘与带宽的大头;如果后续只改模型参数,可用
--use_precomputed_msas=true复用已算好的 MSA - 默认跑 5 个模型、取置信度最高者,这种"多模型投票"能压制单个随机种子的波动
- 排序完成后,
--models_to_relax控制弛豫范围:best(默认,只弛豫第一名)、all、none;GPU 上弛豫更快但偶尔不稳定,CPU 更稳
输出目录怎么读:ranked_0.pdb、pLDDT 与 PAE
运行结束后,--output_dir下会按输入文件名建立子目录,核心文件如下:
| 文件 | 内容 |
|---|---|
ranked_0.pdb | 置信度最高的预测结构,日常主要看它(ranked_1~4.pdb依次降低) |
unrelaxed_model_*.pdb/relaxed_model_*.pdb | 模型原始输出 / Amber 弛豫后的结构 |
result_model_*.pkl | 每个模型的完整原始输出(pLDDT、PAE、ptm 等 NumPy 数组) |
confidence_model_*.json/pae_model_*.json | 按模型导出的 pLDDT 与 PAE 数值 |
ranking_debug.json | 各模型排序得分及名次映射 |
features.pkl/msas/ | 输入特征与 MSA 搜索中间产物,用于复现与调试 |
timings.json | 各阶段耗时 |
质量判断看 3 个指标:
- pLDDT(0–100,越高越可信):残基级置信度。PDB 文件里它被写进 B-factor 列——注意与常规 B 因子含义相反,这里数值越高越好,用它做分子替换时要格外小心。粗略参照:>90 高置信、70–90 较可信、50–70 中等、<50 谨慎使用
- PAE(预测对齐误差,越低越好):N×N 矩阵,描述任意两个残基的相对位置误差。链内对角块低而链间区块偏高,说明单链本身可靠、但复合物取向不确定
- ptm / iptm:多聚体模式还会输出整体质量分,
ranking_debug.json里多聚体的排序依据就是iptm+ptm,单链则用 pLDDT
多聚体(复合物)预测:只差两个参数
预测复合物的流程与单链完全一致,区别仅在于:输入 FASTA 写入全部亚基序列,并设置--model_preset=multimer:
python3 docker/run_docker.py \ --fasta_paths=complex.fasta \ --model_preset=multimer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/绝对路径/输出目录需要心里有数的几点:
- 多聚体模式必须额外下载 UniProt 和 PDB SeqRes 数据库,且 PDB mmCIF 与 SeqRes 版本要一致(模板搜索用)
- 默认每个模型跑 5 个随机种子,5 个模型共 25 次预测,耗时可观;
--num_multimer_predictions_per_model=1可降到每模型 1 次,精度略有下降 - v2.3.0 的多聚体权重在化学计量比已知时普遍优于单链模式,包括已知为单体的蛋白;但如果亚基数量未知(如基因组规模预测),单链模式平均反而更准
- 官方声明 AlphaFold-Multimer 仍在迭代中,稳定性弱于单链系统,解读结果时留一手
常见坑与绕过办法
- 磁盘告急:2.62 TB 是完整库解压后的体量,先规划好独立磁盘;小硬盘直接用精简配置
- MSA 工具报诡异错误:九成是数据库目录权限问题,补全读写权限即可
- 容器看不到 GPU:先跑 README 里的
nvidia-smi验证命令;容器外能看到、容器内看不到,基本是 NVIDIA Container Toolkit 没装对 - 同一条序列两次结果差异大:属正常现象(个别靶点波动尤其明显),官方用 5 模型取最高置信度来缓解,重要结果建议固定
--random_seed复跑 - 弛豫阶段报错或太慢:可先设
--models_to_relax=none拿到原始结构,弛豫是改善局部几何、不是提升预测本身 - ⚠️复现 CASP14 结果:需要锁定当年的数据库版本,仅靠
--max_template_date不够,详见 README 的复现性说明
适用边界与进阶方向
用之前明确边界:AlphaFold 输出是理论建模结果,不用于临床用途;它预测的是静态单构象,不显式建模配体、小分子或膜环境;对无序区域(pLDDT 长期 <50 的片段)不要期望可靠结构。
进阶路线:
- 大型或困难靶点:技术笔记建议把每模型种子数提高到 20、增加 recycle 次数,精度更好但耗时同步上升
- 批量预测:推理脚本默认按单蛋白编译模型,重复跑小蛋白时编译开销占比升高,可基于
RunModel.predict与make_fixed_size自行搭建批量流水线 - 学习入口:官方 README 是总纲,docs/technical_note_v2.3.0.md 讲清 v2.3.0 权重更新动机,run_alphafold.py 则是容器内主流程源码,想看参数如何生效直接读它
一段序列到可信的三维模型,AlphaFold 把结构生物学的"几个月"压缩到了"几十分钟"——把数据库、Docker 和 FASTA 三件事备好,你的第一次预测今天就绪。💡
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考