蛋白质先导化合物优化的入门指南

Hacker News Top 论文

摘要

本文旨在作为药物设计中蛋白质先导化合物优化的初学者指南,具体解释了 Cradle-1 流程以及蛋白质结构和功能的基础概念。

暂无内容
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 2026/05/13 15:14

# 蛋白质先导化合物优化新手指南 来源: https://magnusross.github.io/posts/protein-lead-optimisation-1/ *或者说,理解 Cradle-1 管线。* 先导化合物优化(Lead optimisation)是药物设计中的一个步骤,在此步骤中,你拿一个勉强能起作用的分子,试图让它真正发挥作用。这 arguably 是大多数现实世界的设计项目成功或失败的关键阶段。受我几位朋友 (https://scholar.google.com/citations?user=6otdJFgAAAAJ&hl=en)(https://dmmiller597.github.io/) 的影响,我最近对使用机器学习进行蛋白质先导化合物优化产生了兴趣。这几位朋友非常友善,在过去几周里 indulged 我那些极其初级的提问。我将利用这篇文章分享他们教给我的知识,希望这能反过来帮助你更深入地了解这个迷人的领域。像任何领域一样,这里有一些既定的原则,在文献中从未被明确阐明,这会让新手感到困惑。我们将尝试通过研究一个在现实生活中被证明行之有效的系统 (https://www.cradle.bio/),来理解如何实际构建一个用于先导化合物优化的真实系统。 首先,在深入之前,蛋白质到底是什么?我想要完全回答这个问题,我们需要多本教科书/学位。由于我几乎所有的生物学知识都来自通读 Philip Ball 的《生命如何运作》(*How Life Works*),我确信任何关于生物学的答案都是任意晦涩且复杂的,所以目前只需说蛋白质是一类分子,它们是维持生命基本过程不可或缺的组成部分就足够了。蛋白质是由较小的分子链组成的,这些分子被称为*氨基酸*,共有 20 种不同类型。1 (https://magnusross.github.io/posts/protein-lead-optimisation-1/#fn:1)因此,我们可以将蛋白质表示为字符字符串,用除了 BJOUXZ 以外的所有字母代表不同的氨基酸。2 (https://magnusross.github.io/posts/protein-lead-optimisation-1/#fn:2)例如,我们可以将肌红蛋白(一种负责在细胞间转运氧气的蛋白质)写为: ``` MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKIPVKYLEFISECIIQVLQSKHPGDFGADAQGAMNKALELFRKDMASNYKELGFQG ``` 对于某些氨基酸组合,这条链会折叠成固定的形状,从而使该蛋白质能够执行功能。从序列预测折叠形状,轻描淡写地说,是非常非平凡的,也是 AlphaFold-2 模型“解决”到一定程度并因此赢得诺贝尔化学奖的问题。重要的是要理解,氨基酸有许多可能的组合,其中大多数不会折叠成规则、可预测的形状,也不做任何有用的事情。3 (https://magnusross.github.io/posts/protein-lead-optimisation-1/#fn:3)折叠后的肌红蛋白看起来像这样: 通常蛋白质由约 300 个氨基酸组成,但最大的一个(滑稽地命名为 PKZILLA)含有超过 40,000 个,最小则可以小到 20 个。据估计,人类细胞中有 80,000 到 400,000 种不同功能的蛋白质。注意,当氨基酸键合形成蛋白质时,每一个都称为*残基*(residue)。自然界中存在的蛋白质是进化的结果。因此,我们可以将蛋白质归类为*家族*(families),它们彼此间有一些相似性;在这些家族中,代表每个蛋白质的序列的大部分将是相同的。所以现在我们要粗略地知道蛋白质是什么,那么蛋白质设计又是什么? 蛋白质设计4 (https://magnusross.github.io/posts/protein-lead-optimisation-1/#fn:4)的最终目标是生成执行特定功能的新分子。这种功能可以是从催化特定的化学反应到结合导致疾病的分子。先导化合物优化是设计过程中最重要的步骤之一。我们假设有一个现有模板分子,它在某种程度上是有功能的,但对于我们的最终目标来说是不够的。这个分子可能是先前失败的设计活动的结果,由其他模型*从头*(de novo,即从零开始)生成的,或者从自然界中选择的。先导化合物优化的过程涉及对这个初始分子提出修改,最终目标是改善其针对手头任务的属性。在实践中,蛋白质在此任务中的功能很少能用单一数字概括,我们通常同时关心几个属性,而这些属性可能会相互权衡。为了简单起见,在本文中我们将主要谈论优化单一属性的情况,但请记住,真实情况是多目标的。 先导化合物优化的过程是通过提出一组候选修改,在实验室中测试它们,然后在整合实验室测试结果后提出更多修改来进行的。传统上,这通过*定向进化*(directed evolution)来完成,这基本上涉及引入随机突变,测试它们,保留那些改善功能的突变,并在循环中进一步突变,直到达到足够的性能。鉴于我们有庞大的蛋白质数据库和深度学习的强大能力,如今我们或许能做得更好。5 (https://magnusross.github.io/posts/protein-lead-optimisation-1/#fn:5)事实上,有些人已经做到了! Cradle 是一家生物科技公司,销售基于机器学习的蛋白质先导化合物优化系统。作为一家生物-ML 公司,他们拥有自己的湿实验室(wet lab),这在某种程度上是不寻常的,他们声称这使他们具备了一种独特的能力,能够保持模型建议与实验反馈之间的紧密联系。他们的系统似乎是市场领导者,他们正在与世界上一些最大的制药公司(例如 Novo Nordisk, Bayer, J&J)合作。他们已在多种不同背景下展示了令人印象深刻的结果 (https://www.cradle.bio/blog/adaptyv2)。Cradle 最近发表了一份白皮书 (https://www.biorxiv.org/content/10.64898/2026.03.06.710001v2),描述了其系统的高层工作原理。如下所示: 感到困惑?我也一样!但别担心,到这个迷你系列文章的结尾,我们将很好地理解这里发生的事情,以及为什么每个彩色框都是必要的。在这一部分中,我们将涵盖基础模型的结构、通过使用微调将其推向做出更有用的建议的过程,以及我们如何利用它来估算给定蛋白质的属性。在下一期中,我们将涵盖如何实际使用此模型生成用于进一步测试的蛋白质。 ## 基础模型 大图中展示了很多模型,数量有些吓人,但实际上,大多数都是同一基本骨干的调整版本:基于 Transformer 的蛋白质语言模型。如果我们能理解这一点,就能在很大程度上理解整个管线。标准的语言建模范式(驱动 Claude, ChatGPT 等)从根本上基于下一个词元(token)预测;词元是一个词或词的一部分,我们要求模型根据前面的上下文预测下一个词。通常有数万个可能的词元,对应于我们词汇表中的大量单词。我们可以通过将庞大的词词汇表替换为 20 种不同类型的氨基酸,直接将此范式应用于蛋白质建模,因为蛋白质只是这些氨基酸的序列。为了训练我们的模型,我们获取一个蛋白质序列数据集,遮盖其中的一些残基,并让模型根据周围的其它残基预测该位置上原本是什么氨基酸。我们可以通过遮盖序列末端(与标准语言模型中相同的方式)来做这件事,这被称为下一个词元预测,或者通过遮盖序列中间的残基来做,这被称为掩码语言建模(masked language modelling)。Cradle 管线中的基础模型采用了后一种方法,因此我们将专注于此。这个问题大致看起来像这样: ``` M K T A [?] G L S E R ... | L ██████ 0.42 V ███ 0.28 I █ 0.15 ... ``` 基础模型产生一个概率分布,表示可能填充缺失位置的氨基酸。Cradle 管线的第一步是获取此模型结构,并在数百万种天然蛋白质数据集上对其进行训练。这就是图中标记为“预训练”(pre-training)的部分顶部发生的事情。这里的想法是产生一个学习了天然蛋白质特征的模型。这样的模型本身实际上是有用的,因为它提供了一种理解对蛋白质的某些编辑是否会破坏它(即导致其变得无序或不表达等)的方法。该模型为我们提供了可以在特定位置放置哪些残基以形成天然蛋白质的建议。假设我们在已知蛋白质中遮盖一个 `G`,模型预测该位置有 0.001% 的概率是 `W`,但有 40% 的概率是 `V`,我们可以得出结论,带有 `W` 的蛋白质不太可能有功能。模型表示它在自然界中从未见过这样的蛋白质,我们相信,由于数千万年的进化产生了现有的蛋白质集合,那些不存在的蛋白质不太可能有用的。我们应该注意,这并不是我们确定真实的情况。有可能存在功能性强但与天然蛋白质非常不同的蛋白质;这些将很难用机器学习建模,因为根据定义,我们关于它们的数据非常少。 现在我们对基础模型的作用有了理解(它预测对单个氨基酸的特定编辑有多“天然”),我们就涵盖了上面的三个框。现在我们可以进入下一部分,这部分内容更加丰富。 ## 进化微调(Evotuning) 天然蛋白质的空间非常大且多样。先导化合物优化的过程是针对特定用例改善蛋白质的功能。当使用在所有蛋白质空间上训练的模型时,模型不知道我们要优化的功能的具体情况;它太通用了。基础模型可能会提出建议,这些建议是天然的,但对我们的用例毫无帮助。我们如何推动模型做出更相关的建议?答案是使用微调。 微调是通过在任务的代表性数据集上训练,将更通用的模型适配以在更具体的任务上表现良好的过程。在先导化合物优化中,我们从单个模板蛋白质开始,该蛋白质已经在某种程度上具有功能,我们希望进一步提高此功能。我们要形成一个微调任务,以推动模型建议可能具有功能的蛋白质。我们可以通过找到所有可能与模板在进化上相关的天然蛋白质,并在它们上训练模型来实现这一点。其想法是,如果它们在进化上相关,它们可能共享某些功能。我们希望模型“关注”整个蛋白质空间的这个区域。 我们使用称为多序列比对(Multiple Sequence Alignment, MSA)的东西来形成进化相关蛋白质的集合。完全理解 MSA 将是另一回事,但粗略的想法有两个部分:首先,我们在巨大的蛋白质序列数据库中搜索那些在统计学上可能与我们的模板共享共同祖先的序列(这些被称为*同源物*(homologs))。然后我们将它们*对齐*,即逐个残基地排列它们,以便扮演相同结构或功能角色的位置彼此重叠。这是复杂的,因为并非所有同源物的长度都 necessarily 相同,因此我们需要考虑插入和缺失。一旦这样做,我们就可以从序列中获取一些额外信息。我尝试用下面的更多 ASCII 字符来说明这一点。 ``` Query : M K T A Y G L S E R N Hit 1 : M K S A Y G L T E R N (91% similar) Hit 2 : L K T A Y G L S D R N (81% similar) Hit 3 : M R T A Y G I S E K N (73% similar) ───────────────────── Conserv. : x x x ✔ ✔ ✔ x x x x ✔ ``` 在这个例子中,数据库返回了 3 个相似序列,但在现实中将是成千上万个。我们可以看到有几个位置(4, 5, 6 和 11)所有蛋白质共享相同的氨基酸,即它们是保守的。因此,我们可以相当肯定,在任何我们建议用于进一步测试的蛋白质中,这些位置也应该是相同的。在真实的蛋白质中,保守的不仅仅是特定位置,还有*模体*(motifs):如本例中的 AYG 这样的氨基酸序列。 一旦我们有了模板的 MSA,我们就获取我们的预训练模型,并在这些序列上进一步训练它。这推动了模型做出与所讨论蛋白质的进化背景一致的建议,我们希望这意味着模型的提议更可能具有功能。这个过程称为进化微调,或*evotuning*。因此,我们现在对微调部分顶部一行发生的事情有了概念。我们应该在此指出,从 MSA 框到“Potts-like”还有另一个箭头。我们将在下一篇博文中讨论这一点,但 MSA 信息对于生成也很有用,因为它告诉我们要关于哪些位置可能对蛋白质结构很重要的一些信息。 ## 那实验室呢? 当我介绍先导化合物优化问题时,关键步骤之一是在实验室中测试蛋白质的功能。整个过程的最終目标是优化这些测量值,那么我们将如何将这些信息纳入过程中?在本节中,我们将讨论如何利用序列-测量对来推动我们的模型建议可能得分更高的蛋白质,以及如何调整模型以实际预测未来候选者的可能得分。 首先,我们需要至少对表面层次的理解,这些测量值实际上是什么样子的。在生物学中,这种实验室测试,我们测量某种物质(在本例中为蛋白质)功能的某个方面,被称为检测(assays)。这些检测测量什么非常取决于我们正在优化的功能,并且如前所述,单次检测运行通常同时返回多个测量值,因为我们通常同时关心多个属性。重要的是要意识到,测量值几乎总是不完美的代理,代表我们感兴趣的真功能。例如,我们可能测量蛋白质在试管中对抗单一纯化靶标的表现,而我们真正关心的是它在活细胞的混乱环境中如何表现。我们得到的数据通常看起来像这样: ``` Sequence Activity Stability ───────────────────────────────────────────────────── M K T A Y G L S E R N ... 0.82 54.1 M K T A Y G L T E R N ... 0.79 53.8 M K S A Y G L S E R N ... 0.91 52.4 M R T A Y G L S E R N ... 0.44 55.0 M K T A Y G I S E R N ... 0.88 51.9 M K T A Y G L S D R N ... 0.71 53.2 ``` 有许多不同类型的检测。通常检测是批量进行的,其中有一个盘子,上面有多个以网格排列的孔,每个孔中测试不同的蛋白质。这意味着在每一轮测试中,我们都会获得一组新的数据点。在 Cradle 的设置中,这似乎大多数时候是 96。通常在机器学习中,我们假设数据集中的点是独立

相似文章

让AI驱动的蛋白质设计工具遍布全球生物学家

MIT News — Artificial Intelligence

由MIT研究人员Tristan Bepler和Tim Lu创立的OpenProtein.AI,推出了一款无代码平台,旨在普及先进的AI蛋白质设计与工程模型,使广大生物学家都能便捷使用。

ProtSent:蛋白质句子转换器

arXiv cs.LG

本文介绍了 ProtSent,这是一个用于蛋白质语言模型的对比微调框架,能够提升嵌入质量,从而优化远程同源性检测和结构检索等下游任务。

TD3B:用于别构结合物生成的过渡导向离散扩散

Hugging Face Daily Papers

TD3B 是一种基于序列的生成框架,利用过渡导向离散扩散设计具有特定激动剂或拮抗剂行为的别构结合物。该论文引入了一种控制蛋白质状态方向性转变的方法,解决了基于静态结构的设计方法的局限性。