2. 蛋白与配体数据获取
蛋白–配体图网络建模的第一步不是搭网络,而是把“节点”和“边”的原始证据取回来。这里的节点通常是蛋白(或蛋白口袋残基)与配体小分子,边则是二者之间的结合关系,其强度由亲和力数据(Kd、Ki、IC50、EC50 等)刻画。数据来源不同,语义、粒度和质量差异极大:PDB 提供三维复合物结构,UniProt 提供蛋白序列与注释,ChEMBL 与 BindingDB 提供带测量值的活性记录。若不加区分地合并,后续图网络会把“同一件事”拆成多个节点,或把不同量纲的数值当成同一种边权。
四类数据源的分工与关键字段
PDB 的核心价值是结构证据:一个条目包含蛋白链、配体杂原子(HETATM)、辅因子、水分子和金属离子,以及分辨率、R 因子等方法学信息。检索时常用 RCSB PDB 的 REST 接口或 rcsbsearch,按 rcsb_entry_info.resolution_combined、rcsb_nonpolymer_entity_container_identifiers 等字段过滤。需要注意:PDB 中的配体不都是“目标配体”,缓冲液组分、离子、去垢剂也会以 HETATM 出现,必须用 chem_comp.type 或分子量阈值剔除。
UniProt 负责把结构中的蛋白链映射到标准序列。关键字段包括 accession、sequence、reviewed(是否人工审阅)、organism 和 cross-reference 中的 PDB 映射。实践中优先使用 reviewed(Swiss-Prot)条目,因为未审阅条目存在序列冗余和注释缺失。PDB 链与 UniProt 的对应关系可通过 SIFTS 映射获得,避免仅凭序列相似度猜测。
ChEMBL 与 BindingDB 是亲和力数据的主力。ChEMBL 以 activities 表为核心,字段包括 standard_type(IC50/Ki/Kd/EC50)、standard_value、standard_units(通常为 nM)、assay_organism、target_chembl_id 与 molecule_chembl_id。BindingDB 则以 Ki、IC50、Kd 及对应靶点、物种、温度、pH 记录为主。两者都允许同一对“蛋白–配体”出现多条测量,且可能来自不同实验条件。
实体归一化:让同一对象只有一个身份
蛋白侧最常见的错误是把不同 UniProt 条目当成不同蛋白,或把同一蛋白的多个 PDB 结构当成多个节点。正确做法是:以 UniProt accession 作为蛋白主键,PDB 条目只作为结构证据挂在其下。若一个 PDB 条目包含多条链,需通过 SIFTS 或序列比对确定每条链对应的 UniProt 条目,并记录链 ID 与残基范围。对于没有 UniProt 映射的合成肽或突变体,可保留为独立节点并标注来源。
配体侧的核心是去重。同一分子可能以不同盐型、不同立体化学或不同质子化状态出现。推荐以 InChIKey 的前 14 位(骨架层)做粗去重,再以完整 InChIKey 做精确去重。SMILES 可用于快速比对,但需先标准化(去盐、中和电荷、统一互变异构体)。ChEMBL 的 molecule_chembl_id 与 BindingDB 的 monomerid 不能直接跨库对齐,必须通过 InChIKey 或结构比对建立映射。
亲和力数据的量纲统一与偏差控制
不同数据库的亲和力类型不同,直接混用会引入系统性偏差。建议统一转换为 pKd 或 pKi 形式:若原始值为 Kd(nM),则 pKd = 9 − log₁₀(Kd);若为 IC50,需注意它受底物浓度影响,不能等同于 Kd,应单独标记为 IC50 类型并在建模时分层处理。单位换算必须显式记录,例如 1 μM = 1000 nM,1 mM = 10⁶ nM。
同一蛋白–配体对常有多条测量值,差异可能来自实验条件(温度、pH、缓冲液、物种)。处理策略有三种:取中位数、取最小值(最乐观)、或保留全部并加权。对于图网络,推荐先按 target + ligand + standard_type 分组,计算中位数与标准差;若标准差超过 1 个 log 单位,标记为“高方差边”,在训练时降权或剔除。此外,ChEMBL 中大量 IC50 记录来自高通量筛选,置信度较低,应优先保留 assay_confidence_score ≥ 8 的记录。
缺失值的识别与处理
缺失值分三类:一是配体结构缺失(只有 SMILES 无三维构象),二是蛋白序列缺失(PDB 中未解析的柔性区),三是亲和力数值缺失(有活性记录但无标准值)。第一类可用 RDKit 生成构象;第二类需在序列比对时用 X 占位并记录缺失区间;第三类若缺失比例低于 5%,可直接丢弃;若高于 20%,需检查是否因单位不统一或筛选条件过严导致,而非盲目填充。
常见陷阱:不要把 PDB 中的水分子、金属离子、缓冲液组分当作配体;不要把 ChEMBL 中 standard_relation 为 > 或 < 的截断值当作精确值;不要跨物种直接合并亲和力数据(如人源与鼠源靶点),除非明确标注并分层。
一个可复用的数据获取检查清单
| 检查项 | 判断标准 | 处理动作 |
|---|---|---|
| PDB 配体类型 | 是否为非聚合物、非水、非离子 | 剔除缓冲液与金属离子 |
| UniProt 审阅状态 | reviewed 优先 | 未审阅条目降权或仅作补充 |
| 亲和力单位 | 是否统一为 nM | 按 1 μM=1000 nM 换算 |
| 测量类型 | Kd/Ki/IC50 是否混用 | 分层标记,IC50 不直接当 Kd |
| 重复测量方差 | 标准差是否 > 1 log | 标记高方差边并降权 |
| 配体去重 | InChIKey 前 14 位是否唯一 | 合并盐型与立体异构体 |
完成上述步骤后,你会得到三张核心表:蛋白节点表(UniProt AC、序列、PDB 映射)、配体节点表(InChIKey、SMILES、分子量)、亲和力边表(蛋白 ID、配体 ID、pKd/pKi、类型、来源、置信度)。这三张表就是后续图网络构建的直接输入,其字段完整性和一致性决定了网络能否真实反映结合关系。