首页 / 资讯中心 / 文章详情

AlphaFold2/3方法拆解:蛋白质组学规模应用与实操避坑

AlphaFold2/3方法拆解:蛋白质组学规模应用与实操避坑 ★ FEATURED ARTICLE
做生物信息学这几年要说哪个工具真正改变了我的工作流AlphaFold2算一个后来的AlphaFold3又算一个。它们把“蛋白质结构预测”这项过去让无数人头疼的任务从“偶尔能猜对一个结构域”推进到了“大部分时候能拿到接近实验精度的原子坐标”。这篇文章不打算重复新闻报道里“取得重大突破”那种话而是想实际拆解一下AlphaFold2/3的方法论核心讲讲它们在蛋白质组学规模的应用思路再分享一些我在实际跑预测、解读输出文件时踩过的坑。蛋白质组学是一个很吃结构信息的领域——你手里往往有几千条蛋白质序列和定量数据想解释功能机制第一步就是想知道这些蛋白长什么样、能跟谁结合。过去我们只能挑重点蛋白去做结晶、上电镜耗时长失败率也高。现在结构预测成了第一轮情报来源先算出一个可检验的模型再决定要不要花大力气做实验验证。这篇文章适合这几类人看做蛋白质组学数据分析但对结构预测工具还不够熟的同行刚入门想搞明白AlphaFold输出文件的新研究生以及单纯对深度学习方法怎么解决科学问题感兴趣的朋友。需要先说明的是AlphaFold2和AlphaFold3虽然共享同一个“从序列信息出发预测结构”的大方向但架构思路和应用边界差别相当大。AlphaFold2把单体蛋白质结构预测做到了接近实验的水平AlphaFold3则把能力扩展到了蛋白质复合物、核酸、小分子配体这些更复杂的体系。理解了两代模型的差异你在实际项目中才不会用错工具、误读结果。1. 先想清楚为什么“序列到结构”会让整个行业卡了几十年1.1 序列数据狂奔实验结构却追不上蛋白质本质上是一条由20种氨基酸按特定顺序串成的链。这条链在细胞里会自发折叠成一个精巧的三维结构而几乎所有功能——催化、结合、信号传导、免疫识别——都依赖于这个三维形状。上世纪中叶的经典研究已经确认很多蛋白质在合适条件下仅凭序列就能决定自己的空间构象也就是说“序列→结构→功能”这条因果链里结构处在非常核心的位置。可问题也出在这我们太容易得到序列了测序技术的进步让基因序列数据以指数级增长但结构却只能靠实验来解。X射线晶体学要长出能衍射的晶体冷冻电镜要纯化出高质量的样品核磁共振还要受限于蛋白分子量大小。这些工作既贵又慢而且大量膜蛋白、具有天然柔性区域的蛋白根本无法用传统手段拿到高分辨率结构。这造成了一种很不对等的局面序列数据在飞速膨胀实验结构数据的增量却远远追不上。结构生物学里经常说的“序列-结构鸿沟”说的就是这么回事。所以很自然有人想能不能直接从序列把结构算出来听着很美好实际问题极其凶险。物理上蛋白质折叠是一个寻找全局自由能最低点的过程但构象空间的维度高得离谱。一个300残基的小蛋白理论上可尝试的骨架构象数量级比可观测宇宙中原子的总数还大。光靠分子动力学从零模拟折叠哪怕算力再翻几百倍也不大可能在全蛋白质组规模上跑通。你需要的不只是一个蛮力搜索器而是一个能把“进化实验记录”和“物理化学约束”高效结合起来的智能推理框架。1.2 传统预测方法擅长“有模板”害怕“没模板”在AI这一波以前计算结构预测的主流是三条路线同源建模、折叠识别和从头预测。同源建模最成功做法是找一个已经解析了结构的同源蛋白当模板再把目标序列比对上去相当于照着邻居家的图纸盖房子。问题是一旦某个蛋白在数据库里找不到足够近的亲缘模板这套方法立刻失效。过去我们把这类蛋白叫“孤儿蛋白”它在很多新测序物种里占比不低。折叠识别想利用“序列远但结构近”的关系本质上是在已知结构库里做远程同源搜索能解决一部分模板问题但遇到真正的全新折叠类型就无能为力了。从头预测理论上不依赖模板只从物理化学原理出发却长期停留在小蛋白和理想化模拟里对真实蛋白质的精度很不理想。很多年里结构预测社区其实有不少方法同台竞技但整体上大家默认预测结果只能用于“大概看看拓扑”真要往下做机制研究还得回到实验。所以当2020年国际结构预测盲测赛里AlphaFold2在多个靶标上达到接近实验精度的成绩出来时圈内人的反应不是“又进步了一点”而是“游戏规则变了”。它带来的不只是一个更准的工具更是一整套可行的学习方法论。理解了这一点后面我们在蛋白质组学里怎么用它也就顺理成章了。2. AlphaFold2的方法论拆解进化信息几何约束端到端2.1 从“中间产物打分工”到“直接输出坐标”过去包括深度学习接触图预测在内的一些方法习惯先做中间产物——预测残基对之间的距离、接触概率或者预测二级结构——再交给下游组装程序搭骨架。这样的流程天然存在误差传导中间步骤一旦偏差最后的结构怎么修都不对。AlphaFold2在架构上做了一个根本性改变输入是序列信息和进化信息输出直接是原子坐标整条计算链路端到端可微。意思是训练时梯度可以从“坐标离实验结构差多远”一路往回传去修正网络里每一层对序列、MSA、配对关系的理解。这里要解释一下MSA多序列比对是什么。MSA是把同源序列全都比对到一条公共坐标上得到的矩阵它里面藏着大量进化信息如果两个残基在进化过程中总是一起突变往往是因为它们在三维空间里彼此接触甚至处在同一个功能位点。用大白话讲进化已经帮你做了无数次“定点突变实验”每一次同源序列的出现都像一次自然采样MSA相当于把一整本“实验结果”摊开给模型看。AlphaFold2充分利用了这种进化信号同时也把已知结构模板作为辅助信息拼进去。提示看到这里你应该能理解为什么MSA质量对AlphaFold2这么重要了。后面实操章节会再说怎么处理和诊断MSA这不是一个可以随便跳过的环节。2.2 Evoformer两套表示互相校准的引擎AlphaFold2网络里最核心的模块叫Evoformer它在内部维护两套表示一套是MSA表示大致可以理解为一个由多条序列和残基位置组成的矩阵每个格子携带一系列抽象特征另一套是成对表示是一个残基对矩阵记录每对残基之间的关系特征。两套表示交替更新内部有专门设计的注意力机制。成对表示里有一个很关键的设计叫做三角更新。如果你的残基i到j的关系已知、i到k的关系已知那么j到k的关系就会受到三角不等式的限制。三角形更新用可微的算子反复做这种推演相当于让模型边拼图边自动校正那些相互矛盾的距离估计。我第一次看模块示意图的时候觉得挺复杂但理解它其实不难这就是把蛋白质折叠里最基本的距离几何约束变成网络里的一层运算——不是靠人写死规则而是让模型自己学会利用这种约束。两套表示之间还持续交换信息进化共变信号和残基对关系不断互相修正。我理解这个过程的直观感受是它很像人拼实物模型时的迭代修正远看整体比例不太对你拿起几个零件比划一下再回头调整对零件之间关系的判断如此反复直到整体和局部都变得自洽。2.3 结构模块把二维关系变成三维坐标拿到成对表示之后AlphaFold2会进入结构模块把抽象的残基对关系转化为真正的空间坐标。这里一个关键设计是它把每个残基当作一个小的刚体有自己的位置和朝向然后通过面向空间不变性的注意力机制去迭代更新残基间的相对位形。全局旋转和整体平移不会改变结果的物理含义所以模型不需要为朝向问题额外做数据增强。另一个经常被低估的组件是循环回收recycle。网络会把预测出的结构重新作为输入基于对整体折叠的理解回头修正MSA与成对表示然后再预测一轮结构。默认循环次数常见是3次效果几乎每次跑都能感受到循环次数设为1时结构比较粗糙域与域之间经常对不齐循环到3次以后明显收敛很多。训练时使用的损失函数也很有意思最具代表性的是一种叫FAPE的误差度量。它在每个残基的局部参考系里比较预测坐标和真实坐标的距离对局部几何错误更敏感同时也会对整体坐标系做校准。再配合冲突惩罚项避免模型生成原子重叠的废结构。模型另外还会输出两个重要的置信度预测pLDDT用来估计每个残基在局部尺度上的准确度PAE用来估计两个残基之间相对位置误差。这两个指标在实操里太重要了后面我会专门讲怎么读。2.4 单体预测很强但短板也很清楚AlphaFold2把单体蛋白质结构预测这件事情做到了历史性的高度尤其是对结构域内部、稳定折叠区域预测结果已经非常接近实验结构。但它的短板同样明显当目标变成蛋白质复合物、核酸、小分子、翻译后修饰时原生架构的局限就暴露出来了。早期常用的多聚体版本在界面上并不总可靠有时候预测出的复合物整体形状看着合理界面残基细节却经不起推敲它基本只能给出一个静态构象掩盖了蛋白在工作状态里可能存在多种姿态再比如遇到孤儿蛋白和同源序列极稀疏的蛋白精度会明显下滑。这些短板的本质其实指向同一个方向单体静态结构的预测还不够细胞里大多数分子事件是动态的、多分子参与的。AlphaFold3后来把架构切换到复合物场景很大程度上就是在回应这些需求。3. AlphaFold3从单体走向分子复合物3.1 分子token化一次预测核酸、小分子与蛋白质复合物AlphaFold3在输入侧做了一件很彻底的事情把蛋白质、DNA、RNA、小分子配体、金属离子统统塞进一个统一的“token”框架。每个token可以代表一个残基、一个核苷酸或者一个配体原子token与token之间构建关系图模型可以直接输出这些多类型组分共同组成的复合物原子坐标。对使用者来说最直接的体验变化是过去要在好几个软件里轮流做的事情现在可以丢进同一个模型里一次跑完。比如一个转录因子结合DNA的复合物以前要分别建蛋白模型、建DNA双螺旋、再做对接与修正顺序写处理脚本现在模型会一起生成。这种“多分子统一建模”的能力对预测结合界面、口袋附近的空间排布、识别哪些残基直接参与相互作用价值非常直接。3.2 Pairformer与扩散生成更简架构、更多采样AlphaFold3在架构上做的一个主要调整是把原来的Evoformer简化成更轻量的Pairformer并且大大弱化了MSA主路径的权重。这不是拍脑袋的决定而是观察到成对表示里已经携带了大量几何先验同时这样做也能显著减少大规模MSA搜索的计算开销。但代价是对于那些实在太偏门的复合物仅靠成对表示能不能补齐进化信息目前还是一个问号。另一个重要变化是用扩散模型取代了原来的结构模块。扩散模型的思路是先把原子坐标逐步加噪声直到变成一团随机点再让模型学习从噪声中一步步恢复出干净的坐标。用生成模型的思路直接产生坐标好处是能覆盖更多构象空间适合探索复合物的多种可能结合姿态坏处是随机性更强。这里我给一个很关键的提醒任何一次AlphaFold3预测跑出来的结果都带有采样性质同一个输入多次运行会有差异这不是bug是设计的一部分。真正要做结论时不要只取一次结果多跑几次、把结果聚类才能看到哪些界面残基是稳定的、哪些是模型不确定性高的。3.3 在蛋白质组学语境里看AlphaFold3把所有分子组件丢进一个模型统一预测这个能力放在蛋白质组学语境里最大的红利是让“相互作用组”研究变得可以进行计算层面的预筛。很多蛋白质在细胞里并不是孤零零工作的它们组成各种大小的复合物。研究复合物的结合界面往往比研究单条链的折叠更能解释功能机制。过去想预测两个蛋白怎么结合运气成分很大。现在可以先从预测结果里挑出候选界面设计点突变去验证关键残基再结合交联质谱、共沉淀等实验手段交叉验证。这在抗体设计、酶工程、药物靶点识别这些下游工作里可以省掉大量的盲目试错。不过也要强调全蛋白质组层面的AlphaFold3直接批量跑还非常昂贵。实际项目里不建议一股脑把所有蛋白都丢进去更合理的做法是先通过序列分析、相互作用数据库、共表达网络筛选出候选相互作用对再用AlphaFold3做验证与界面细化。4. 蛋白质组学中的应用从一条链到上万条链4.1 全蛋白质组批量预测结构覆盖度大幅提升AlphaFold2发布后没过太久就有团队陆续把人类和一些模式生物的蛋白质组整体跑了一遍生成结构预测数据库。结果给人留下的印象非常深实验结构数据库覆盖的蛋白质只有整个蛋白质组里很小一部分而预测把覆盖度一下子拉高了一大截尤其是能提供高置信度结构的蛋白占比大幅增加。以前做蛋白质组学分析能拿到结构信息的蛋白可能不到两成现在相当多蛋白至少有一个可用、可查询的结构模型在手。大规模跑预测这件事表面看就是“批量提交序列”但实际操作时我积累了一些经验。不要把所有蛋白都用一个参数对待序列长度差异很大MSA构建的时间波动剧烈要按长度分桶长短序列分开处理。MSA搜索往往比模型推理更吃CPU建议把MSA构建和GPU推理拆开分别在合适的计算资源上跑。结果存储也要做结构化序列文件、MSA摘要、pLDDT结果最好一起保存否则后续想回溯一段预测的输入来源时会很痛苦。举例来说我们之前筛到一个在数据库里完全没有功能注释的蛋白传统序列比对手段试了一圈也没线索。对这条序列做了结构预测之后一看结果就发现它有一个经典的罗斯曼折叠并且在活性口袋附近出现了两个保守的极性残基。这个结构假说直接指导了后续实验验证了它确实具备结合NAD类辅因子的能力。这就是从序列到结构再到假说最后回到实验的一条典型路线。4.2 结构聚类给功能注释换一种坐标系过去的自动化功能注释高度依赖序列同源性找到相似的已知蛋白就搬运注释找不到就打上“未知蛋白”的标签。有了批量结构预测之后结构相似性变成了一个更强大的坐标轴。两个蛋白的序列相似性可能低于20%但结构域排列几乎一致这说明它们共享共同祖先和类似功能位点的可能性很高。具体做法是先从批量预测结果里按pLDDT和序列长度筛选出一批高质量结构再把这些结构文件两两进行结构比对得到距离矩阵直接用这个矩阵做聚类。这种策略特别适合注释那些“序列孤儿蛋白”——它们找不到远亲却可能和某个已知家族在结构上吻合。实际操作中要注意结构比对得分会受构象多样性影响阈值设多少需要先做一组手工检查不能盲选一个数字。但结构聚类的结果并不能替代实验验证它的价值在于快速产出可证伪的假设。比如把一个原本没有注释的蛋白归入一个已知功能家族或者在所谓“未表征蛋白”里找出全新的功能簇。把预测结构的置信度当成筛选门槛非常重要低置信度区域就不该参与结构比对否则噪声会污染聚类结果。4.3 变异解读结构上下文比保守性评分更直观另一个我很常用的场景是解释变异。拿到一个错义突变比如某位置的缬氨酸变成甲硫氨酸过去常规做法是看这个位点在同源序列里保不保守再用几个有害性预测工具打个分。现在多了一个非常直观的维度把突变映射到预测结构上看突变前后的氨基酸在结构里的位置。如果在蛋白的疏水核心区把一个极性氨基酸塞进原本稳定疏水包裹里大概率会影响折叠稳定性如果突变残基恰好落在二聚体界面上则可能直接影响相互作用如果它落在pLDDT极低的无序区域那对折叠稳定的影响就要单独讨论。按这个思路临床意义未明变体的优先级筛选会快很多也更容易设计出验证实验。这里我要泼一盆冷水不要直接用结构预测结果对点突变做一对一的前后比对然后宣称某个突变“改变了结构”。模型的预测噪声很容易被解读成真实的构象差异这种结论的可靠性很低。更稳妥的做法是把预测结构当作静态上下文结合序列保守性、共变分析和实验观察一起判断而不是让模型单方面充当裁判。4.4 相互作用组复合物界面上的新机会AlphaFold3发布以后我们对“相互作用组”的兴趣明显上来了。过去质谱实验拉出来的候选互作伙伴列表往往很长真假难辨验证成本很高。现在可以先把置信度比较高的候选对挑出来用复合物预测看一眼界面看残基接触是否形成有意义的作用网络再用pLDDT和预测界面面积给候选排个序。这套做法有很多细节要斟酌。输入链的顺序会影响输出某些蛋白对的结合依赖构象变化或者特定修饰状态模型不会自动感知。瞬时相互作用、依赖磷酸化修饰才发生的结合预测结果很可能不理想。所以我会把复合物预测结果当成“高价值假说”所有候选对最终还是要回到湿实验去验证。5. 实操与避坑拿到模型输出之后怎么用5.1 从FASTA到结构文件一次标准预测的流程输入文件通常是FASTA格式的序列。如果有复合体多链写法要特别注意链分隔符不同实现之间的格式有差异先看官方文档确认。之后系统会生成多序列比对在这一步上时间分配很容易被低估尤其对于长序列MSA搜索有时比模型推理还慢。我个人的习惯是先检查序列有没有污染比如信号肽没切、跨膜区注释错误都会影响MSA构建。再筛选合适的MSA搜索范围。不要跳过MSA直接给模型否则精度会明显下降。硬件方面单体几百个残基的预测用一张中等偏上的GPU卡都能跑显存16G左右基本够用但几千残基的大蛋白或者大规模批量任务就需要认真规划显存和时间。我的建议是把MSA构建和模型推理拆开前者在CPU上批量做后者排队上GPU这样可以省下大量排队时间。第三方轻量化实现非常流行跑起来快、方便适合初筛但它的默认参数会把MSA搜索范围缩得比较快你要出严谨的结果最好还是回到原始管道重跑。另外多链复合物的输入顺序是一个隐藏变量如果结果不合常理不妨换一种链顺序再试一次往往就有变化。5.2 输出文件里真正值得关注的信息跑完一次预测后会产生多个文件常见的包括排名后的结构文件、排序中间信息、模型原始输出、MSA文件包和特征文件。我在团队里带新人时经常发现大家容易只看第一个排名最高的结构文件然后就开始画图写结果这样很浪费信息。pLDDT是最重要的第一指标它直接可以从PDB格式文件的B因子列读到。把每个残基的pLDDT画成曲线比在结构上做彩虹色渐变更能直观定位高置信区和低置信区。我的经验阈值大致是大于90的残基区域可信度极高70到90可以相对放心使用50到70说明拓扑应该是对的但原子级别的细节别太较真低于50的区域基本不要拿去讲机制它很可能对应天然无序区。PAE则是特别适合研究结构域间相对位置的指标。如果两个结构域的PAE很高说明模型不确定它们之间的相对摆位此时去讨论界面互补性意义不大如果PAE低说明相对方位可靠后续做域截短和嵌合体设计时就可以依赖这套坐标。还有一个我每次都会做的动作把多个候选模型叠合起来对比骨架的不变量。如果几乎所有模型里某一个区域都高度一致我就会对这个区域的预测非常信任如果候选模型之间发散明显这份不确定性同样是重要信息要写进结果讨论里。5.3 pLDDT低不等于失败天然无序与模型错误的区分很多新入行的朋友一看到pLDDT低于50就紧张觉得预测失败了。其实未必。AlphaFold2/3对天然无序蛋白、长柔性连接区、没有稳定结合伴侣就不折叠的区域预测置信度本来就低这恰恰是真实生物学性质的体现。比如某些转录因子的激活域、信号蛋白的长连接区在结构上本来就是“单一稳定折叠不存在”的状态。与其把低置信度当错误不如把它写成“预测不支持稳定折叠提示该区域可能为天然无序区”这种处理方式在论文和组会里都更准确。判断低置信度区域到底属于天然无序还是预测失败我常用的方法有两条一是看它在两三个同源蛋白的预测里是否都出现在相近位置二是叠合多个候选模型看该区域的骨架是否高度发散。如果多个同源蛋白同样位置都低置信度并且候选模型间骨架发乱那大概率是天然无序如果所有候选模型都给出几乎一样的、看似合理的错误折叠才更应该怀疑是模型问题。5.4 重复遇到的坑一张速查表与三点心得现象可能原因处理建议多链复合物预测得出的界面不合常理链顺序或输入组分排列问题更换链顺序分别拆开预测再组装比对pLDDT整体较高但某段loop很低该loop真实柔性结合同源蛋白、候选模型一致性共同判断同一输入多次运行差异较大扩散采样和模型多样性多次采样、聚类后报告共性结构不拿单张图下结论内存溢出或运行时间过长序列过长/MSA过大裁剪MSA、降低循环次数、低精度推理孤儿蛋白全链低置信度但拓扑看起来合理MSA样本严重不足加深同源搜索、考虑模板信息、谨慎解读结果表格背后其实还是那句话AlphaFold不是“答案生成器”它是“高质量假设生成器”。把假设和实验证据结合起来才是蛋白质组学里最顺手的用法。最后说点个人习惯。我现在拿到一个蛋白质组学分析任务看到重点蛋白会顺手做三件事先看序列在数据库里有没有已知结构域再跑一个结构预测把pLDDT曲线和PAE图存下来最后把所有候选模型叠合看差异。做完这三步再决定要不要进入分子动力学模拟或设计湿实验。结构预测给了我一个便宜的先行版本让我在花大钱做实验之前先形成几个可以被证伪的假说。我踩过的大坑反过来也很宝贵有一次拿一个低置信度模型强行解释变异的功能影响后续实验完全对不上后来把结构预测当成“情报”而不是“判决书”工作流就顺了很多。这一点可能是这篇文章里我最想传给同行的一句话。
阅读完成 · 觉得有帮助?
咨询建站