相互作用预测简介

什么是生物分子相互作用

我刚入行做药物研发时,被问得最多的一个问题是:

「这个蛋白到底跟哪个小分子结合?」

说白了,一切生命活动都靠分子之间的互相「握手」来实现。蛋白质对接、基因调控、信号传导,本质都是分子识别。如果能把这种「握手」关系预测准,那药物设计、疾病机理研究就快多了。

相互作用预测,就是利用算力和数据,去推测两个生物实体之间有没有结合、结合强度怎么样。常见的有:

  • 蛋白质-蛋白质相互作用 (PPI) – 两个蛋白之间直接物理接触
  • 药物-靶标相互作用 (DTI) – 小分子药物与蛋白靶标结合
  • 基因-疾病关联 – 突变基因与表型的因果联系
  • miRNA-靶基因调控 – 非编码RNA对基因表达的抑制或促进
相互作用预测是生物信息学里最「出成果」的方向之一。我参与的第一个工业级项目,就是给某药企做激酶抑制剂活性预测,帮他们从3万候选分子里筛出17个体外有效的先导。

蛋白质-蛋白质相互作用 (PPI)

PPI是细胞功能网络的基础。两个蛋白能否结合,取决于它们的表面互补性、静电分布、疏水区域等。传统方法靠结构模拟(比如分子对接),但结构数据太少,算不准。

近年来,序列和功能特征成了主流。我用过的PPI特征包括:

  • 氨基酸组成 + 二肽组分
  • 进化保守性(PSSM矩阵)
  • 基因本体(GO)注释相似度
  • 网络拓扑属性(度、介数中心性)

举个例子,预测一对蛋白是否相互作用,我们常用这样的数据格式:

prot_A,prot_B,label
P04637,P38936,1
P04637,Q07812,0
Q01094,P42345,1
...

每一行代表一个蛋白对,1表示有实验验证的相互作用,0表示非相互作用(负样本)。

选负样本是门手艺活。我建议从不同亚细胞定位的蛋白里随机配对,再检查是否被已知数据库排除,这样能减少假阴性。

药物-靶标相互作用 (DTI)

DTI预测是药物发现的核心步骤。一个药物分子是否有效,首先要看它能不能跟目标蛋白结合。传统的高通量筛选成本极高,一个化合物库可能要烧掉几百万。而迁移学习正好能利用已有药物的数据,预测新分子。

药物分子用SMILES字符串表示,靶标蛋白用氨基酸序列。比如:

SMILES,Target_UniProt,Label
CC(C)C1=CC=CC=C1C(=O)NO,P24941,1
C1=NC2=C(N1)C(=NC=N2)N,P50402,0
...

我参与过的一个迁移学习项目,就是用几百个已上市药物的PPI数据,预训练一个图神经网络,然后微调预测全新的GPCR靶点,AUC直接比传统RF高了0.12。

注意SMILES的标准化。不同数据库对同一分子可能写法不同,比如苯环有Kekulé形式和芳香形式。我曾经因为没统一规范化,导致模型训了三天,效果奇差。最后检查出来是SMILES编码不一致。

其他相互作用类型

除了PPI和DTI,还有几类在文献中也很常见:

类型实体典型特征例子
基因-疾病基因vs疾病表型GO注释、GWAS统计量BRCA1→乳腺癌
miRNA-靶基因miRNA vs mRNA种子区匹配、保守性hsa-miR-21→PTEN
化合物-化合物药物vs药物化学指纹、副作用相似度多药联用协同效应

每种交互类型都有其独特的特征空间,但迁移学习的核心思想不变:用一个领域学到的模式,帮助另一个相关领域。比如用DTI数据预训练的模型,再微调到miRNA-靶基因预测上,常常比从头训练效果好。

常见数据资源与格式

做相互作用预测,数据是第一道坎。我列几个常用数据库:

  • PPI: STRING(整合多种证据)、BioGRID(实验验证)、HPRD(人工注释)
  • DTI: DrugBank(FDA批准药物)、BindingDB(结合亲和力)、ChEMBL(生物活性)
  • 基因-疾病: DisGeNET(手动+自动)、OMIM(遗传疾病)

数据下载后,通常处理成统一表格:

entity_A,entity_B,interaction_type,score,source
CHEMBL1201893,UniProt:P24941,DTI,0.92,DrugBank
UniProt:P04637,UniProt:P38936,PPI,0.89,STRING
ENSG00000141510,DOID:162,GD,0.73,DisGeNET
注意数据库版本。STRING v12和v11.5的网络覆盖率差别很大。我习惯在项目开始前固定所有数据源的版本号,避免后续结果不可复现。

评价指标

预测模型好不好,得用几个硬指标说话。常用的有:

指标全称说明
AUC-ROC受试者工作特征曲线下面积整体排序能力,0.5随机,1.0完美
AUC-PR精准率-召回率曲线下面积正负样本不平衡时更可靠
F1-score精准率和召回率的调和平均二分类常用,阈值依赖
MCC马修斯相关系数兼顾TP/FP/TN/FN,-1到1

我个人的经验是:当正样本比例低于10%时,别太信AUC-ROC,多看看AUC-PR或Precision@k。有一次我提交给合作方的结果,AUC-ROC高达0.94,但实际top-100预测里只有12个是对的——因为负样本太多太简单。

交叉验证时注意实体泄露。PPI预测中,如果同一个蛋白出现在训练集和测试集的不同对里,模型会「作弊」。我曾经吃过这个亏,后来改用「蛋白层面分割」(确保测试集里所有蛋白在训练时都没见过)。
相互作用预测知识体系 生物分子相互作用 蛋白质-蛋白质 PPI 药物-靶标 DTI 基因-疾病 GDA 数据资源(STRING / DrugBank / DisGeNET …) 预测方法(传统ML → 深度学习 → 迁移学习) 评价:AUC-ROC / AUC-PR / F1 / MCC 注意实体泄露和类别不平衡

小结

相互作用预测是一个「数据驱动」的领域。我们从PPI和DTI这些经典问题出发,掌握了核心的数据格式、评价方法和常见坑。下一阶段,这些知识会直接用在迁移学习模型的设计和训练中。

记得我刚入行时总觉得「特征工程最重要」,直到遇到迁移学习,才发现好的预训练模型能替你学出更鲁棒的特征。但前提是——你得先理解这些相互作用本身是什么。