2. 药物活性数据获取

QSAR建模的第一步不是算法,而是数据。一个活性预测模型的上限,几乎在数据获取阶段就已经被决定:靶点是否明确、活性指标是否一致、单位是否统一、重复记录是否被正确合并,都会直接影响后续特征工程与模型评估的可信度。本章围绕三个主流公共数据源——ChEMBL、PubChem、BindingDB——讲清它们各自的数据组织方式、适用场景,以及从下载到清洗形成建模可用数据集的完整操作路径。

一、三大数据源的定位与差异

ChEMBL由欧洲生物信息研究所维护,以“文献提取+人工审编”为核心,围绕靶点—化合物—活性测定三元关系组织数据。它的优势在于活性记录附带标准化的靶点标识(如单蛋白、蛋白复合物、细胞系)、测定类型(assay type)和标准活性单位,非常适合做靶点特异的QSAR建模。缺点是覆盖的化合物数量相对有限,且部分活性值来自不同实验条件,需要按测定类型筛选。

PubChem由美国NCBI维护,体量最大,包含大量高通量筛选(HTS)结果和供应商化合物。它的BioAssay模块以AID(Assay ID)为单位组织实验,同一化合物可能出现在成百上千个AID中。PubChem适合做大规模虚拟筛选、活性富集分析或补充ChEMBL未覆盖的化合物,但数据噪声较大,活性终点不统一,直接用于QSAR需要严格筛选AID。

BindingDB聚焦于结合亲和力数据,主要收录Ki、Kd、IC50、EC50等定量指标,来源包括文献和专利。它的特点是亲和力数据集中、单位规范,适合做靶点—配体结合亲和力预测。但BindingDB的靶点注释粒度不如ChEMBL统一,部分记录缺少标准化的靶点ID,需要借助UniProt或PDB进行映射。

三大数据源 → 活性指标 → 清洗 → 建模数据集 ChEMBL 文献提取 + 人工审编 靶点—化合物—活性三元组 标准化靶点ID / assay type 适合靶点特异QSAR 数据量中等,质量较高 PubChem BioAssay / AID 组织 HTS + 供应商化合物 体量最大,噪声较高 适合虚拟筛选 / 补充数据 需按AID严格筛选 BindingDB 文献 + 专利亲和力数据 Ki / Kd / IC50 / EC50 单位规范,亲和力集中 适合结合亲和力预测 靶点注释需映射 活性指标选择:IC50 / EC50 / Ki / Kd / % Inhibition 统一为 pIC50 = -log10(IC50[M]) 或 pKi = -log10(Ki[M]),保证数值越大活性越强 同一靶点优先保留同一指标类型;混合指标需分层建模或转换 数据清洗关键步骤 ① 去重:InChIKey合并 ② 单位统一:nM → M ③ 异常值剔除:pIC50范围 ④ 缺失值处理 ⑤ 靶点映射:UniProt ID 统一 → 输出建模数据集(SMILES + pIC50)

二、活性指标的选择与统一

不同数据源使用的活性指标不同,常见的有IC50、EC50、Ki、Kd以及% Inhibition。IC50表示抑制50%活性所需的浓度,EC50表示产生50%最大效应所需的浓度,Ki是抑制常数,Kd是解离常数。这些指标物理含义不同,不能直接混用。工程上通常统一转换为对数尺度:pIC50 = -log10(IC50[M]),pKi = -log10(Ki[M])。转换后数值越大表示活性越强,便于回归建模。

选择指标时遵循三条原则:第一,同一靶点的建模数据集尽量只保留一种指标类型,优先IC50或Ki;第二,若必须混合,应记录指标来源并考虑分层建模;第三,% Inhibition属于分类或半定量数据,通常只用于初筛,不直接进入回归模型。单位换算必须统一到摩尔浓度(M),常见换算关系为:1 mM = 10⁻³ M,1 μM = 10⁻⁶ M,1 nM = 10⁻⁹ M。

三、数据下载的实际操作

ChEMBL提供Web界面和REST API两种方式。以靶点EGFR(UniProt P00533)为例,可通过API获取活性数据:

https://www.ebi.ac.uk/chembl/api/data/activity.json?target_chembl_id=CHEMBL203&standard_type=IC50&limit=1000

返回的JSON中每条记录包含molecule_chembl_id、canonical_smiles、standard_value、standard_units、standard_type等字段。实际使用时建议用Python的chembl_webresource_client或直接requests分页抓取,并保存为CSV。

PubChem通过PUG-REST接口按AID下载。例如获取AID 1234的活性结果:

https://pubchem.ncbi.nlm.nih.gov/rest/pug/assay/aid/1234/CSV

BindingDB提供批量下载页面,可按靶点或按亲和力类型筛选,下载格式包括TSV和SDF。下载后需检查Ki、IC50列的单位是否已统一为nM。

四、数据清洗的关键步骤

下载得到原始数据后,需要经过以下清洗流程才能用于建模:

  • 去重与合并:同一化合物可能有多条活性记录。使用InChIKey作为化合物唯一标识,对同一化合物—靶点对的多个活性值取中位数或几何均值,避免极端值主导。
  • 单位统一:将所有活性值转换为nM或M,再计算pIC50。检查standard_units字段,剔除单位缺失或无法识别的记录。
  • 异常值剔除:pIC50合理范围通常在2~12之间。低于2可能表示无活性或数据错误,高于12可能超出实验检测上限,应结合原始记录判断。
  • 缺失值处理:SMILES缺失的记录直接删除;活性值缺失但化合物结构完整的记录可用于无监督预训练,但不进入监督回归。
  • 靶点映射:将不同数据源的靶点名称统一映射到UniProt ID,确保同一靶点的数据可以合并。
清洗后的数据集建议至少包含两列:canonical_smiles和pIC50。若做分类任务,可按pIC50阈值(如6.0)划分活性/非活性。

五、清洗结果检查清单

检查项判断标准处理方式
化合物唯一性InChIKey无重复重复取中位数
活性值范围pIC50在2~12超出范围剔除或复核
单位一致性全部为nM或M统一换算后计算pIC50
SMILES有效性RDKit可解析解析失败则删除
靶点一致性UniProt ID唯一多靶点数据分层保存
数据量同一靶点≥50条不足则补充数据源