14

Rosetta、Baker lab 与“反过来写蛋白”的想法

插图占位:Rosetta、Baker lab 与“反过来写蛋白”的想法

CASP 赛后,最有用的页面常常不在排行榜上,而在一张候选模型表里。每一行是一种可能构象:编号、Rosetta 分数、主链偏差、局部冲突、是否接近后来公开的实验结构。把这些点画成散点图,横轴可以放模型离真实结构有多远,纵轴可以放打分函数给出的能量。理想情形下,低能量区域会聚着更接近真实结构的模型;现实常常更刺眼,某些低分模型偏得很远,某些看起来粗糙的候选反倒更接近答案。

CASP 把答案暂时藏起来,候选表则把提交时的判断一行行留下。隐藏答案带来的约束换了一种形状:失败不再只是“这次没猜中”,它会变成可检查的表格。哪个 target 的候选都挤进同一个错误谷底,哪个环区总被拉到不自然的位置,哪个打分项偏爱了漂亮却错误的侧链堆叠,这些痕迹都会进入下一轮方法修改。Baker / Rosetta 线真正有力的地方,就从这种失败表开始。

Rosetta 指一套大分子建模软件,早期代码来自 David Baker 在华盛顿大学的实验室。Rosetta 官方历史页把开头说得很朴素:它最初是一个小项目,使用 FORTRAN 编写,聚焦小蛋白的 ab initio structure prediction,也就是从头结构预测。这个说法指的是,在没有可靠整体模板可照用时,尽量从序列、物理化学规则和已知结构片段出发,推断一条蛋白链可能怎样折起来。

ab initio 很容易被误读成完全空手。Rosetta 的早期路线并非抛开数据库和已有知识。它会借用天然蛋白里反复出现的局部片段、主链角度、二级结构倾向、侧链偏好和能量判断。真正困难的是:这些局部材料怎样拼成一条完整链,哪种拼法更像自然结构,哪种只是软件规则制造出的好看幻影。

这样看,Rosetta 一开始处理的并非“反过来写蛋白”,它先面对更前面的筛选问题。给定一条序列,可能构象多得无法逐个验证,软件必须先产生候选,再用近似规则给候选排序。CASP 的好处在于,答案最后会公开。到那一刻,候选表里的每个判断都能被追问:分数低的模型为什么没贴近真实结构,分数高的模型为什么反而保留了某些正确片段,规则到底奖励了什么,又漏掉了什么。

14.1候选表里的失败

早期 Rosetta 的关键动作之一叫 fragment assembly,片段拼接。整条蛋白链的可能姿势多到无法穷尽,软件先从已知结构里寻找短片段,像挑出一批局部姿势相近的小积木,再反复组合成完整模型。每一次组合都会产生一个 decoy,也就是候选构象。日常语感里的欺骗意味要先放下;在这张表里,它只是一个“可能答案”,要等打分、比较和实验记录继续判断。

候选一多,就要面对 sampling,采样。采样是在有限时间里尽量探索可能构象空间。采样太窄,候选会集中在同一类错误里;采样太散,计算会被大量离谱形状拖住。研究者会改变片段长度、局部环区处理、侧链重排方式和候选数量。每一次调整都在问同一个问题:上一轮失败究竟是没有看见正确区域,还是看见了却没有认出来?

候选表的第一列通常看不出故事,真正有信息的是几列放在一起读。若一批候选主链都在同一段环区偏开,问题可能不在最终排序,而在片段库或环区采样;若许多候选整体接近,却在侧链互相碰撞处丢分,打分项可能过于粗略;若某个低分候选拥有很漂亮的疏水核心,却把带电残基埋在内部,计算看到的局部好处也许遮住了整体代价。失败一旦变成这些小格子,就不再只是坏消息。

认出来要靠 scoring function,打分函数。打分函数把许多近似规则合到一起:氢键是否合理,疏水残基是否埋在核心,带电残基是否待在合适环境,原子之间有没有互相撞上,主链角度是否常见,侧链能不能填进空隙。分数低,表示这套规则认为候选更有希望;分数高,表示冲突较多。低分不是自然界的最终判决,它只是计算规则的一次判断。

这就是散点图让人不舒服的原因。若横轴显示某个模型离实验结构很远,纵轴却给它很低能量,说明打分函数被漂亮假坑吸引了;若某一类正确候选分数不够好,说明规则没有奖励真正该奖励的结构特征;若一片点云全挤在错误角落,采样可能连正确区域都没摸到。失败因此变成可修改对象:采样要不要扩大,侧链项要不要重调,疏水核心是否看得太粗,环区约束是否太硬,模板或片段库是否把搜索带偏。

这些候选共同构成 energy landscape,能量地形。可以把它想成一张高低起伏的地面:低处像谷底,结构更可能停留;高处像山坡,结构不容易稳定。麻烦在于,计算看到的是近似地形,低谷可能是真的,也可能是打分规则造成的假坑。Rosetta 在 CASP 中反复受挫,价值不只在名次变化,还在这些坑被标了出来。

Baker lab 的路线因此不能写成灵感突降。David Baker 是这条线的重要代表,但 Rosetta 的前进方式更像一套可返工的工作流:生成大量候选,按打分函数排序,用 CASP 或实验结构检查,再把失败类型翻译成下一轮规则。失败如果只停在感叹里,方法不会长进;失败进入候选表、散点图和分类记录以后,才会有下一次修改。

一张好看的散点图通常会出现漏斗形状:越接近真实结构,分数越低,候选像顺着坡面滑进同一个低谷。许多真实项目没有这么顺。点云可能摊成一片,说明采样没有集中到有希望的区域;也可能在错误位置形成深谷,说明打分函数偏爱了错误安排;还可能有少数正确候选被排在后面,说明规则看见了结构,却没有把它排出来。Rosetta 的修补经常从这种图形开始,而不是从一句“模型需要更准”开始。

这里也能看出 CASP 和 Rosetta 的关系。CASP 提供公开的截止线和隐藏答案,让方法必须先提交再解释;Rosetta 提供可调整的候选生成和评分流程,让失败有机会回到规则里。一个 target 做错以后,研究者不会只说“这题太难”。他们会看候选有没有覆盖真实结构附近,低分区域有没有正确候选,局部二级结构是否被判断错,长程接触是否把整条链带向错误方向。公共考场让这些问题有了共同参照。

14.2从预测转向写蛋白

预测题问的是:给定一条序列,它可能折成什么结构。设计题把箭头转过来:给定一个目标形状、一个界面或一个功能位点周围的几何安排,能不能找到一条会自己折过去的序列。protein design,蛋白质设计,指的就是主动写出或改造蛋白的工作;sequence design,序列设计,更具体,指为某个目标主链或功能环境挑选氨基酸;de novo design,从头设计,强调新序列或新折叠没有天然模板可直接照抄。

这个反向问题不能理解成把预测程序倒着跑。预测时,一条自然序列已经存在,家族线索、片段偏好和同源结构能提供部分提示。设计时,研究者常常先有一张目标图:backbone,主链,像一根已经摆好大致走向的连续骨架;每个位置伸出去的 side chain,侧链,还要被逐个选择。一个字母换掉,局部化学、相邻侧链、核心包装、表面可溶性和折叠竞争状态都会跟着变化。

一条设计序列要先把 hydrophobic core,疏水核心,填好。疏水残基喜欢避开水,通常要埋在内部;带电或极性残基更适合暴露在表面,帮助蛋白留在溶液中。核心填不满,结构会松;核心塞得过满,原子会互相冲突;表面露出太大片疏水区域,样品可能聚集。设计题比看上去更苛刻,因为每个字母都要同时服务局部化学和整体形状。

还要考虑 negative design,负设计。正向设计奖励目标结构里的好相互作用,负设计则要削弱错误结构的吸引力。若一条序列除了目标折叠之外,还能用另一种方式形成类似稳定的状态,样品就可能分裂成多种构象,或者干脆聚集。设计不只要让目标模型看起来合理,还要让许多竞争模型变得不舒服。

序列设计的组合数很快会变得惊人。一个位置若有十来种氨基酸可选,十个位置一起变,就已经远远超出人工逐个检查的范围;每个氨基酸还会带来不同侧链朝向,影响旁边残基能不能贴合。Rosetta 式筛选会先固定一部分主链和关键相互作用,再让可变位置轮换选择。这样得到的是一片候选序列云,而非一个唯一答案。候选云里的相似家族、突出的风险位点和反复出现的表面问题,比单行最低分更能说明下一步该怎么选。

这时,预测阶段积累的失败记录开始派上用场。CASP 里被假低能量骗过,设计时就会更警惕分数好看的错误谷底;预测里长环区总偏,设计时就会限制环区长度或增加局部检查;预测里疏水补丁常导致错误接触,设计时就会把表面清理得更仔细。反过来写蛋白的想法,正是从这些可返工的规则里长出来的。

设计候选表也会越来越现实。上千条序列可以在屏幕上同时存在,真正进入合成订单的只有少数。表格里除了能量分数,还会记录目标形状、核心残基、表面风险、是否过于相似、是否适合表达、预计怎样验证。分数最低的一行未必最先进入实验;有时研究者会保留几个分数稍高、但表面更干净或构建体更稳妥的候选。这样送进实验的候选不再像孤零零的赌注;它们形成一组能区分失败原因的样品。

从预测转向设计,候选表的含义也变了。预测候选的目标是靠近自然结构;设计候选的目标是成为一个能被做出来、能在溶液里保持折叠、并且最好能接受结构验证的实物。软件要在同一张表里同时处理两类问题:这个序列在目标结构里是否舒服,它在其他错误结构里是否也舒服。前一个问题需要奖励目标,后一个问题需要惩罚竞争状态。只看低能量会太单薄,候选之间的差异、风险分布和失败后能学到什么,同样会影响下一步选择。

有时,设计者会故意留下几类不同风险。一个候选核心包装紧,但表面带一小块疏水斑;另一个候选表面更温和,核心却稍松;第三个候选分数平庸,却来自另一种主链连接方式。把这几类候选一起送进实验,比只追一个最低分模型更有价值。若第一类沉淀,第二类可溶,第三类结构偏离目标,下一轮修改就能区分核心、表面和主链采样的责任。

14.3实验怎样回写规则

计算生成候选不等于获得蛋白。屏幕上一行序列要先变成样品管里的东西,才有资格接受下一轮问题。expression,表达,是让细胞或其他系统生产目标蛋白;purification,纯化,是把目标蛋白从复杂混合物中分出来。设计序列回到实验台以后,可能根本没有清楚表达条带,可能大多落入不溶部分,可能在纯化柱上拖成宽峰,也可能浓缩后变浑。每一个失败都比一句“没成”更有用。

不表达,可能指向编码序列、构建体边界、标签位置或宿主系统问题;沉淀,常把注意力带回表面疏水斑、核心包装和柔性片段;纯化峰拖尾,提示样品状态不单一;热稳定性不足,说明核心和盐桥安排还不稳;二级结构读数不符,目标骨架可能没有形成;晶体不长、衍射差或结构偏离目标,则会推动采样范围、打分项和目标主链重新调整。

表达记录通常来得比结构图早得多。胶图上目标大小附近没有清楚条带,说明这条序列还没有成为可操作样品;条带有了,却主要落在沉淀部分,说明折叠、溶解性或表达条件出了问题;上清里有条带,纯化峰仍可能多峰或拖尾。每一道记录都把候选的失败位置往前或往后移动。一个候选倒在表达端,和一个候选走到结构验证后偏离目标,给计算端的信号完全不同。

这就是反馈回路。候选表先把大量可能序列缩小成实验对象,实验记录再把失败拆成可修改的类别。一次坏结果若只被记成“失败”,下一轮只能换一批候选重试;若它被分成低表达、沉淀、纯化多峰、稳定性差、结构偏移或功能无响应,计算端和实验端都会知道该改哪里。Rosetta / Baker 线的耐心,来自这种分拣能力。

这些记录的硬度并不相同。圆二色谱可以粗看二级结构有没有按预期出现,热熔曲线能提示样品在升温时是否很快散开,NMR 谱图能显示样品是否均一或在多种状态之间交换,晶体和衍射把问题推进到原子模型附近。越靠后的读数越慢、越贵,也越能裁决结构是否接近目标。候选表因此会经过一连串门槛:先能做出来,再能分出来,再能稳定存在,之后才有资格谈结构和功能。

还有一种更晚出现的失败:样品结构接近目标,功能读数却没有响应。它会提醒研究者,稳定折叠只是门槛之一,目标界面、活性位点、构象变化和实验条件仍可能不配合。这样的失败会把问题从“能不能折成这个形状”,推向“这个形状能不能做这件事”。对设计路线来说,这类功能读数会把计算承诺继续送进更硬的检验。

科学家怎样知道规则真的变好了,不能只看一个成功样品。更有用的是成批记录:候选分数怎样分布,哪些被合成,哪些能表达,哪些可溶,哪些纯化干净,哪些二级结构读数接近预期,哪些最后有实验结构支持。若某一轮修改以后,低分候选更常表达、更稳定、更接近目标,打分函数才多一点可信度;若高分候选连续沉淀或偏离目标,规则就要继续拆开。

这样的流程也保护了设计叙事的边界。目标结构图不是完美蓝图,打分函数不是自然界的声音,候选构象不是答案,候选序列也还不是蛋白。只有当样品、读数和结构检查逐步接上,设计才从屏幕上的可能性变成可讨论的实物。实验失败并不损害这条线,它让下一轮规则有了方向。

这套反馈也改变实验优先级。若失败集中在不表达,下一轮先处理构建体、标签、序列负担和表面性质;若失败集中在沉淀和多峰,先回到可溶性、疏水斑和多状态竞争;若样品稳定却结构偏离目标,主链采样和负设计更可疑;若结构接近目标却功能无响应,问题会转向界面、活性位点或目标本身。失败分类越清楚,下一轮候选表就越不像抽签。

14.4Commons 的意义

Rosetta 后来扩展到设计、对接、重塑、酶设计、配体对接、蛋白和核酸结构建模等更多任务。官方文档把它描述成一套综合的大分子建模软件,包含结构预测、设计、remodeling、folding、docking 等应用,也包含探索主链、侧链和序列空间的采样算法,以及经过广泛测试的能量函数。这个范围不是一次展开的,每个新任务都会带来新的失败类别。

Rosetta Commons 的意义就在这里。随着早期 Rosetta 开发者离开 Baker lab、建立独立研究组,Rosetta 的开发和使用不再局限在一个实验室。RosettaCON、文档、测试、版本、授权、培训和跨实验室算法接入,让失败经验可以被更多人复用。一个打分项若只在本地可用,它很难改变共同体;一个算法能被不同实验室拿去跑不同蛋白,才会真正暴露边界。

跨实验室维护会打断单一路径的偏好。某些团队重视可溶小蛋白,某些团队做膜蛋白、复合体或配体对接;某些任务看重稳定性,某些任务看重界面几何或活性位点安排;某些项目可以慢慢精修,某些项目必须先筛过大量候选。不同对象让同一套软件不断遇到新问题,也让“失败如何改规则”成为共同体层面的事。

维护工作看起来不像科学突破,却决定失败能不能复用。一个新打分项要进入常用流程,需要示例、测试和版本记录;一个采样办法若只在少数目标上有效,文档要说明它的使用边界;一个接口设计方法如果在别的实验室反复失败,失败记录要能回到开发者手里。软件共同体的价值不只在发布工具,还在让外部样品、外部目标和外部实验室不断检验工具。

这种共同体也让 Rosetta 保持可争论。某个模块在一个任务里表现好,到了另一类蛋白上可能失效;某个参数组合能救回一批小蛋白,却可能让复合体界面变差。跨实验室使用会把这些差异摊开,让方法说明书、测试集和失败记录一起更新。这样留下来的经验,才有机会从单个项目变成可继承的软件知识。

Baker lab 提供了重要起点,David Baker 是这条线的重要代表;但 Rosetta 的分量来自更长的协作链条。软件把候选、评分和失败分类变成可执行流程,Rosetta Commons 让代码、文档、测试和算法在更大范围内延续,湿实验和结构实验又把计算承诺带回样品。真正留下来的,既有名字,也有一种把候选表、评分表、失败记录和实验回流连在一起的研究方式。

14.5Top7 只是一枚路标

2003 年 11 月 21 日,Brian Kuhlman、Gautam Dantas、Gregory C. Ireton、Gabriele Varani、Barry L. Stoddard 和 David Baker 在 Science 发表 Design of a Novel Globular Protein Fold with Atomic-Level Accuracy。论文报告了 Top7,一个 93 个残基的 α/β 蛋白,具有新的序列和拓扑;实验结果显示它折叠良好,实验结构接近设计模型。对 Rosetta / Baker 线来说,这是早期从头设计跨进实验结构层面的关键路标。

Top7 说明“先设定目标形状,再寻找序列”的路线可以走到实验结构验证;它没有说明功能蛋白已经可以按需生成,也没有说明后续实验门槛会自动打开。在这条反馈路线里,它是一枚硬路标:候选序列、样品和实验结构可以连成一条可检查的线,但更完整的样品记录、坐标证据和后续影响,还要留到后面的 Top7 章节展开。

这枚路标还有一个作用:它把 Baker / Rosetta 线暂时停稳。到 Top7 出现时,这条路已经从 CASP 候选表、采样和打分,走到了可以被样品和实验结构检验的设计题。等这枚路标在后文重新回到样品台上,它就不会像突然出现的成功案例,而会成为这条反馈回路的一次集中回收。

14.6交给 DeepMind 的题面

再回到开头那张散点图。它一边连着 CASP:隐藏答案、公开目标、提交模型、实验结构裁决;另一边连着 Rosetta:片段拼接、候选构象、采样、打分、假低谷、失败分类和实验回流。这样的图让蛋白结构问题变得特别适合长期改进,因为每次失败都能留下编号、类别、分数、结构偏差和后续样品读数。

到这时,蛋白结构预测和设计已经不只是少数案例的灵感展示。PDB 里有实验坐标,序列数据库里有家族线索,CASP 有隐藏答案和公共评测,Rosetta 留下候选和打分框架,Top7 提供早期设计路标,失败回写也有了可复查的表格和读数。对于后来依赖大规模数据、系统工程和公共评测的团队,这已经是一道可以严肃进入的科学题面。

Rosetta / Baker 线没有把蛋白问题做完。它做的是另一件重要的事:证明计算可以先改变问题的起手式,实验再把这种改变筛得更硬。候选表最后没有消失,它变成一张更大的题面:公开材料、可计算模型、可复盘失败和实验坐标共同在场。DeepMind 进入时,面对的正是这张已经被许多人铺好的题面。