207

ProLIF:蛋白-配体相互作用指纹工具

ProLIF 把蛋白-配体相互作用编码成指纹,适合比较姿势、统计 MD 轨迹中相互作用的稳定性。这篇给出完整代码与指纹的实际用法。

ProLIF(Protein-Ligand Interaction Fingerprints)把蛋白与配体之间的相互作用编码成结构化的指纹——哪个残基、以什么类型的相互作用、在哪一帧发生。相比只看一张结合模式图,指纹让相互作用变成可统计、可比较、可做机器学习特征的数据。

安装

pip install prolif
# 依赖 RDKit 与 MDAnalysis

分析 MD 轨迹中的相互作用

import MDAnalysis as mda
import prolif as plf

u = mda.Universe("topology.pdb", "traj.dcd")
protein = plf.Molecule.from_mda(u.select_atoms("protein"))
lig_sel = u.select_atoms("resname MOL")

fp = plf.Fingerprint(["HBAcceptor", "HBDonor", "Hydrophobic",
                      "PiStacking", "Anionic", "Cationic", "CationPi"])
fp.run(u.trajectory[::5], lig_sel, u.select_atoms("protein"))

df = fp.to_dataframe()          # MultiIndex 列:(ligand, residue, interaction)
occupancy = df.mean() * 100     # 每种相互作用的占有率(%)
print(occupancy.sort_values(ascending=False).head(15))

输出是一张按帧 × (残基, 相互作用类型) 的布尔表。对帧取平均就得到占有率——这是把 MD 轨迹转成可读结论最直接的方式。

支持的相互作用类型

类型 说明
HBDonor / HBAcceptor 氢键(分供体受体两个方向)
Hydrophobic 疏水接触
PiStacking(Face/Edge) 芳环堆积,可区分面对面与边对面
CationPi / PiCation 阳离子-π
Anionic / Cationic 盐桥
XBDonor / XBAcceptor 卤键
MetalDonor / MetalAcceptor 金属配位
VdWContact 范德华接触

每种相互作用的几何判据(距离、角度阈值)都可自定义。默认参数适用于多数情况,但金属体系、非常规相互作用可能需要调整。

三个实际用法

  • 判断对接姿势是否可信:把对接的多个姿势各自算指纹,与共晶结构的指纹比对。能复现关键相互作用的姿势才值得采纳,这比只看对接分数可靠得多。
  • 统计相互作用稳定性:MD 轨迹上占有率 >70% 的相互作用是稳定的结构特征;<30% 的属于偶发接触,不应写进结合模式结论。这条判据能挡掉大量过度解读。
  • 做 SAR 解释与建模特征:把一系列类似物的指纹拼成矩阵,与活性数据一起分析,可以看出哪些相互作用与活性提升相关;指纹本身也可以直接作为机器学习特征。
# 比较多个对接姿势与参考晶体结构的指纹相似度
poses = plf.sdf_supplier("docked_poses.sdf")
fp = plf.Fingerprint()
fp.run_from_iterable(poses, protein)
df_poses = fp.to_dataframe()

ref = df_poses.iloc[[0]]                      # 假设第一行是参考
tanimoto = df_poses.apply(
    lambda r: (r & ref.iloc[0]).sum() / (r | ref.iloc[0]).sum(), axis=1)
print(tanimoto.sort_values(ascending=False))

可视化

fp.plot_barcode()                    # 相互作用随时间的条码图
fp.plot_lignetwork(lig_mol, kind="frame", frame=0)   # 交互式 2D 网络图

条码图(barcode)在展示 MD 结果时特别有用:横轴时间、纵轴各相互作用,一眼能看出哪些持续存在、哪些中途丢失。

上手提示

  • 它把相互作用变成可统计的数据,这是相对看图的本质进步;
  • 用「能否复现共晶关键相互作用」筛对接姿势,比看分数可靠;
  • 占有率 >70% 才算稳定相互作用,<30% 不要写进结论;
  • 指纹可直接作为 ML 特征,用于 SAR 建模。

延伸资源