想象你从宜家买回一套书架,纸箱里是一堆木板、螺丝和销钉,外加一张满是箭头的安装说明书。只要按照说明书一步步拼装,你就能得到一个稳稳当当的书架——而不是一堆只能躺在地上的木头。在生物体内,蛋白质也在经历类似的“组装”:一条由氨基酸串成的长链,在合成后几分钟内就自发折叠成特定的三维形状,而这个形状决定了它“能不能干活”——是当抗体、当酶,还是当运输蛋白。如果折叠出错,就可能导致阿尔茨海默病、帕金森病等一系列问题。 过去几十年,科学家一直想破解“蛋白质如何从一维序列折叠成三维结构”这个谜题,但实验方法既慢又贵。2020年,DeepMind 推出的 AlphaFold2 横空出世——它就像一个读了全球所有“宜家拼装经验帖”的老师傅,看一眼零件清单,就能以极高的准确率预测出成品书架的样子。这篇文章将带你认识这位“老师傅”的大脑:它如何阅读进化信息(MSA)、如何记录零件间的关系(Pair 表示)、如何动手组装(结构模块),以及它交出的成品上贴着什么“质检标签”(pLDDT 与 PAE)。读完你不仅能理解原理,还能亲手用工具跑一次预测。

岗位关联

AlphaFold2 是 AI 蛋白质结构预测的里程碑,掌握它的原理与使用流程,能让你在药物靶点解析、酶工程改造等真实工业场景中快速获得可靠结构,是 AI 落地生命科学的必备技能。

目录
  1. 可视化演示
  2. 背景与意义
  3. Evoformer核心
  4. 结构模块
  5. 置信度评估
  6. 使用全流程
  7. 工具与部署
  8. 应用与展望
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示AlphaFold2核心架构Evoformer双轨注意力、3D蛋白质折叠预测过程及pLDDT置信度评估三大机制。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Evoformer双轨注意力架构 MSA轨道多序列对齐提取进化共变异信息 Pair轨道残基对距离矩阵更新空间约束 Evo=MSA↔Pair(attn) 双轨交替注意力迭代更新结构信息

背景与意义

把蛋白质想象成一套宜家书架的零件包,装着几百个氨基酸“零件”,它们按照一定的顺序编号连成一条长链。这一长串“数字编号”就是氨基酸序列。有趣的是,大自然在进化中淘汰了那些装不出来或装完就垮的“设计”,留下来的序列大多只需要一个确定的组装方案——也就是三维结构。这个“一个编号顺序对应一个成品形状”的规律,被总结为分子生物学的基本定律:序列决定结构,结构决定功能。

但这个“组装过程”极其微妙。蛋白质在细胞内并非由某个装配工逐件安装,而是靠分子间力自发折叠。想要真正看清它,实验上要么用 X 射线晶体学把蛋白“冻”成晶体,要么用冷冻电镜拍下它的样子——这些方法成本高、耗时长,就像想检验书架是否牢固就必须先把整套家具买回家亲手拼一遍。2018 年举办的 CASP 竞赛,相当于一场“家具组装大赛”,各路 AI 与算法同台竞技;2020 年 AlphaFold2 以接近实验的准确度夺冠,宣告了“看说明书就能可靠预测成品”的时代到来。

如果用热力学语言描述折叠,蛋白质会自发选择能量最低的形态:

所以,AlphaFold2 的突破并非“学会用肉眼看零件”,而是从亿万年进化的“组装经验帖”中提炼规律。它无法替代实验,但能把过去数年的工作压缩到几分钟——就像你拿到一本写满前辈血泪经验的安装指南,第一步就避开了所有踩坑点。

ΔΔGfold=Gfolded−Gunfolded\displaystyle \Delta\Delta G_{fold}=G_{folded}-G_{unfolded}
  1. 折叠态的自由能$G_{folded}$ 表示蛋白质处于正确三维结构时的吉布斯自由能。折叠态通常紧凑、稳定,原子间形成了大量有利的接触,因此能量较低。
  2. 非折叠态的自由能$G_{unfolded}$ 表示蛋白质还是一条散乱长链时的自由能。此时分子内相互作用少、构象熵大,但整体能量通常高于折叠态。
  3. 差值的意义$\Delta\Delta G_{fold}$ 是折叠前后自由能的差值,为负值说明折叠是自发过程。AlphaFold2 本质上就是在海量序列中“学习”哪些折叠方式能使这个能量更低,从而直接输出结构。

Evoformer核心

当你拿到那套书架时,如果你只盯着编号顺序,很难看出哪个螺丝应该先拧。聪明的师傅会打开手机,看全球用户上传的“同款书架改造帖”——有人换了加长螺栓,有人把隔板装反了又纠正回来。这些帖子里蕴含的共性规律,就是给师傅的“进化信息”。AlphaFold2 的 Evoformer 正是这样一位“刷帖高手”:它把同源蛋白的多条序列放在一起比对,构成 MSA(多序列比对),相当于把几百个“邻居的组装方案”排成一张表。MSA 里的每一行是一条同源序列,每一列对应同一个氨基酸位点,列与列之间的保守与变异,暗藏着哪些位置必须严丝合缝、哪些位置可以自由改动。

与此同时,Evoformer 手里还捧着一个笔记本,叫 Pair 表示:它专门记录“第 i 个零件和第 j 个零件之间应该保持多少距离、什么朝向”。序列上的两个氨基酸哪怕隔着十万八千里,在三维空间里也可能近在咫尺,所以笔记本上每个格子都是一条“关系备忘”。MSA 表(经验帖)和 Pair 笔记本之间会反复交换信息——师傅看到“某处保守性极强”就想在笔记本上补一句“这里必须装紧”,看到“两个零件距离很近”又回到经验帖里确认“是不是大家都这么干”。这种双向更新的机制,是 Evoformer 比早期方法厉害的核心原因。

Evoformer 中承担信息交换的引擎是注意力机制。它让模型在阅读经验帖时不必逐字逐句,而是根据“当前重点”自动锁定高相关的列:

当一个 Evoformer 块完成“读帖 + 记笔记”后,输出依然是一张更新过的 MSA 表和一本更新过的 Pair 笔记本。模型会把几十个这样的块串起来反复精读,越往后,MSA 表和 Pair 笔记中的信息越凝练、越接近“组装行动方案”。

Attention(Q,K,V)=softmax(QK⊤dk)V\displaystyle Attention(Q,K,V)=softmax\left(\frac{QK^{\top}}{\sqrt{d_k}}\right)V
  1. 查询与键的点积$QK^{\top}$ 计算“当前残基的查询”与“所有位置键”的相似度。可以理解为师傅提问“谁跟我现在要装的接口有关?”,每个零件给出一个相似度分数。
  2. 缩放除以 $\sqrt{d_k}$(维度的平方根)是为了防止分数过大导致 softmax 进入饱和区,让注意力分布更均匀、梯度更稳。
  3. softmax 归一化将相似度分数变成总和为 1 的权重,相当于把“哪些帖子最值得看”排了个优先级。
  4. 加权求和用这些权重去加权 $V$(值向量),把所有相关位置的信息揉成一个新的表达。师傅扫完帖子,心里对“这个部位该怎么装”有了更清晰的判断。

结构模块

经验帖读完了、笔记记满了,就该动手装了。结构模块(Structure Module)就是那位“把图纸变成成品”的安装师傅。它拿到 Evoformer 输出的残基表示后,要为每一个氨基酸位置生成一组三维坐标——相当于决定每块木板在空间中的位置和朝向。这里有个关键约束:组装行为本身不能因为“把书架转了 90 度”而改变。你抬着书架换个方向摆,螺丝间距和牢固程度不变,师傅的决策也应该不变。这种性质叫等变性(equivariance),因此结构模块使用专门的等变注意力机制:二维平面里想象怎么挪动都不影响部件之间的相对误差,三维空间里旋转整个蛋白骨架,预测结果也会跟着同步旋转。

组装不是一步到位的。AlphaFold2 让师傅“先粗略摆,再反复微调”:每一轮都基于当前的坐标和残基特征,预测每个原子应该往哪边挪一小步,更新坐标后再进入下一轮。经过若干轮迭代,散乱的链条逐渐收敛成一个紧凑、合理的三维骨架。整个过程有点像一个新手装书架:先把所有隔板虚靠在立柱上,再逐层校正间距,直到所有插销都对准。

那怎么衡量“装得好不好”呢?训练阶段,AlphaFold2 使用的核心损失是 FAPE(Frame Aligned Point Error),它像一把卡尺,量的是“预测坐标和真实坐标之间的误差”,但聪明之处在于它是平移不变的:

用一句话回扣:结构模块就是那个把笔记本里的关系落实到三维空间的安装工,它一边装、一边量、一边改。那些花哨的等变注意力和迭代精化,都是为了达到同一目的——让最终立在客厅里的书架,和说明书上的示范图严丝合缝。

LFAPE=1N∑i,tmin⁡(∥(x^i,t−x^T,0)−(xi,t−xT,0)∥,c)\displaystyle L_{FAPE}=\frac{1}{N}\sum_{i,t} \min\left(\left\|(\hat{x}_{i,t}-\hat{x}_{T,0})-(x_{i,t}-x_{T,0})\right\|, c\right)
  1. 参考系对齐$\hat{x}_{T,0}$ 和 $x_{T,0}$ 分别表示预测与真实结构中某个参考残基(通常取残基 0)的坐标。用每个原子坐标减去这个参考点,相当于把整个结构“锚定”到同一原点,书架不管怎么平移,测量结果都不变。
  2. 残差范数$\left\|(\hat{x}_{i,t}-\hat{x}_{T,0})-(x_{i,t}-x_{T,0})\right\|$ 计算的是第 $i$ 个残基在第 $t$ 个时间步(迭代轮次)中,预测坐标与真实坐标在校正参考系后的欧氏距离。这就是“卡尺读数”。
  3. 截断$\min(\cdot, c)$ 把超过截断阈值 $c$ 的误差拉回常数。因为预测初期的坐标很离谱,直接放大误差会让梯度爆炸;截断后模型先学会粗装,再精修。
  4. 求平均$\frac{1}{N}\sum$ 把所有残基、所有迭代步的截断误差取平均,得到一个全局的“装配误差分”,作为反向传播的优化目标。

置信度评估

书架装好后,老师傅会在每个螺丝孔旁边贴一张质检小贴纸:绿色代表“这里严丝合缝,放心承重”,黄色代表“基本可用但别放太重”,红色则意味着“建议剪掉重装”。AlphaFold2 输出的每个残基也有这样一张贴纸,名叫 pLDDT(预测的 lDDT 分数),取值范围 0 到 100,数值越高代表模型对该残基位置的预测越有把握。完整结构里的 α-螺旋和 β-折叠芯子通常绿意盎然,而两端松散的 loop 区常常黄红相间——就好像书架的背板接缝处总是装得牢,而装饰条的位置就随意多了。

但“单个零件装得准”还不够,你还会关心“两个零件之间会不会互相卡住”。PAE(预测对齐误差)矩阵就是一张残基对之间的“误差地图”:第 i 行第 j 列的值表示“如果我们以残基 i 为基准去对齐结构,残基 j 的位置大概率会偏多少埃(Å)”。这张地图对判断结构域之间的相对方位特别有用——两个结构域可能各自都折叠得很好(pLDDT 高),但它们之间的接头怎么摆,PAE 会诚实地告诉你误差可能很大。

真正会读图的人,会把两张“质检标签”结合起来使用。pLDDT 低于 50 的区域通常不参与下游对接分析;PAE 显示出锯齿状的高误差条纹,说明结构域间相对方位不可靠;而当 pLDDT 整体高于 90、PAE 低平,你就可以大胆地把这个结构交给分子对接软件去跑虚拟筛选。AlphaFold2 的置信度指标背后是一个经过校准的分类头:

回到书架的比喻:你不会因为一张贴纸是绿色的就整面墙都靠它承重,同样,聪明的研究者会先看 pLDDT 找到“可放心装重物”的核心区域,再看 PAE 确认“柜门和柜身是不是真的对齐了”。这套质检体系,让 AlphaFold2 的输出不再是“一个好看的模型”,而是“一份自带可信度说明的结构报告”。

pLDDT≈100×1N∑iI(∣dpred,i−dtrue,i∣<0.5 A˚)\displaystyle pLDDT \approx 100 \times \frac{1}{N}\sum_{i} I\left(|d_{pred,i}-d_{true,i}| < 0.5\,\text{Å}\right)
  1. 残基距离对比$d_{pred,i}$ 与 $d_{true,i}$ 分别表示预测结构和真实结构中第 $i$ 个残基与其邻居的距离。模型训练时拿预测结构与实验结构对比,统计这些距离差。
  2. 打分阈值$I(\cdot)$ 是指示函数,当距离差小于 0.5 Å 时记 1 分,否则记 0 分。这相当于“卡尺卡进半个埃,就算合格”。
  3. 取平均并映射$\frac{1}{N}\sum$ 得到合格率后,再乘以 100 映射到 0–100 的分数区间,这就是 pLDDT 的雏形。

使用全流程

拿到工具和图纸后,真正动手组装也有一套标准流程。第一步是准备“零件清单”,也就是目标蛋白质的氨基酸序列。你只需要 FASTA 格式的一行字母,比如一个 300 个残基的酶序列;AlphaFold2 会用它去公共数据库里搜索同源序列,构建 MSA。MSA 的质量直接影响预测精度——就像你搜到的“同款书架改造帖”越多、越多样,师傅的把握就越大。搜索过程由 JackHMMER 等工具完成,默认会进行多轮迭代,直到找不到新的同源序列为止。如果目标蛋白几乎没有已知同源物,MSA 深度不足,预测质量就会明显下滑,这一点下单前要有心理准备。

第二步是运行推理。你可以选择在 ColabFold 网页上粘贴序列,也可以在自己的 GPU 服务器上运行本地版。AlphaFold2 会完成“读帖 + 组装 + 贴标签”的全过程:Evoformer 编码进化信息,结构模块生成坐标,最后输出多个模型(通常是 5 个)的预测结果,每个模型还带一个预测排名分数。第三步就轻松多了:下载结果。你得到的核心文件是一个 PDB 格式的三维坐标文件,里面每个原子的 B-factor 列实际上存储的是对应残基的 pLDDT 分数——这就像书架的每个螺丝上都贴好了质检标签,连同说明书一起打包交到你手里。

最后是结构分析。你打开 PyMOL 或 ChimeraX,按 B-factor 上色,一眼就能看出哪段是“绿色承重区”、哪段是“红色悬挑区”。如果要做分子对接或药靶分析,通常只保留高置信度区域;如果两个结构域之间的 PAE 显示相对方位不确定,就要设计更保守的实验方案。AlphaFold2 流程强调一句话:“MSA 是燃料,多模型是保险,置信度是说明书。” 整个流程中 MSA 深度对质量的影响最大:

从输入序列到结构报告,整条流水线已经非常成熟。你不需要理解每一个注意力头,但需要清楚地知道:好的输入、多的同源信息、理智的置信度筛选,三者配合,才能让预测结构真正为你的课题服务。

Neff=∑k11+∑k′≠kI(seqid(k,k′)>τ)\displaystyle N_{eff}=\sum_{k} \frac{1}{1+\sum_{k'\neq k} I\left( seqid(k,k')>\tau \right)}
  1. 序列间相似度$seqid(k,k')$ 表示 MSA 中第 $k$ 条与第 $k'$ 条序列的相同残基比例,阈值 $\tau$ 一般取 0.8,用来判断两条序列是否“实在太像、算重复经验帖”。
  2. 去重权重$\frac{1}{1+\sum I(\cdot)}$ 对每条序列赋予一个权重——被高相似序列“包围”的序列权重低,独树一帜的序列权重高,这相当于经验帖去重,避免师傅被一百条几乎一样的帖子灌水。
  3. 求和$N_{eff}$ 是“有效独立信息量”。数值越大,代表 MSA 越有深度,AlphaFold2 的预测可信度也越高。

工具与部署

对于大多数用户,你现在有三种“拿到书架”的途径。第一种最省心:打开 ColabFold 的网页或 Notebook,粘贴序列,让 Google 的免费 GPU 帮你跑完,通常几分钟到几十分钟就能拿到结构。它内置了精简版的 MSA 搜索和 AlphaFold2 推理流程,相当于“请师傅上门组装”,动手成本几乎为零。第二种是不用跑:直接去 AlphaFoldDB 数据库查询,DeepMind 已经预计算了超过 2 亿个蛋白质的结构,包括人类基因组几乎所有蛋白,相当于宜家已经帮你把常见款式全部装好、摆进展厅,你直接抄走即可。

第三种,是面向企业和深度用户的本地部署。你需要准备一台带 NVIDIA GPU 的服务器,安装 Docker 和 AlphaFold 官方镜像,配置约 2.6 TB 的遗传数据库(包含 BFD、UniRef90、MGnify 等)。运行前先下载数据库、解压、构建 MSA 索引,这个过程往往需要一整天。之后每预测一个蛋白质结构,推理本身只需要几分钟到几小时,具体取决于序列长度。本地部署适合需要高并发、保护私有序列数据、或做大规模蛋白质组扫描的团队。你可以用 AlphaFold 多聚体模式或 ColabFold 的 batch 模式批量处理成百上千条序列。

如果把三种途径比作家具获取方式,那么 AlphaFoldDB 是“去展厅直接搬”、ColabFold 是“在线呼叫师傅”、本地部署则是“自建家具工厂”。对于一条 500 残基的蛋白,本地预测的显存占用大约可以这样估算:

工具的选择没有绝对答案。学生项目用 ColabFold 就够,产品级平台需要本地化部署,而快速查询公开蛋白质结构永远优先查 AlphaFoldDB。记住:工具服务于流程,流程服务于问题,把算力花在真正有假设要验证的蛋白上。

Mbytes≈n2×dpair×4\displaystyle M_{bytes}\approx n^2 \times d_{pair}\times 4
  1. 残基对数量$n^2$ 表示 $n$ 个残基之间所有可能的配对组合。蛋白质结构预测要处理“任意两个残基的关系”,所以复杂度随序列长度呈平方增长。
  2. Pair 表示维度$d_{pair}$ 是每个残基对的隐藏向量维度(AlphaFold 为 128 左右),你可以理解为笔记本上每个格子里要记的内容条数。
  3. 数值精度$\times 4$ 表示每个数值用 4 字节的 float32 存储。这也解释了为什么 1000 残基的蛋白质比 300 残基的需要大得多的显存。

应用与展望

这套“家具组装预测术”正在改变生命科学的工作方式。最典型的应用是药物发现:过去要解析一个药靶蛋白的结构来设计小分子,往往需要数月结晶或冷冻电镜实验;现在研究人员先用 AlphaFold2 拿到靶蛋白的高置信度结构,再结合分子对接虚拟筛选百万级化合物库,大大加速先导化合物的发现。针对难结晶的膜蛋白,预测结构甚至可以辅助设计更稳定的突变体辅助实验解析。在酶工程领域,生产洗衣粉蛋白酶、合成生物学中的关键代谢酶,都能通过 AlphaFold2 预测结构与活性位点的关系,指导定点突变改造,相当于拿到书架图纸后,你还能在图纸上标出“把哪个螺丝换长一点,层板就更结实”。

除此之外,AlphaFold2 也催生了新的科研范式:用大规模结构预测推断蛋白质功能,通过跨物种结构比对发现新的进化关系。但门缝开得再大,阳台仍有关不上的地方。AlphaFold2 的核心局限是它预测的是“最可能的一个静态结构”,而真实蛋白质在溶液中常常像柔软的椅子一样不断晃动,存在多种构象。它也很难处理“孤儿蛋白”——没有任何同源序列可参考的蛋白质;配体、辅因子、翻译后修饰的影响同样不在输入范围内。

未来,人们正在把 AlphaFold2 的能力与分子动力学结合,用预测结构作为起点去模拟构象变化,用 Boltzmann 采样的思想去估计蛋白在不同状态间的分布:

展望未来十年,AlphaFold 这类工具会像搜索引擎一样嵌入每一个分子生物学家的日常工作。它不会取代实验,但会让实验变得更加有的放矢:先预测、再验证、只做那些必要且精妙的实验。毕竟,图纸再准,也不如亲手拧一下螺丝——但有了图纸,你至少知道该往哪儿用力。

p(s)∝exp⁡(−E(s)kBT)\displaystyle p(s)\propto \exp\left(-\frac{E(s)}{k_B T}\right)
  1. 状态能量$E(s)$ 是蛋白质在某个构象 $s$ 下的能量,能量越低的状态越常见,就像书架装得越稳就越不容易散架。
  2. 温度因子$k_B$ 是玻尔兹曼常数,$T$ 是温度。温度越高,系统越能在高能量状态之间跳动,蛋白也显得“越活泼”。
  3. 概率分布$\propto \exp(-E/k_BT)$ 说明构象出现的概率与能量的指数衰减成正比。AlphaFold2 给出静态结构,而结合分子动力学采样,才能画出蛋白真正“跳舞”的样子。

AI 应用场景

药物靶点结构的快速获取

阶段:靶点结构解析 + 虚拟筛选准备

解决的问题:传统靶点蛋白结构依赖 X 射线晶体学或冷冻电镜,膜蛋白难结晶、周期长、费用高;AlphaFold2 可在数小时内提供高置信度预测结构,直接支撑分子对接和虚拟筛选,把“等结构”的瓶颈压缩成“算结构”。

具体案例:某药企针对新冠病毒主蛋白酶(Mpro)开展抑制剂研发,研究者从 UniProt 获取序列后,用 ColabFold 预测结构,pLDDT 核心区高于 90,随后以此为受体对 50 万个小分子进行对接,两周内收敛出 30 个候选化合物进入湿实验验证。

酶工程中活性位点的定点改造

阶段:序列 → 结构 → 突变设计 → 迭代验证

解决的问题:酶改造常靠随机突变加筛选,效率低;AlphaFold2 预测出活性位点口袋结构后,工程师能精确定位底物结合关键残基,用“结构指导 + 小范围突变”代替盲目突变,大幅提高改造成功率。

具体案例:合成生物学团队改造一种塑料降解酶,先用 AlphaFold2 预测野生型酶结构,发现催化口袋边缘一个疏水残基离底物结合位点过近,将其突变为极性残基后,降解活性提升 3.2 倍,整个循环从“预测结构到验证突变”只用了三周。

难结晶蛋白的构象假设生成

阶段:结构预测 + 实验设计辅助

解决的问题:许多转运蛋白构象灵活,实验只拍到其中一个状态,难以解释转运机制;AlphaFold2 的预测结构配合 PAE 矩阵,能提示结构域间可能存在的大尺度相对运动,为设计交联实验或构建稳定构象突变体提供直接线索。

具体案例:某课题组研究人类葡萄糖转运蛋白 GLUT1,AlphaFold2 预测出内向开放构象,PAE 显示两个结构域间的 hinge 区域误差较大,团队据此引入二硫键锁定构象,最终成功解析出新的中间态电镜结构。

Python 演示

python70 行
import mathimport osimport sysimport tempfile  def make_sample_pdb():    lines = ["REMARK  generated sample for AlphaFold2 pLDDT parsing demo"]    for i in range(1, 11):        bf = 50 + 45 * math.sin(math.pi * (i - 1) / 9.0)        x, y, z = float(i), 0.0, 0.0        lines.append(            "ATOM  %5d  CA  ALA A%4d    %8.3f%8.3f%8.3f  1.00%6.2f           C"            % (i, i, x, y, z, bf)        )    return "\n".join(lines) + "\n"  def extract_ca_plddt(pdb_path):    records = []    with open(pdb_path, "r") as fh:        for line in fh:            if not line.startswith("ATOM"):                continue            parts = line.split()            if len(parts) <= 10 or parts[2] != "CA":                continue            try:                resid = int(parts[5])                plddt = float(parts[10])            except ValueError:                continue            records.append((resid, plddt))    return records  def report_structure(records):    if not records:        print("no CA atoms found")        return    total = len(records)    avg = sum(v for _, v in records) / total    low = [(r, v) for r, v in records if v < 70]    print("==== AlphaFold2 结构质检报告 ====")    print("Cα 残基数: %d" % total)    print("平均 pLDDT: %.2f" % avg)    print("高置信度残基数: %d" % sum(1 for _, v in records if v >= 90))    print("中等置信度残基数: %d" % sum(1 for _, v in records if 70 <= v < 90))    print("低置信度残基数: %d" % len(low))    if low:        print("低置信度残基:")        for r, v in low:            print("  residue %4d -> pLDDT %.2f" % (r, v))  def main():    if len(sys.argv) > 1:        pdb_path = sys.argv[1]    else:        fd, pdb_path = tempfile.mkstemp(suffix=".pdb")        os.close(fd)        with open(pdb_path, "w") as f:            f.write(make_sample_pdb())        print("no input file, use built-in sample: %s" % pdb_path)    records = extract_ca_plddt(pdb_path)    report_structure(records)  if __name__ == "__main__":    main()
目的:解析 AlphaFold2 预测的 PDB 文件,用 B-factor 列中的 pLDDT 分数生成结构质量报告,辅助筛选可用的预测区域。
  1. extract_ca_plddt(pdb_path)逐行读 PDB,只保留 ATOM 记录中的 Cα 原子,避免重复计数侧链原子。
  2. parts[2] != "CA"PDB 按空白拆分后,第 3 个字段是原子名,用 CA 筛选 α 碳骨架。
  3. float(parts[10])第 11 个字段是 B-factor,AlphaFold2 在这里写入 pLDDT 分数。
  4. records.append((resid, plddt))保存残基序号与置信度对,order 保持序列顺序。
  5. if v >= 90按 pLDDT 业界惯例划分高置信度(>90),AlphaFold 文档推荐 70 为可靠性分界。
  6. tempfile.mkstemp(suffix=".pdb")没有输入文件时生成示例 PDB,保证脚本可独立运行。

常见误区

误区AlphaFold2 预测的结构都达到实验精度,以后不用再做晶体学和冷冻电镜了。

正解AlphaFold2 预测的是“最可能的静态构象”,而真实蛋白在溶液中动态变化,配体、翻译后修饰、pH 都未被建模。实验结构的价值在于证明特定条件下的真实状态。就像一份标准书架图纸,无法告诉你这个木头在潮湿环境下会不会变形——你需要真的把书架摆进房间观察。

为何常见:CASP 竞赛上 AlphaFold2 对部分靶点达到原子级精度,媒体广泛报道“解决蛋白质折叠问题”,让非专业人士误以为它已覆盖所有生物化学语境。

误区给 AlphaFold2 一条序列,它就用神经网络自己从头想出一个结构,不需要其他信息。

正解AlphaFold2 会先用这条序列去数据库搜索同源序列构建 MSA,MSA 的深度和质量直接影响预测精度。如果搜不到同源序列(孤儿蛋白),预测结果往往不可靠。师傅再厉害,也需要足够的经验帖可读。

为何常见:用户界面只要求粘贴一个 FASTA 序列,后台自动搜索 MSA 的过程被隐藏了,让人误以为“输入只有序列”。

误区蛋白质整体 pLDDT 平均分很高,就认为这个结构的每个部分都能放心用于对接或突变设计。

正解pLDDT 是逐残基的局部置信度。一个结构平均分 85 分,但活性位点 loop 区的 pLDDT 可能只有 45。下游分析必须按残基过滤,并结合 PAE 判断结构域间相对方位误差。

为何常见:报告常给出一个漂亮的平均数字,大家习惯性地拿总分评价质量,忽略了空间分布的细节。

误区本地部署 AlphaFold2 很简单,和跑个图像分类模型差不多,8GB 显存就能玩。

正解完整原生 AlphaFold2 需要下载约 2.6 TB 的遗传数据库,长序列和 MSA 构建对内存、CPU 和磁盘 IO 的要求很高。如果只想快速获得单条结构,ColabFold 是更务实的选择。自己建家具工厂和在线呼叫师傅的成本完全不同。

为何常见:看到 ColabFold 免费网页版很流畅,以为本地部署同样轻量,没意识到数据库与推理环境是两套问题。

误区Evoformer 这个模块一结束,三维坐标就自动出现在输出里。

正解Evoformer 的输出是增强后的 MSA 表示与 Pair 表示,它们仍然只是“笔记”,不是“书架”。真正把氨基酸坐标生成出来的是随后结构模块中的几何注意力与迭代精化过程。

为何常见:讲解架构图时往往把 Evoformer 画得很大,结构模块一笔带过,让人误以为下游只是简单映射。

面试题

Q1. AlphaFold2 的主要输入数据是什么?

单选题 · easy

  • A.蛋白质的氨基酸序列← 正确答案
  • B.蛋白质的电子密度图
  • C.蛋白质的分子量大小
  • D.蛋白质的表达细胞

答案:A。AlphaFold2 的核心输入是氨基酸序列,它用序列去搜索同源信息构建 MSA。电子密度图是冷冻电镜/X 射线的输出而非输入,分子量和表达细胞不包含折叠所需信息,故选 A。

Q2. “序列决定结构”中的“结构”具体指什么?

单选题 · easy

  • A.蛋白质的三维空间构象← 正确答案
  • B.蛋白质的一级序列顺序
  • C.蛋白质的基因启动子区域
  • D.蛋白质的溶液 pH 条件

答案:A。这条定律说的是氨基酸序列决定蛋白质折叠成的三维空间形态。一级序列本身是用来“决定”的输入,不是被决定的结构;基因启动子属于 DNA 层面,pH 是环境因素,故选 A。

Q3. MSA 在 AlphaFold2 中主要提供了什么信息?

单选题 · easy

  • A.同源序列的进化保守信息← 正确答案
  • B.蛋白质的亚细胞定位信息
  • C.蛋白质的翻译后修饰种类
  • D.蛋白质的基因表达丰度信息

答案:A。多序列比对把同源蛋白排列在一起,保守与变异的模式揭示了哪些残基对结构重要,这是 AlphaFold2 预测结构的关键线索。定位、修饰、表达量都不是 MSA 能直接提供的信息,故选 A。

Q4. Evoformer 中两个核心表示分别是什么?

单选题 · mid

  • A.MSA 表示与 Pair 表示← 正确答案
  • B.序列表示与结构表示
  • C.原子表示与残基表示
  • D.语义表示与语法表示

答案:A。Evoformer 维护两个核心表征:MSA 表示记录每条同源序列每个位置的进化信息,Pair 表示记录残基对之间的关系,两者双向更新。B/C/D 的配对都不属于 AlphaFold2 的架构命名,故选 A。

Q5. pLDDT 分数越接近哪个值表示该残基预测越可信?

单选题 · mid

  • A.100← 正确答案
  • B.50
  • C.0
  • D.-100

答案:A。pLDDT 是 0–100 的置信度分数,100 表示模型对该残基位置极有信心,低于 50 通常被认为不可靠。它就像书架的质检标签,颜色越绿越可以放心承重,故选 A。

Q6. FAPE 损失函数主要用于评估什么?

单选题 · mid

  • A.结构坐标的平移不变误差← 正确答案
  • B.氨基酸序列的编辑距离
  • C.神经网络的参数量大小
  • D.预测流程的耗时长短

答案:A。FAPE(Frame Aligned Point Error)先把预测与真实坐标对齐到同一参考系,再计算每个残基的位置误差,因此具有平移不变性。它不关心序列编辑距离、参数量或耗时,故选 A。

Q7. 使用 AlphaFold2 获取蛋白质结构的常见方式包括?

多选题 · mid

  • A.本地 GPU 服务器部署← 正确答案
  • B.ColabFold 云端在线运行← 正确答案
  • C.AlphaFoldDB 直接查询预计算结果← 正确答案
  • D.不借助任何计算仅凭序列手工搭建

答案:ABC。本地部署适合需要批量预测与私有数据的团队;ColabFold 提供免费云端推理;AlphaFoldDB 已存有 2 亿+预计算结构。D 项不符合实际,故选 A/B/C。

Q8. PAE 矩阵主要用来判断什么?

单选题 · hard

  • A.两个残基间的相对位置误差← 正确答案
  • B.蛋白质的分子量大小
  • C.氨基酸的疏水性高低
  • D.基因序列的保守性得分

答案:A。PAE(Predicted Aligned Error)预测的是以某个残基为基准对齐后,另一残基会偏移多少埃,反映了残基对之间的相对方位不确定性,对判断结构域姿态非常关键。分子量、疏水性、保守性都不是 PAE 的内容,故选 A。

Q9. AlphaFold2 目前仍面临的挑战包括以下哪些?

多选题 · hard

  • A.预测动态构象与多状态结构← 正确答案
  • B.计算资源与数据库门槛较高← 正确答案
  • C.孤儿蛋白缺乏同源序列难预测← 正确答案
  • D.完全取代冷冻电镜实验解析

答案:ABC。AlphaFold2 输出静态单结构,难以刻画蛋白在溶液中的多构象动态;完整部署需要大硬盘与 GPU;孤儿蛋白没有 MSA 支持时预测精度下降。它尚未也不可能完全取代实验,故选 A/B/C。

Q10. 关于 Evoformer 在 AlphaFold2 中的角色,正确的说法有哪些?

多选题 · extreme

  • A.用注意力机制融合进化信息← 正确答案
  • B.输出结果直接就是原子坐标
  • C.MSA 表示与 Pair 表示双向更新← 正确答案
  • D.结构模块才负责生成三维坐标← 正确答案

答案:ACD。Evoformer 用自注意力与交叉注意力处理 MSA 和 Pair 信息,两者反复交换并更新。它输出的是增强表示而非直接坐标,三维坐标由后续结构模块生成,故 B 错,选 A/C/D。