AlphaFold蛋白复合物预测实战:三步跑通第一个多聚体结构
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
AlphaFold 是蛋白质结构预测的开源实现,给一段 FASTA 序列加一条 Docker 命令,就能拿到单链或多亚基蛋白的三维结构和逐残基置信度。下面按"第一次跑通 → 复合物预测 → 判断结果"的顺序走一遍完整流程。
上图是 CASP14 预测结构与实验结构的叠合对比,两者高度一致,可以直观感受这套流程的精度。
先把单链蛋白跑起来
安装与数据库下载
运行环境要求 Linux 系统加一块 NVIDIA GPU,官方以 Docker 镜像方式分发。克隆仓库后,用自带脚本下载数据库和模型参数:
git clone https://gitcode.com/GitHub_Trending/al/alphafold cd alphafold scripts/download_all_data.sh <DOWNLOAD_DIR> > download.log 2> download_all.log &注意两点:<DOWNLOAD_DIR>不要放在仓库目录内,否则 Docker 构建会明显变慢;完整数据库下载约 556 GB、解压后 2.62 TB。机器条件有限时,脚本追加第二个参数reduced_dbs,缩减版只需约 600 GB 磁盘、8 核 CPU 和 8 GB 内存,足够入门使用。
最小预测命令
把序列放进 FASTA 文件(首行>开头是名称,次行是序列),然后执行:
python3 docker/run_docker.py \ --fasta_paths=monomer.fasta \ --max_template_date=2022-01-01 \ --model_preset=monomer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/output--max_template_date会把模板结构限制在该日期之前,避免"偷看"目标蛋白已发表的实验结构。跑完后输出目录里直接就是预测好的结构文件。
复合物输入:多聚体 FASTA 怎么写
多聚体预测和单体只差一步:--model_preset换成multimer,所有亚基序列放进同一个 FASTA 文件。规则很简单——每个亚基一个独立条目,同源多聚体就是把同一条序列重复几遍。同源三聚体示例:
>chain_1 <SEQUENCE A> >chain_2 <SEQUENCE A> >chain_3 <SEQUENCE A>A2B3 类型的异源五聚体则是 2 条 A 加 3 条 B,同样每个亚基各占一个条目。条目顺序建议与已知复合物的链顺序保持一致,模型不会替你"猜"哪些亚基该配对。另外 multimer 还依赖 UniProt 和 PDB seqres 两个数据库,下载时务必包含,详见 README。
预测参数怎么选:4 个关键开关
命令行参数大多可以保持默认,需要留意的是这四个:
| 参数 | 取值 | 何时调整 |
|---|---|---|
--model_preset | monomer/monomer_ptm/multimer | 已知亚基组成就用multimer;monomer_ptm会额外输出 pTM 和 PAE 矩阵 |
--db_preset | full_dbs/reduced_dbs | 追求精度选 full,快速验证选 reduced |
--num_multimer_predictions_per_model | 默认 5 | 每个模型 5 个种子共 25 次预测,大型或难预测目标可提到 20 |
--use_precomputed_msas | 默认 false | 同一序列反复调参时设 true,复用首次生成的 MSA,跳过最耗时的数据库检索 |
默认只松弛置信度最高的模型(--models_to_relax=best);超大复合物建议改--enable_gpu_relax=false走 CPU 松弛,速度慢一些但更稳定。
耗时参考(A100,不含 MSA 与模板搜索):
| 残基数 | 耗时(秒) |
|---|---|
| 100 | 4.9 |
| 1,000 | 96 |
| 2,000 | 450 |
| 5,000 | 18,824 |
蛋白越长耗时越陡增。跑小蛋白时可以把 alphafold/model/config.py 里的global_config.subbatch_size调大,GPU 利用率上来后速度明显变快。
结果可信度怎么看:输出目录解读
每个目标会在输出目录下生成独立子目录,文件布局固定:
<target_name>/ ranked_0.pdb # 置信度最高的结构 relaxed_model_*.pdb # Amber 松弛后的结构 result_model_*.pkl # pLDDT / pTM / PAE 原始数据 ranking_debug.json # 各模型排序用的 pLDDT timings.json # 各阶段耗时 msas/ # 各数据库检索结果判断可信度主要看三个指标,都在result_model_*.pkl里:
- pLDDT(0–100):逐残基置信度,低于 50 的区域基本属于无序或不可靠;它同时写进 PDB 的 B-factor 列,注意方向和常规 B-factor 相反,数值越大越好。
- pTM:整体质量的标量分数,偏低说明模型对自身域间组装没有把握。
- PAE(预测对齐误差):残基两两之间的相对位置不确定性矩阵,0 最可信。同一亚基内数值通常较低,跨亚基偏高;若两个亚基之间的 PAE 区域明显偏低,说明预测的界面接触是可信的。
5 个模型各出一份预测,按 pLDDT 排序后ranked_0.pdb就是最可靠的那份。
避坑速查
| 现象 | 处理方式 |
|---|---|
| GPU 显存不足 | 先换--db_preset=reduced_dbs;再调小subbatch_size;仍不行就把复合物拆成亚基分别预测 |
| 某区域 pLDDT 低于 50 | 大概率是固有无序区(IDR);换monomer_ptm看 PAE 矩阵交叉验证 |
| 亚基相对位置不符合预期 | 种子数提到--num_multimer_predictions_per_model=20,并核对 FASTA 条目顺序与已知化学计量一致 |
| 报错信息晦涩难懂 | 多半是数据库目录读写权限问题,给整个下载目录补齐权限后重试 |
| 换参数重跑想省时 | 加--use_precomputed_msas=true复用首次 MSA |
下一步
- v2.3.0 的 multimer 权重改用 2021-09-30 前的数据训练,训练窗口从 384 残基扩到 640、最多支持 20 条链,对大型复合物精度提升明显,详见技术说明。
- 需要绘制 PAE 矩阵或深入分析结果时,Jupyter Notebook 里有现成脚本;multimer 的前向推理逻辑在 folding_multimer.py 中。
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考