1. 课程导入与工程全景
蛋白配体图网络建模,是把蛋白质与配体之间的相互作用抽象成“图”的结构,再用图神经网络(GNN)等模型去学习、预测或生成这种相互作用的工程方法。这里的“图”由节点和边构成:节点通常代表原子、残基、片段或整个分子,边代表化学键、空间邻近、氢键、疏水接触、静电作用等关系。相比把分子压成一条 SMILES 字符串或一组固定长度的描述符,图结构保留了“谁和谁在什么距离、以什么方式接触”的拓扑信息,这正是决定结合亲和力、选择性和结合位姿的关键。
本课程要解决的核心问题可以归纳为四类。第一是表示问题:如何把蛋白口袋和配体同时编码进一张异构图,让模型既看到配体的键连接,也看到它与口袋残基的跨分子接触。第二是预测问题:给定蛋白和配体,预测结合亲和力(回归)、是否结合(分类)或结合位姿(几何)。第三是泛化问题:模型在训练集上表现好,遇到新蛋白家族或新骨架配体时是否仍然可靠,这涉及数据划分方式与分布外评估。第四是工程问题:从结构文件到可训练图数据、从模型到可复现实验、从指标到可解释结论,整条链路如何稳定运行。
典型应用场景包括:虚拟筛选中的亲和力排序、先导化合物优化中的活性与选择性预测、突变对结合影响的评估、结合位点与结合模式的识别,以及以图生成为核心的分子设计。这些场景对输入的要求不同:有的只需要蛋白序列和配体 SMILES,有的必须依赖复合物晶体结构或预测结构。工程上必须先明确“我手上有什么数据”,再决定图怎么建、模型怎么选。
下面这张图给出本节的全景关系:左侧是三类原始输入,中间是图构建与模型,右侧是任务输出与评估,底部是贯穿全流程的数据与版本管理。它强调的不是线性步骤,而是“输入—图表示—模型—输出—反馈”的闭环结构。
从技术栈看,这条链路通常由四层组成。数据层负责读取 PDB、mmCIF、SDF、SMILES,并做质子化、去水、补全缺失原子等预处理;图构建层把结构转成节点特征矩阵和边索引,常用工具包括 RDKit、Biopython、ProDy 以及 PyG 的 Data 对象;模型层以 PyTorch 为底座,配合 PyTorch Geometric 或 DGL 实现消息传递;实验管理层用 Hydra 或 YAML 配置、MLflow 或 TensorBoard 记录指标,保证每次运行可追溯。
一个完整的项目流程可以这样落地。假设我们要预测一组配体对某个靶点的结合亲和力,示例数据为 1200 个复合物,按蛋白序列相似度 40% 聚类后划分为训练 900、验证 150、测试 150,避免同源泄漏。图构建时,配体原子作为节点,键和 4.5 Å 内的非键接触作为边;蛋白侧取口袋 8 Å 范围内的残基,以残基为节点,残基间 8 Å 内接触为边,并加入配体原子—残基的跨分子边。节点特征示例:原子用元素 one-hot、杂化类型、是否芳香、部分电荷;残基用氨基酸类型、相对溶剂可及性、是否形成氢键。
# 示例:用 PyG 组织一个复合物图(参数为教学假设)
data = Data(
x=ligand_atom_features, # [N_atom, F_atom]
edge_index=ligand_bond_index, # [2, E_bond]
edge_attr=ligand_bond_attr, # [E_bond, F_bond]
)
# 跨分子接触边:配体原子 i 与口袋残基 j 距离 <= 4.5 Å
cross_edge_index = contact_pairs # [2, E_cross]
# 训练目标:pIC50 或 -logKd,回归损失用 MSE
loss = mse_loss(model(data), y_affinity)
训练时观察三条曲线:训练损失、验证损失、验证集 RMSE。若训练损失持续下降而验证损失在若干轮后回升,说明过拟合,可减小隐藏维度、增加 dropout 或引入边丢弃。测试阶段除 RMSE 外,还应看排序指标,例如把测试集按预测值排序,计算 top 10% 中真实高亲和力样本的比例,即富集因子。若富集因子接近随机水平,说明模型没有学到可用于筛选的排序信号,需要回到图构建检查接触阈值和特征是否丢失关键信息。
最后要建立“可解释—可复现—可迭代”的意识。可解释性可以通过注意力权重或边掩码实验观察哪些残基—配体接触对预测贡献大;可复现性要求固定随机种子、记录数据版本与超参数;可迭代性要求把每次失败案例归因到具体环节,例如某类配体因缺少卤键特征而系统性低估,就回到特征工程补充相应描述。图网络建模不是一次训练,而是一条从结构到图、从图到模型、从模型到结论、再从结论回到图构建的持续闭环。