机器学习中的蛋白质折叠

2025年3月17日 | 阅读 21 分钟
Protein Folding Using Machine Learning

蛋白质就像我们体内的超级英雄,在支持我们组织、器官和全身过程的功能方面发挥着至关重要的作用。这些令人难以置信的分子由 20 种不同的构件组成,每一种都被称为氨基酸。令人难以置信的是,在我们体内存在着种类繁多的蛋白质,每种蛋白质都具有由数十甚至数百个氨基酸组成的独特序列。

最有趣的部分是,蛋白质中氨基酸的特定序列就像一个秘密代码,决定了它的超能力,例如它的功能。这个序列实际上决定了蛋白质的 3D 结构以及它在不同情况下的行为。你猜怎么着?这种独特的 3D 结构然后定义了蛋白质在各种生物过程中的特殊作用。所以,这不仅仅是一个普通的代码;它就像一个塑造蛋白质形式并释放其非凡功能的超级蓝图,使其成为我们身体运作方式的重要组成部分。

但这还不是全部!让我们深入探讨蛋白质折叠的迷人世界。想象一下:蛋白质就像艺术品,由长长的氨基酸链组成,它们的 3D 结构是释放其力量的关键。蛋白质折叠的过程就像一场复杂的舞蹈,蛋白质链优雅而精确地折叠成自己非凡且有功能的形状。这就像蛋白质发现了自己真正的身份,揭示了它独特的强大能力,以完成它在我们体内的使命。

然而,理解蛋白质折叠并非易事。鉴于该过程的巨大复杂性和蛋白质可以采用的无数种可能方式,这是一个难以解决的谜题。但科学家们正在追寻解开这个谜团,因为它对预测蛋白质结构至关重要,这对发现新药、研究疾病和进步生物工程等领域具有深远的影响。

理解它至关重要,因为它直接关系到蛋白质结构的预测。这种预测在药物发现、疾病研究和生物工程方面具有广泛的影响。然而,由于其复杂性和蛋白质可以采取的无数种构象,蛋白质折叠带来了挑战。

机器学习算法可以基于现有的蛋白质折叠数据进行训练,以学习蛋白质序列与其对应结构之间的模式和关系。然后,可以使用这些算法根据氨基酸序列预测新蛋白质的结构。通过分析已知蛋白质结构的庞大数据集,机器学习模型可以揭示控制蛋白质折叠的隐藏模式和原理。

机器学习在蛋白质折叠中的优势

以下是机器学习在理解蛋白质折叠方面的一些优势

  • 近年来,机器学习方法在蛋白质折叠研究中已被证明非常有益。这些技术使研究人员能够深入研究蛋白质结构与其特定功能之间的复杂联系,特别是在疾病相关蛋白质的背景下。揭示如此有价值的信息有助于阐明各种疾病的分子复杂性,为开发有针对性的有效治疗策略开辟了可能性。
  • 在蛋白质研究领域,机器学习已成为强大的盟友。通过利用广泛的蛋白质折叠数据,科学家们现在可以使用机器学习模型,仅根据氨基酸序列预测蛋白质复杂的 3D 结构。考虑到通过耗时且成本高昂的实验来确定蛋白质结构的传统方法,这一非凡的进展具有革命性。
  • 了解蛋白质的 3D 形状在药物发现中起着至关重要的作用。在创造新药物时,识别药物可以与之相互作用并改变其功能的蛋白质至关重要。通过利用机器学习,研究人员可以对蛋白质结构做出精确预测。这些有价值的信息使他们能够发现潜在的药物靶点,并开发能够有效与这些蛋白质相互作用的新型药物,为各种疾病提供有效的治疗。
  • 蛋白质工程与机器学习之间的联系具有深远的潜力。在生物技术和合成生物学领域,机遇巨大且令人兴奋。工程蛋白质可以在各种领域找到应用,例如酶生产,它们可以作为必需反应的催化剂。此外,生物燃料生产的格局可以得到改善,提供更绿色、更可持续的替代方案。即使在生物修复(利用生物体净化污染物)中,我们也可以看到通过整合机器学习和蛋白质工程取得的卓越进展所带来的益处。可能性是无限且充满希望的,为现实世界的挑战提供了新颖的解决方案。

使用机器学习预测蛋白质折叠的缺点

虽然使用机器学习预测蛋白质折叠具有许多优势,但这种方法也存在一些挑战和缺点,即

  • 蛋白质折叠是一个高度复杂的过程,涉及多种相互作用和形状。尝试根据氨基酸序列预测蛋白质的 3D 结构是一项具有挑战性且资源消耗巨大的任务。折叠的复杂性要求大量的计算能力,并且可能导致处理时间延长,特别是对于较大的蛋白质序列。
  • 尽管取得了显著进展,但目前用于预测蛋白质折叠的机器学习模型在准确性方面仍面临挑战。蛋白质结构的复杂性和构象的巨大范围给精确预测折叠模式带来了困难。虽然机器学习模型提供了有价值的见解,但像 X 射线晶体学和 NMR 波谱这样的实验方法对于获得极其准确的蛋白质结构仍然是必不可少的。
  • 即使氨基酸序列有细微变化,蛋白质的折叠模式也显示出显著的多样性。机器学习模型可能难以捕捉这种内在的生物变异性,从而导致预测结构与实际实验观察结果之间存在差异。
  • 蛋白质是高度动态的,能够根据其环境以及与其他分子的相互作用而呈现各种形状。将这种动态信息整合到机器学习模型中以预测蛋白质折叠是一项艰巨的任务。
  • 机器学习模型有时会过拟合,尤其是在使用小型数据集进行训练时。在蛋白质折叠预测的情况下,过拟合可能导致模型在训练数据上表现良好,但在新且未见的蛋白质序列上预测准确率下降。确保机器学习模型稳健且能够泛化到不同的蛋白质结构仍然是该领域的一项重大挑战。

使用 Python 进行机器学习中的蛋白质折叠预测

关于数据集

该数据集包含从结构生物学协作研究中心 (RCSB) 蛋白质数据库 (PDB) 检索到的蛋白质信息。PDB 档案是一个庞大的数据集合,包括蛋白质和其他重要生物大分子的原子坐标和其他详细信息。为了确定分子中每个原子的位置,结构生物学家使用 X 射线晶体学、NMR 波谱和低温电子显微镜等各种方法。一旦获得这些信息,他们就会将其存入档案,由 wwPDB 进行注释并公开提供。

随着全球实验室研究的进展,PDB 档案不断发展。这使其成为研究人员和教育工作者的激动人心的资源。它提供了许多参与关键生命过程的蛋白质和核酸的结构,包括核糖体、癌基因、药物靶点,甚至整个病毒。然而,由于数据库的庞大,导航和查找特定信息可能会很困难。通常,一种分子有多种可用结构,或者结构是不完整的、经过修饰的,或者与其天然形式不同。

尽管存在挑战,PDB 档案仍然是科学界宝贵的数据来源,提供了有关各种生物分子结构的大量信息。研究人员和教育工作者可以探索这个庞大的存储库,以深入了解蛋白质和其他大分子的复杂性,支持结构生物学领域的进步。

内容

有两个数据文件。两者都根据蛋白质的“structureId”进行排列

  • pdb_data_no_dups.csv 包含蛋白质元数据,其中包括蛋白质分类、提取方法等详细信息。
  • data_seq.csv 包含 >400,000 个蛋白质结构序列。

现在,我们将尝试构建一个模型来预测蛋白质结构。

代码

  • 导入库

输出

Protein Folding Using Machine Learning

我们利用 sidechainnet 来训练我们的机器学习模型,旨在根据给定的氨基酸序列预测蛋白质结构(角度或坐标)。这些示例几乎达到了全面模型训练所需的最低要求。

此处的代码默认设置为在调试数据集上进行训练。但是,您可以自由修改“scn.load”调用并选择其他 SidechainNet 数据集,例如 CASP12,进行进一步的实验和训练。

在这里,我们将使用两个简化的循环神经网络 (RNN) 来预测蛋白质的角度表示,使用它们对应的氨基酸序列。

  1. 序列 + PSSM Net_Protein 模型使用氨基酸序列(独热向量)、位置特定评分矩阵 (PSSM) 和信息量作为输入。
  2. 仅序列 Net_Protein 模型接收表示为整数张量的氨基酸序列(作为输入)。

内部 RNN 处理氨基酸序列,为每个氨基酸生成角度向量。虽然其他模型只使用了 3 个角度,但在我们的情况下,我们可以预测 SidechainNet 提供的所有 12 个角度。

  • 使用 Pytorch 进行数据访问

请求 DataLoaders 时,您将收到一个字典,该字典将分割名称映射到相应的数据加载器。

输出

Protein Folding Using Machine Learning

当批次被生成时,每个 DataLoader 会返回一个 Batch 名为 namedtuple 的对象,该对象具有以下属性:

  • pids: 一个元组,包含此批次中蛋白质的 Net_Protein/SidechainNet ID。
  • seqs:一个编码序列的张量,根据 scn.load(...seq_as_onehot) 参数的设置,表示为整数或独热向量。
  • msks:一个缺失残基掩码的张量,它可能与数据中的填充重叠。
  • evos:一个 PSSM(位置特定评分矩阵)+ 信息量的张量。
  • secs:一个表示二级结构的张量,根据 scn.load(...seq_as_onehot) 参数的设置,表示为整数或独热向量。
  • angs:一个表示角度的张量。
  • crds:一个表示坐标的张量。
  • ress:一个包含 X 射线晶体分辨率的元组。

输出

Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning
  • 辅助函数

辅助函数是代码中用于执行特定任务的小型、可重用代码片段。这些函数旨在简化复杂操作,提高代码的可读性,并避免代码重复。通过将复杂任务分解为更小、可管理的单元,辅助函数使主代码更加有序且易于维护。

  • 注意力层

注意力层在深度学习模型中很重要,因为它们有助于模型专注于数据中最相关部分。它们就像人类的注意力一样,在学习过程中,某些事物比其他事物更重要。


  • 训练

在这里,我们将训练模型,例如将二级蛋白质结构矩阵作为输入。

模型输入

  • 通过整合 PSSM、二级结构和信息量来增强模型输入,这些信息可以从 batch.seq_evo_sec 属性中访问。
  • 使用的数据集是 CASP 12 数据集的最小版本,经过 30% 的稀疏化以降低复杂性。
  • 通过增加隐藏状态维度到 1024 来扩大模型尺寸,以提高性能。

PSSM

PSSM,也称为位置特定评分矩阵或 DNA 上下文中的位置权重矩阵,表示一个矩阵,为序列中的每个位置提供特定的分数或概率。

这就像一个特殊的代码,告诉我们每个字母(氨基酸)出现在秘密消息(蛋白质序列)的不同位置的可能性。科学家们通过比较来自不同生物的许多相似秘密消息来创建这个代码。PSSM 帮助他们了解哪些字母很重要,哪些字母可以更改而不影响消息的含义。这就像拥有一个秘密解码器,可以帮助科学家们更多地了解蛋白质中的秘密消息以及它们的工作原理。

由于 PSSM 和序列都有 20 种不同的信息,二级结构有 8 种可能性,信息量是每个部分的单个数字;当我们将所有这些放在一起时,我们需要总共 49 个值来正确表示它们。

输出

Protein Folding Using Machine Learning


输出

Protein Folding Using Machine Learning
Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning
  • 可视化预测

在许多情况下,我们使用scn.BatchedStructureBuilder,它需要两项内容:

  • 一个数字张量,代表一组中的蛋白质序列。这些数字来自我们在训练或测试过程中遍历的数据。
  • 一个数字张量,显示蛋白质每个部分的预测角度。这些数字的范围应在 -π 到 +π 之间。

我们有一个知道如何猜测某些角度的正弦和余弦值的模型。但我们需要实际的角度,而不是正弦和余弦值。因此,我们使用一个名为scn.structure.inverse_trig_transform的特殊工具将正弦和余弦值转换回实际角度。一旦我们有了实际角度,就可以将它们提供给 BatchedStructureBuilder。


  • 推理

在这里,我们将模型的预测蛋白质结构与实际蛋白质结构进行比较。为了便于理解,我们使用 3D 图进行可视化比较。每个示例都有两个图:上面的图显示了模型对蛋白质结构的预测,下面的图显示了实际的蛋白质结构。这使我们能够看到模型的预测与实际蛋白质结构匹配的程度。

示例 (01)

输出

Protein Folding Using Machine Learning

示例 (02)

输出

Protein Folding Using Machine Learning

示例 (03)

输出

Protein Folding Using Machine Learning

示例 (04)

输出

Protein Folding Using Machine Learning

示例 (05)

输出

Protein Folding Using Machine Learning

示例 (06)

输出

Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning

训练 (序列 → 角度)

现在我们将训练模型,同时将蛋白质序列作为输入。

信息流:这里的信息流在一个简单的 Transformer(Attention)模型中,该模型处理序列数据。输入表示为 [Layers*21],经过 Embedding 层,得到 [Layers. Dense Embedding]。然后,它通过 LSTM 层,转换为 [Layers. Dense Hidden]。最后,输出从 LSTM 出来并通过 [Layers Dense Output] 层。在此过程中,模型处理输入数据,提取相关信息并生成最终输出,而不会对其进行修改。

处理角度的圆形性质:为了帮助我们的模型理解角度 π 和 -π 是相同的,我们使用了一个特殊的技巧。我们不直接预测角度,而是为每个角度预测两个值:sin 和 cos。然后,我们使用 atan2 函数将这两个值组合起来恢复角度。这样,模型的输出形状将为 L×12×2,其中 L 是蛋白质序列的长度,值为 -1 到 1 之间。这种方法使我们能够正确处理角度并提高预测的准确性。

输出

Protein Folding Using Machine Learning
Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning

输出

Protein Folding Using Machine Learning

推理 (序列 → 角度)

示例 (09)

输出

Protein Folding Using Machine Learning

示例 (10)

输出

Protein Folding Using Machine Learning

示例 (11)

输出

Protein Folding Using Machine Learning

示例 (12)

输出

Protein Folding Using Machine Learning
  • 我们已经成功构建了一个基于注意力的模型,该模型能够以高精度预测蛋白质结构。我们使用了两种不同的方法训练了该模型:一种以二级蛋白质结构矩阵作为输入,另一种以蛋白质序列作为输入。两种方法都取得了有希望的结果。
  • 我们模型的潜在改进是使用多序列比对 (MSA) 作为训练数据。MSA 提供了有关氨基酸进化保守性的额外信息,这可能有助于提高模型的性能。
  • 目前,我们的模型将角度作为蛋白质结构预测的目标。然而,我们可以探索使用坐标距离和坐标作为目标。这种方法可能导致蛋白质结构预测更加精确和准确。
  • 总的来说,我们的模型在蛋白质结构预测领域显示出巨大的潜力,并且对不同训练数据和目标变量的进一步探索可以进一步提高其性能。

使用机器学习进行蛋白质折叠的未来展望

机器学习在蛋白质折叠领域的未来潜力令人难以置信,它有能力改变我们对蛋白质结构和功能的理解。通过利用机器学习的能力并采取跨学科战略,我们正站在发现新机遇和拓展科学探索边界的门槛上。当我们继续解开围绕蛋白质折叠的谜团时,我们踏上了一条革命性研究和开创性应用的道路,这将对人类福祉及其他方面产生深远影响。

结论

蛋白质折叠是一个关键而复杂的过程,它深刻地影响着蛋白质的行为和功能。机器学习与生物信息学的融合提供了一条令人兴奋的途径来深入研究这个复杂的世界,使我们能够以前所未有的精度预测蛋白质结构。机器学习和生物信息学之旅有望带来变革性的发现,将彻底改变医学和生物技术。当我们向前迈进时,蛋白质折叠的谜团将逐渐被解开,揭示生命本身的深刻复杂性。有了机器学习作为我们的盟友,我们离揭开蛋白质折叠的秘密及其在生命宏大织锦中的广泛含义越来越近了。