从一段氨基酸序列到三维结构:AlphaFold蛋白质结构预测上手实战
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
当你手里只有一段氨基酸序列,却需要知道它在空间里怎么折叠时——X射线晶体学等实验手段昂贵且以月计,而 AlphaFold 蛋白质结构预测只需要一个 FASTA 文件和一块 GPU,就能还给你一份带原子坐标的三维结构。这个开源项目就是 AlphaFold v2 的官方推理管线:输入序列,它完成多序列比对、模板检索、神经网络推理和物理精修,最后输出一组 PDB 结构文件。下面按「准备 → 运行 → 判读 → 排障」的顺序,把整条链路走一遍。
能力速览:30 秒建立合理预期
动手装环境之前,先明确它能做什么、不做什么:
- 核心能力是单链蛋白(monomer)的三维结构预测,蛋白质-蛋白质复合物也能做,但 multimer 属于实验性质,官方明确说不如单链稳定
- 每个预测都自带置信度:逐残基的 pLDDT,部分模型还会给 pTM 和 PAE,后面会教怎么看
- 只支持 Linux 加 NVIDIA GPU,没有 Windows 或 Mac 版本;显存越大能预测的蛋白越长
- 它不预测配体结合、不做构象动态分析,输出仅用于理论建模,不能用于临床
- 全套遗传数据库解压后约 2.62 TB,磁盘规划要放在第一步考虑
最后一点最容易被低估。官方 README 写明完整数据库下载量约 556 GB、解压后 2.62 TB;如果空间紧张,reduced 版(reduced_dbs)只需约 600 GB 磁盘,后面跑的时候加一个参数就行。
落地准备:环境、依赖、数据一次到位
硬件底线是 Linux 系统、一块较新的 NVIDIA GPU(官方在 A100 上做的性能基准)、SSD 存储——序列检索阶段 I/O 很密集,机械盘会明显拖慢 MSA(多序列比对,就是把同源序列对齐成一张矩阵,是预测精度的主要来源)。软件侧需要 Docker、NVIDIA Container Toolkit(让容器能直通 GPU)和 aria2c(并行下载工具)。
三步装好
第一步,拿代码和数据。克隆仓库后,用官方脚本一次性拉下全部遗传数据库和模型参数:
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>不要放在仓库目录里面,否则几 TB 的数据库会被拷进 Docker 构建上下文,镜像构建会慢到怀疑人生- 556 GB 的数据量,务必放后台跑,别守在终端前
- 磁盘不够就改成
scripts/download_all_data.sh <DOWNLOAD_DIR> reduced_dbs下载精简版,但运行时必须配套加--db_preset=reduced_dbs - 数据目录要有完整读写权限,否则 MSA 工具会以各种莫名其妙的报错方式提醒你
第二步,构建镜像并验证 GPU。
docker build -f docker/Dockerfile -t alphafold . docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi第二条命令应当列出你的 GPU;列不出来说明 NVIDIA Container Toolkit 没配好,先解决它再往下走。构建时若遇到 CUDA 源的 GPG 签名报错,README 指向了一个已知的 workaround,按提示处理即可。
第三步,安装启动器依赖。宿主机上执行pip3 install -r [docker/requirements.txt](https://link.gitcode.com/i/2461fa81779dd912bebff5f463a3c4e8)(建议放虚拟环境里,免得污染系统 Python),再确认输出目录(默认/tmp/alphafold)存在且可写。
核心工作流:从 FASTA 到 PDB
第 1 步:准备输入序列
用 FASTA 格式写下氨基酸序列。单链就是一个序列;想预测复合物的话,把多条序列放进同一个文件——一个文件里有多条序列,工具就会按 multimer 输入处理。同型寡聚体(比如三条相同序列)也照样写三份就行。
第 2 步:发起预测
python3 docker/run_docker.py \ --fasta_paths=your_protein.fasta \ --max_template_date=2022-01-01 \ --model_preset=monomer \ --db_preset=reduced_dbs \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_output几个关键参数值得记住:
--model_preset选模型:monomer(默认,CASP14 原始配置)、monomer_ptm(带 pTM 置信度头)、multimer(复合物,需要额外下载 UniProt 和 pdb_seqres 数据库)--db_preset是速度/质量权衡:reduced_dbs只需 8 vCPU、8 GB 内存、600 GB 磁盘,full_dbs则是 CASP14 的完整数据库配置--max_template_date限制模板结构的最晚发布日期,主要用于复现历史基准,日常预测可以不设--models_to_relax控制精修范围:best(默认,只精修置信度最高的)、all或none--gpu_devices指定用哪几块卡,默认吃满所有可见 GPU
第 3 步:内部在跑什么
一次预测实际分四段:先用 JackHMMER 等工具去 BFD、MGnify、UniRef90 里搜同源序列并拼成 MSA——进化信息是精度的主要支柱;再到 PDB 里找结构上已知的相似模板;然后 5 个独立模型各自推理出一份结构;最后置信度最高的那份送进 Amber 力场做能量最小化,修掉局部立体化学问题。
时间预期(单块 A100,不含 MSA 和模板搜索):100 残基约 5 秒,500 残基约 30 秒,1000 残基约 1.5 分钟,2000 残基约 7.5 分钟,4000 残基超过 1.5 小时。长蛋白的 MSA 检索时间往往比推理本身还长,别盯着 GPU 利用率等。
结果判读:不只看结构,还要看置信度
跑完后,--output_dir下会生成一个以靶名为名的子目录:
| 文件 | 内容 |
|---|---|
ranked_0.pdb~ranked_4.pdb | 按置信度排序的 5 个预测,ranked_0最优 |
unrelaxed_model_*.pdb | 模型原始输出,未经精修 |
relaxed_model_*.pdb | 经过 Amber 力场精修的结构 |
result_model_*.pkl | 模型原始张量:pLDDT、distogram,pTM 模型还有 ptm 和 PAE |
msas/ | 各检索步骤产出的 MSA 中间文件 |
features.pkl | 喂给模型的输入特征数组 |
timings.json等 | 各阶段耗时、排序依据、精修后的违规统计 |
pLDDT 分数怎么看
pLDDT(0~100,越高越可信)存在输出 PDB 的B 因子字段里。注意它和晶体学 B 因子的方向正好相反——那里越高代表越无序,所以拿去做分子替换之类下游任务时要格外小心。
| pLDDT 区间 | 含义 | 典型位置 |
|---|---|---|
| > 90 | 极高置信 | 核心结构域、进化上高度保守的区域 |
| 70–90 | 高置信 | 大多数有功能的结构域 |
| 50–70 | 中等置信 | 连接肽、保守性较弱的区域 |
| < 50 | 低置信 | 可能是本征无序区,结论需谨慎 |
如果整条链的平均 pLDDT 都压在 50 以下,先怀疑序列本身或 MSA 里同源证据不足,而不是急着否定结构。
PAE 和 pTM 怎么看
这两个只有monomer_ptm和multimer模式才会输出。PAE 是一个 N×N 矩阵,记录任意两个残基之间的预测对齐误差:对角线块高说明域内部还算稳,非对角线块高则说明两个结构域的相对摆位不可信——多结构域蛋白判断「整体形状对不对」,主要看它。pTM 是单个标量,对标 TM-score,用来评估整体结构域的打包是否可信。
这段动图来自 CASP14 竞赛:左侧 RNA 聚合酶结构域 GDT 90.7,右侧粘附素尖端结构域 GDT 93.3,可以看出预测结果(蓝)与实验结构(绿)的贴合程度。
排障与调优:六个常见卡点
现象一:容器里nvidia-smi看不到 GPU。原因:NVIDIA Container Toolkit 未安装或未正确配置。 解法:先在宿主机跑docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi做隔离验证,仍不可见就重装 Toolkit 并检查 Docker 守护进程配置。
现象二:Docker 镜像构建异常慢。原因:下载目录是仓库的子目录,大数据库被拷进了构建上下文。 解法:把数据目录挪到仓库外再重新构建。
现象三:MSA 阶段抛出莫名其妙的报错。原因:数据目录读写权限不足。 解法:给数据目录及其子目录授予足够权限,例如chmod 755 -R <DOWNLOAD_DIR>,再重跑。
现象四:大蛋白跑不完或 OOM。原因:推理时长随链长增长很快,4000 残基在 A100 上超过 1.5 小时,显存同样有上限。 解法:先确认 GPU 显存余量;超长序列可考虑按结构域拆分预测;reduced_dbs能省掉 MSA 阶段的大部分等待。
现象五:同一条序列两次跑出不同结果。原因:模型本身存在跨运行的随机方差,近期新沉积序列多的靶点(比如 CASP14 的 T1064)尤其明显。 解法:这是预期行为而非故障,默认的 5 模型集成就是在对冲它;需要复现特定结果时,固定数据库版本和--max_template_date。
现象六:换了参数想快速试错,每次都从头跑。原因:MSA 检索占了大头。 解法:加--use_precomputed_msas=true复用首次运行算好的 MSA,前提是序列不变且输出目录结构还在。
延伸方向
- 复合物预测:AlphaFold-Multimer 需要额外下载 UniProt 和 pdb_seqres 两个库,默认每个复合物跑 25 次预测,时间紧张可把
--num_multimer_predictions_per_model设为 1,用少量精度换速度 - 技术细节:v2.3.0 的模型架构与推理流程见技术笔记,仓库还附带一套完整的 CASP15 基线预测可作对照
- 轻量体验:不想搭完整环境时,可以先用 Colab 简化版 notebook 跑通流程,熟悉输入输出后再上完整管线
许可方面提醒一句:代码是 Apache 2.0,模型参数是 CC BY 4.0,发表结果时记得引用 AlphaFold 原文,用了 multimer 的话把对应论文也加上。
接下来该做什么
- 核对机器是否达标:Linux + NVIDIA GPU + 600 GB(精简)或 2.6 TB(完整)的 SSD 空间
- 装好 Docker、NVIDIA Container Toolkit、aria2c
- 克隆仓库,数据目录放在仓库外,后台启动下载脚本
- 构建镜像后先用 nvidia-smi 验证 GPU
- 选一个 200 残基左右的短蛋白,用
monomer+reduced_dbs跑第一次预测 - 拿到结果后重点看
ranked_0.pdb的 pLDDT 分布,能读懂置信度之后再挑战复合物和大蛋白
能独立判读一次预测输出,这套工具就算入门了——剩下的功夫,都在你打算用这个结构做什么研究上。
【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考