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进行映射。
二、活性指标的选择与统一
不同数据源使用的活性指标不同,常见的有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条 | 不足则补充数据源 |