蛋白质相互作用预测:序列与结构特征的深度结合

FreeGuideOnline 最新 2026-06-26

蛋白质相互作用预测:序列与结构特征的深度结合

1. 什么是蛋白质相互作用

蛋白质相互作用(Protein-Protein Interaction, PPI)是指两个或多个蛋白质分子通过非共价键形成稳定的复合物,进而执行信号传导、代谢调控、免疫应答等生物学功能。理解PPI网络是揭示细胞工作机制的关键步骤。

实验方法如酵母双杂交、免疫共沉淀等可以检测PPI,但通量低、成本高。计算方法(尤其是基于机器学习和深度学习的方法)已成为大规模预测和补充实验数据的重要手段。

你将在本教程中学到

  • PPI预测的经典框架与数据表示
  • 序列特征与结构特征的核心提取方法
  • 如何将序列与结构信息深度融合,提升预测准确性
  • 典型的模型架构与工程实践要点

2. 蛋白质相互作用预测的核心范式

任何PPI预测模型都可以抽象为三个组件:输入表示特征提取交互决策

常见的输入形式包括:

  • 序列对:两条氨基酸序列
  • 结构对:两个蛋白质的三维坐标或接触图
  • 序列+结构:同时提供序列和结构信息
  • 多模态:进一步加入功能注释、进化信息等

特征提取器负责从原始输入中学习有意义的表示,交互决策模块则判断这对蛋白质是否相互作用(二分类)或结合亲和力(回归)。


3. 序列特征提取方法

3.1 氨基酸组成与位置特异性打分矩阵

最基础的序列特征是氨基酸组成(AAC)和二肽组成(DPC),它们统计单个或相邻氨基酸的频率。更丰富的信息来自位置特异性打分矩阵(PSSM),通过PSI-BLAST搜索同源序列生成。PSSM的每一列描述了某个位置上20种氨基酸的进化保守性,维度为 L×20

3.2 基于语言模型的蛋白质表示

近年来,预训练的蛋白质语言模型(如ProtBERT、ESM-2)从海量序列数据中学习深层语义。给定一条序列,模型输出每个残基的稠密向量表示(例如ESM-2的最后一层隐藏状态),可直接用于下游预测。这些表示捕获了长程依赖和结构倾向,比手工特征更强大。

# 示例:使用ESM-2提取序列特征
import torch
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("facebook/esm2_t33_650M_UR50D")
model = AutoModel.from_pretrained("facebook/esm2_t33_650M_UR50D")

sequence = "MKFLIVLA"
inputs = tokenizer(sequence, return_tensors="pt")
with torch.no_grad():
    outputs = model(**inputs)
# outputs.last_hidden_state shape: (1, L+2, 1280),去掉首尾特殊token即为残基级表示

4. 结构特征提取方法

4.1 从实验结构到接触图

如果蛋白质拥有PDB结构,可以直接提取残基间距离矩阵、接触图(以8Å为阈值)、溶剂可及表面积(SASA)等几何特征。两条链的界面残基通常由其Cβ原子距离判定。

4.2 预测的结构信息

大多数蛋白质没有实验结构,此时可利用AlphaFold2ESMFold预测结构。预测的接触概率图(distogram)和预测局部距离差异测试(pLDDT)置信度也可以作为输入特征,为模型提供三维约束信息。

4.3 图网络表示

结构天然适合用图表示——残基为节点,空间邻近的残基之间连边。图神经网络(GCN, GAT)可以直接在蛋白质图上进行消息传递,捕获局部几何模式。对于蛋白质复合物,可以构建包含两条链的更大图,并在界面上添加跨链边。


5. 序列与结构特征的深度融合策略

融合序列与结构信息并不是简单的拼接,而是要在训练中让两种模态协同工作。典型的深度结合方法包括:

5.1 多输入-单编码器架构

构建一个统一的编码器,同时接收序列特征(如语言模型嵌入)和结构特征(如距离矩阵、角度)作为多通道输入。例如,可以将PSSM与预测的接触图沿通道维度拼接,送入卷积神经网络或Transformer,让模型自行学习跨模态关联。

5.2 双塔结构 + 交叉注意力

采用双塔网络分别处理两条蛋白质,每条塔内融合自身序列与结构特征。之后,用交叉注意力模块(类似Transformer decoder中的cross-attention)让两个蛋白质的表示进行交互,生成配对表示。最后对该配对表示进行池化并分类。

蛋白质A: 序列塔A ─┐
                  ├── 交叉注意力 ── 池化 ── 分类器
蛋白质B: 序列塔B ─┘
          + 结构塔A/B (可共享或独立)

5.3 图到图的交互建模

将两个蛋白质表示为两个子图,通过图匹配网络边增强图神经网络同时对分子间和分子内边进行卷积。这种方法可以在残基层面模拟结合界面的几何互补性。

5.4 预训练与微调范式

在融合前,可以先对序列编码器和结构编码器分别进行自监督预训练(如掩码语言建模、结构去噪),再在下游PPI任务上联合微调。这种方式显著缓解了标注PPI数据稀缺的问题。


6. 关键评估指标与数据集

6.1 基准数据集

  • Human PPI(HuRI):大规模人类相互作用组参考集
  • STRING:包含物理和功能关联的PPI数据,带有多物种注释
  • SHS27k/148k:用于结构增强PPI预测的数据集,包含从蛋白质复合物中提取的正样本和随机配对的负样本
  • DIP:蛋白质相互作用的数据库,常被用作金标准测试集

6.2 评价指标

  • AUROC/AUPRC:在不平衡数据中,AUPRC更重要
  • F1-Score, MCC:评估分类性能
  • 前k召回率:评估排序能力,适用于网络扩充任务

注意:应严格按序列相似性结构相似性划分训练/测试集,防止数据泄漏导致虚高评价。


7. 实战:搭建一个序列+结构的PPI预测模型

以下以PyTorch Geometric为例,简要给出一个双塔图网络 + 交叉注意力的骨架代码思路。

7.1 蛋白质图构建

  • 节点特征:氨基酸类型one-hot + ESM嵌入(可选)
  • 边:k近邻图(k=30),基于预测结构的Cα距离
from torch_geometric.data import Data

def build_graph(seq, coords):
    # coords: (L, 3) Cα坐标
    # 计算距离图,取top-k作为边
    dist = torch.cdist(coords, coords)
    k = 30
    edge_index = ...  # 获取每个节点的k个最近邻
    x = ... # 节点特征,如one-hot(残基类型) 或词嵌入
    return Data(x=x, edge_index=edge_index)

7.2 图编码塔

import torch.nn as nn
from torch_geometric.nn import GCNConv

class ProteinGCN(nn.Module):
    def __init__(self, in_channels, hidden_channels):
        super().__init__()
        self.conv1 = GCNConv(in_channels, hidden_channels)
        self.conv2 = GCNConv(hidden_channels, hidden_channels)

    def forward(self, data):
        x, edge_index = data.x, data.edge_index
        x = self.conv1(x, edge_index).relu()
        x = self.conv2(x, edge_index).relu()
        return x  # (L, hidden_channels)

7.3 交叉注意力与配对池化

  • 将两个蛋白质各节点的表示展平并添加位置编码(可选),输入一个标准Transformer encoder的交叉注意力块。
  • 用一个可学习的 [CLS] token 或注意力池化得到配对表示。
class CrossAttentionFusion(nn.Module):
    def __init__(self, dim, heads):
        super().__init__()
        self.cross_attn = nn.MultiheadAttention(dim, heads, batch_first=True)

    def forward(self, zA, zB):
        # zA, zB: (batch, L_A, dim), (batch, L_B, dim)
        # 将zB作为key和value,zA作为query
        attn_out, _ = self.cross_attn(zA, zB, zB)
        return attn_out

最终将融合的特征经过全连接层输出2维logits,交叉熵训练。


8. 挑战与未来方向

  • 柔性结合与构象变化:蛋白质在结合时可能发生显著的构象重排(induced-fit),静态结构或预测结构难以捕捉。
  • 多体相互作用与条件依赖性:许多蛋白质的相互作用依赖于翻译后修饰、亚细胞定位或其它伙伴的存在。
  • 数据偏置与负样本定义:目前大部分负样本是随机配对的非相互作用对,但与真实非相互作用的生物空间分布存在偏差。如何构造更符合生物学意义的负样本是关键难题。
  • 可解释性:从模型预测中还原关键的结合界面残基,有助于实验验证和药物设计。注意力权重可视化、梯度归因等方法正在被积极探索。

9. 总结

本教程介绍了蛋白质相互作用预测中序列与结构特征深度结合的主流方法:

  • 序列特征已从简单统计进化到预训练语言模型。
  • 结构特征(实验或预测)提供了接触模式和几何约束。
  • 深度融合架构(如双塔+交叉注意力、图交互网络)能够充分利用多模态信息。
  • 合理的基准测试与负采样策略对模型评估至关重要。

将序列与结构流有效融合,正在将PPI预测从“是否结合”推向“怎样结合”的精细层面。希望本教程能为你的进一步学习或项目提供扎实的起点。


推荐延伸阅读

  • Jumper, J. et al. “Highly accurate protein structure prediction with AlphaFold.” Nature (2021).
  • Rives, A. et al. “Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences.” PNAS (2021).
  • Gligorijević, V. et al. “Structure-based protein function prediction using graph convolutional networks.” Nature Communications (2021).