AlphaFold 蛋白质结构预测:从氨基酸序列到 ranked_0.pdb 完整跑通
2026/9/11 3:35:47 网站建设 项目流程

AlphaFold 蛋白质结构预测:从氨基酸序列到 ranked_0.pdb 完整跑通

【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold

AlphaFold 是 DeepMind 开源的蛋白质结构预测推理实现。给它一个包含氨基酸序列的 FASTA 文件,它会输出原子级的三维结构文件和每个残基的置信度分数,让你直接看到结构哪些部分可信。适合手头有蛋白序列、但还没有实验结构数据的结构生物学和生物信息学研究者。

蛋白质结构预测能替代实验测结构的两个场景

第一个场景:你拿到一条 300 个氨基酸左右的新蛋白序列,在设计实验之前想先知道它大概长什么样、哪些区域不确定。传统做法是把样品送去结构生物学中心做晶体学或冷冻电镜,周期以月计。用 AlphaFold,单个 GPU 上跑完约 1 小时,输出文件里直接标注了每个残基的置信度。

第二个场景:你有两条蛋白序列,怀疑它们形成复合物,想知道界面在哪里。把两条序列放进同一个 FASTA 文件,程序会自动按复合物模式预测。

图中绿色是实验测定的结构,蓝色是 AlphaFold 预测的结构,两者基本重合。

第一次跑 AlphaFold:三步完整流程

准备一台带 GPU 的 Linux 机器

AlphaFold 只支持 Linux,且运行在 Docker 容器里。宿主机需要准备:

  • 安装 Docker 和 NVIDIA Container Toolkit
  • 安装 aria2 多线程下载工具
  • 至少 600 GB 空闲磁盘
git clone https://gitcode.com/GitHub_Trending/al/alphafold cd alphafold

下载参考数据库和模型参数

bash scripts/download_all_data.sh /data/alphafold_db reduced_dbs

第二个参数决定数据库规模:默认的完整版下载 556 GB、解压后约 2.6 TB;reduced 版空间占用小得多,第一次跑足够用。download_all_data.sh 会同时下载 UniRef90、MGnify、BFD 等序列数据库和 PDB 模板数据库,以及全部模型参数。UniRef90 和 MGnify 用来搜索同源序列、构建多序列比对,BFD 提供更深度的进化比对,PDB70 和 PDB 用于模板搜索。下载耗时较长,建议放后台并保存日志。注意下载目录不能放在仓库目录里面,否则 Docker 构建时会把数据库整个复制进镜像,速度会非常慢。

构建 Docker 镜像并跑第一次预测

docker build -f docker/Dockerfile -t alphafold . pip3 install -r docker/requirements.txt

准备一个 FASTA 文件(如 test.fasta,内含一条序列),然后运行:

python3 docker/run_docker.py \ --fasta_paths=test.fasta \ --max_template_date=2022-01-01 \ --data_dir=/data/alphafold_db \ --output_dir=/data/alphafold_output

跑完后,输出目录(默认是 /tmp/alphafold)下会出现以序列名命名的子目录,里面有 PDB 结构文件、置信度 JSON、计时信息。run_docker.py 负责把 FASTA、数据库、输出目录挂载进容器,推理过程全部在容器内完成。

三个容易卡住的细节:输入 FASTA、数据库预设、模板日期

单链还是复合物,由 FASTA 文件内容决定

文件里只有一条序列时,按单链模型跑;同一个文件里有多条序列时,程序会把它当作复合物,需要额外加--model_preset=multimer,并且要求 UniProt 数据库已下载。如果启动时报找不到数据库路径,多数是这里没配对。

db_preset 必须和下载的数据库匹配

下载的是 reduced 版,就必须传--db_preset=reduced_dbs;下载的是完整版则用full_dbs。两者使用不同的 BFD 数据库文件,脚本启动时会做一致性检查,不匹配直接报错。reduced 版的代价是多序列比对深度更低,低同源度序列的预测会弱一些。

max_template_date 这个截止日期的作用

它限定模板结构检索只取该日期之前发布的 PDB 条目。预测新蛋白时填当前日期即可;跑历史测试集时必须填当年日期,否则模型会"偷看"到你要预测的结构,结果没有参考意义。

pLDDT 分数怎么读,怎么判断预测结果能不能用

跑完后先重点看三个文件:

文件含义
ranked_0.pdb5 个不同随机种子预测里置信度最高的结构
confidence_model_*.json每个残基的 pLDDT 和等级
ranking_debug.json参与排名的置信度数值

等级划分在 confidence.py 中定义:90–100 是 H(高),70–90 是 M(中),50–70 是 L(低),低于 50 是 D(极低)。还有一个容易忽略的点:pLDDT 写在 PDB 文件的 B 因子列里,但和普通 B 因子相反,数值越高结构越可信。

对照下面的标准做判断:

看到的现象含义
大部分残基 pLDDT ≥ 70整体折叠可信,可直接用于下游分析
局部片段 pLDDT < 50大概率是无序区,该区域坐标不可用
几乎全序列 < 50 且 msas/ 下比对命中很少序列进化信息不足,停下来先检查序列
复合物预测中 PAE 非对角块数值大两条链的相对位置不确定,界面预测要谨慎

此外relax_metrics.json里的remaining_violations_count是力场精修后残留的立体化学冲突数,数值小说明结构干净;PAE 文件(pae_*.json)的对角线小值表示链内置信度高。

拿一条 PDB 里已有实验结构的序列,按上面的流程跑一遍,把 ranked_0.pdb 和实验结构做叠加对比:pLDDT 高的区域应该和实验结构高度重合,低分区域正好对应无序区。这次验证通过,你对自己未知序列的预测结果就可以放心使用了。

【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询