3 步跑通 AlphaFold 蛋白质相互作用预测:蛋白质复合物结构预测调参与置信度解读教程
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
AlphaFold 是 AlphaFold 2 结构预测管线的开源实现,其中的 AlphaFold-Multimer 模型负责蛋白质相互作用预测中的复合物场景:给出多条亚基序列,输出整个蛋白复合物的三维结构及亚基间的相对排布。本文以一次完整的多聚体预测为主线,覆盖输入文件怎么写、命令参数怎么定、pLDDT/pTM/PAE 怎么读,以及显存不足、低置信度等翻车情况怎么处理。
- 单体与多聚体两种模式的差异,以及如何判断该用哪一个
- 蛋白质复合物 FASTA 输入的标准写法与预测运行流程
- pLDDT、pTM、PAE 各是什么、什么数值算可信、在哪个文件里查
- 显存不足、低置信度区域、亚基排布异常、MSA 报错四类高频问题的处理
- 提速与省资源的参数组合,以及不同残基数的预测耗时参考
能力边界:先判断该用哪种模式
先给结论:目标复合物的化学计量(stoichiometry,亚基种类与数量比)已知时,用多聚体模式,已知单体结构也适用;亚基组成未知时(如基因组规模的批量预测),单体模式平均精度更高。
| 对比项 | monomer 单体模式 | multimer 多聚体模式 |
|---|---|---|
| 输入形式 | 单序列 FASTA | 多序列 FASTA,每个亚基一个独立条目 |
| 适用对象 | 单链结构;亚基组成未知时的批量预测 | 同源多聚体、异源多聚体、化学计量已知的多亚基复合物 |
| 数据库与硬件门槛 | 标准数据库即可;reduced_dbs 预设需 8 核、8 GB RAM、600 GB 磁盘 | 额外需要下载 UniProt 与 PDB seqres 数据库;大型复合物显存占用更大 |
| 输出差异 | 默认输出 pLDDT,monomer_ptm预设额外提供 PAE | 固定输出 pLDDT、pTM、PAE 三项指标 |
当前默认的多聚体权重为 v2.3.0(multimer_v3),相对旧版的关键变化集中在大复合物能力上:训练数据截止日由 2018-04-30 延到 2021-09-30(数据量约多 30%,冷冻电镜结构 4 倍、超过 2000 残基的大结构 2 倍),训练裁剪从 384 残基扩到 640 残基,训练时最大链数由 8 提升到 20,5 个多聚体模型中有 3 个的 MSA 序列上限从 1,152 提到 2,048。这些数字出自 v2.3.0 技术说明,直接收益是 2000 残基以上大型复合物的预测精度明显改善。
三步拿到结构
第一步:写对复合物 FASTA 输入
规则只有一条:每个亚基一个独立 FASTA 条目(独立>头行),条目数等于亚基数,条目顺序对应化学计量。
同源多聚体,3 个相同序列的拷贝(以下序列仅为示意):
>sequence_1 MAEQVALISHRFSPAVEERANTMQQMANSLKAVQ >sequence_2 MAEQVALISHRFSPAVEERANTMQQMANSLKAVQ >sequence_3 MAEQVALISHRFSPAVEERANTMQQMANSLKAVQ异源多聚体,A2B3 化学计量(2 条 A + 3 条 B):
>sequence_1 MAEQVALISHRFSPAVEERANTMQQMANSLKAVQ >sequence_2 MAEQVALISHRFSPAVEERANTMQQMANSLKAVQ >sequence_3 AEGTQVLTTRRLGQDEADMAEDAVNNGM >sequence_4 AEGTQVLTTRRLGQDEADMAEDAVNNGM >sequence_5 AEGTQVLTTRRLGQDEADMAEDAVNNGM需要连续预测多个目标时,用逗号分隔多个 FASTA 路径,脚本会依次运行:--fasta_paths=multimer1.fasta,multimer2.fasta。
第二步:跑多聚体预测命令
多聚体与单体的主命令只差一个--model_preset=multimer:
python3 docker/run_docker.py \ --fasta_paths=multimer.fasta \ --max_template_date=2022-01-01 \ --model_preset=multimer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/multimer_output单体预测换成对应预设即可:
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/monomer_output特别大或困难的复合物,参照 CASP15 的推理设置把每模型种子数提到 20:
python3 docker/run_docker.py \ --fasta_paths=large_complex.fasta \ --model_preset=multimer \ --num_multimer_predictions_per_model=20 \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/large_output关键参数逐行解释:
| 参数 | 作用 | 默认值 / 建议 |
|---|---|---|
--model_preset | 选模型:monomer/monomer_ptm/multimer | 复合物目标用multimer |
--num_multimer_predictions_per_model | 每个模型的种子数,多聚体默认 5(5 个模型共 25 次预测) | 求快设 1,困难目标设 20 |
--db_preset | MSA 数据库预设:reduced_dbs或full_dbs | 默认full_dbs |
--enable_gpu_relax | 松弛(relax)步骤是否放 GPU 跑 | 默认true,更快但可能不够稳定 |
--max_template_date | 模板检索限定在指定日期之前发布的结构 | 按需设置,避免用到“未来”模板 |
--data_dir/--output_dir | 数据库目录 / 输出目录 | 输出目录缺省为/tmp/alphafold |
subbatch_size是另一个调节旋钮:位于 alphafold/model/config.py 的global_config,默认值为 4,官方说明在 A100 上增大该值可提升小结构的预测速度。
第三步:认识输出目录
输出按目标名存为--output_dir下的子目录,结构与 README 描述一致:
<output_dir>/<target_name>/ features.pkl # 输入给模型的特征(NumPy 数组) ranked_{0,1,2,3,4}.pdb # 按置信度排序的结构,ranked_0.pdb 置信度最高 ranking_debug.json # 排序所用 pLDDT 分数及其到原始模型的映射 relax_metrics.json # 松弛指标,如残余几何冲突 relaxed_model_{1..5}.pdb # 经 Amber 松弛后的结构 unrelaxed_model_{1..5}.pdb # 模型原始输出、未松弛的结构 result_model_{1..5}.pkl # 模型原始输出:pLDDT、pTM、PAE 等 timings.json # 管线各阶段耗时 msas/ # MSA 检索结果(bfd_uniref_hits.a3m 等)每个结构的 pLDDT 同时写进了 PDB 文件的 B-factor 字段——注意它和普通 B-factor 含义相反:数值越高越可靠。
读懂置信度:pLDDT、pTM、PAE 哪个算可信
三项指标都在result_model_*.pkl(模型直接产出的 NumPy 字典)里,分工各不同:一个看局部残基是否可靠,一个看整体结构是否可靠,一个看两两残基的相对定位是否可靠。
- pLDDT(predicted LDDT,逐残基预测置信度):取值 0–100,100 最可信。低于 50 的区域通常视为结构不可靠,高于 80 一般算高置信。查
result_model_*.pkl的plddt字段,或直接在 PDB 的 B-factor 列查看。 - pTM(predicted TM-score):标量,越高越好,评估整体结构的可靠性。多聚体模式下它反映整个复合物装配的可信度——若各链 pLDDT 都不低而 pTM 偏低,多半是亚基整体排布有问题。查
ptm字段。 - PAE(predicted aligned error,预测对齐误差,衡量两残基相对位置可信度的矩阵):形状为 [N_res, N_res],0 最可信,上限 31 Å(config.py 中
max_error_bin=31)。跨亚基的块是判断复合物的关键:对角块之外的块偏高,说明即便两条链各自折叠正确,它们之间的相对位置也不可信。查predicted_aligned_error字段。
可视化方面,官方 教程 notebook 自带 pLDDT/PAE 绘图代码(Colab 可直接运行);查看三维结构与亚基界面建议用 PyMOL 或 ChimeraX 载入 PDB,按 pLDDT 的 B-factor 着色,低置信区域一目了然。
翻车急救:四类高频问题
⚠️ 显存不足怎么办
- 症状:大型复合物在结构预测阶段报 CUDA out of memory,或进程被系统杀掉。
- 可能原因:模型显存占用随残基数快速上升——5,000 残基的纯预测耗时超过 5 小时,多聚体模型同长度下比单体占用更大。
- 处理动作:先把
alphafold/model/config.py的global_config.subbatch_size从默认 4 往下调;仍不够再把复合物拆成亚基分别预测,或改用--db_preset=reduced_dbs降低 MSA 规模。
⚠️ 低置信度区域怎么办
- 症状:
ranked_0.pdb中大片区域 pLDDT<50,对应 PAE 对角块数值也高。 - 可能原因:序列本身含固有结构无序区、亚基化学计量给错、或 MSA 证据不足。
- 处理动作:先核对 FASTA 中亚基数与顺序是否符合已知复合物;困难目标加种子
--num_multimer_predictions_per_model=20;单体目标可换--model_preset=monomer_ptm,用它输出的 PAE 矩阵辅助判断哪些区域是无序区。
⚠️ 亚基排列异常怎么办
- 症状:各链 pLDDT 高,但 pTM 很低、PAE 非对角块高,结构中各亚基相对位置不合理。
- 可能原因:模型对亚基间相对定位置信度低,或输入化学计量与实际复合物不符。
- 处理动作:确认 FASTA 亚基顺序与已知复合物一致(A2B3 就按 A、A、B、B、B 写);用 参数下载脚本 重新拉取 v2.3.0 权重,排除旧版参数;仍不理想时,结论按“链内可靠、链间排布存疑”处理,不要直接采信亚基间相对位置。
⚠️ MSA 阶段慢或数据库报错怎么办
- 症状:流程长时间卡在 MSA 检索,或 MSA 工具抛出外部报错。
- 可能原因:完整数据库体量过大(下载 556 GB、解压后 2.62 TB),或数据库目录读写权限不足。
- 处理动作:改用缩减库
scripts/download_all_data.sh <DOWNLOAD_DIR> reduced_dbs重新下载,运行命令配--db_preset=reduced_dbs;同时检查数据库目录权限(官方 README 建议对目录执行chmod 755)。
提速与省资源:参数组合与耗时参考
💡 原则一句话:时间大头在 MSA 检索与结构预测网络,前者用数据库预设控制,后者用种子数和子批大小控制。常用组合如下。
| 参数 / 设置 | 效果 | 适用场景 |
|---|---|---|
--db_preset=reduced_dbs | 8 核、8 GB RAM、600 GB 磁盘即可运行,MSA 更快 | 中小目标、首次试跑 |
--db_preset=full_dbs | 全套数据库,MSA 质量最高 | 精度优先的目标 |
--num_multimer_predictions_per_model=1 | 总预测次数从 25 降到 5,约 5 倍提速 | 快速筛查、调参探索 |
--enable_gpu_relax=false | 松弛改在 CPU 上跑,更慢但更稳定 | 大型复合物对松弛稳定性要求高时 |
--use_precomputed_msas=true | 复用上一次运行的 MSA | 同一序列反复调参(要求输出目录结构与序列不变) |
global_config.subbatch_size(默认 4) | 调大可加速 A100 上小结构预测 | A100 跑小序列时 |
耗时参考为单张 A100、不含松弛、3 次 recycle、不计 MSA 与模板检索(加--benchmark=true运行后,实测耗时记录在timings.json):
| 残基数 | 预测耗时(秒) |
|---|---|
| 100 | 4.9 |
| 500 | 29 |
| 1,000 | 96 |
| 2,000 | 450 |
| 5,000 | 18,824 |
耗时随长度近指数增长:2,000 残基的复合物是分钟级,5,000 残基超过 5 小时,排机器时间时按这个量级规划。
收尾:记住三件事
模式选择看化学计量是否已知;跑完先读ranked_0.pdb,再对照 pLDDT、pTM、PAE 判断哪些区域可信;困难目标优先加种子数,再动其他参数。完整参数清单见 README,模型升级细节见 v2.3.0 技术说明,数据库一键获取用 数据下载脚本,想免本地环境试跑可用官方 教程 notebook。
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考