2. 实验结果的数据模型与元数据设计
药物研发实验的数据管理,难点往往不在“存下来”,而在“存得能被理解、能被复用、能被追溯”。HTS 筛出的一个 IC50 值、ADME 测得的清除率、毒理实验中的 NOAEL、药效模型里的抑制率,如果只留下一个数字,几个月后连实验者自己都难以判断它对应哪批细胞、哪台仪器、哪种溶剂体系。因此,本节的核心任务是:为实验结果设计结构化数据模型,并定义支撑该模型的元数据标准与扩展机制。
一、结果数据模型:把“一个数值”拆成可计算的结构
实验结果的最小单元不是数值本身,而是“测量事件”。一个测量事件至少包含四个维度:测什么(指标/终点)、在什么条件下测(实验条件)、用什么测(仪器与参数)、测的是谁(样本与批次)。据此可以抽象出如下核心实体:
- Experiment(实验):一次实验活动的顶层容器,如“2024-05-12 HTS 化合物库初筛”。
- Batch(批次):实验执行的最小可追溯单元,如“Plate P-0037”。
- Sample(样本):被测量的对象,如化合物 CID-1024、细胞系 A549、血浆样本 S-088。
- Assay(检测方法):测量所依据的方法定义,如“荧光偏振法测定激酶活性”。
- Measurement(测量结果):一次具体测量产生的数值、单位、不确定度与判定。
- Instrument(仪器):产生原始信号的设备,如 EnVision 2105、LC-MS/MS。
这些实体之间不是孤立的,而是通过外键与角色关系连接:一个 Experiment 包含多个 Batch,一个 Batch 包含多个 Sample,每个 Sample 在特定 Assay 下产生若干 Measurement,Measurement 由某台 Instrument 在特定参数下采集。这种“实体—关系”结构,使数据既能按实验整体检索,也能按单个样本回溯。
二、关键元数据:让结果可解释、可比较
元数据是附着在实体上的描述性字段。对药物研发实验而言,以下四类元数据缺一不可:
| 类别 | 典型字段 | 作用 |
|---|---|---|
| 实验条件 | 温度、pH、孵育时间、培养基、血清浓度、复孔数 | 判断结果是否可跨实验比较 |
| 仪器参数 | 仪器型号、检测模式、激发/发射波长、增益、板型 | 解释信号差异、支持方法复现 |
| 批次信息 | 批次号、板号、孔位、操作人、日期、试剂批号 | 定位异常、追溯污染或漂移 |
| 样本标识 | 样本 ID、化合物 ID、细胞系、代次、浓度梯度 | 关联生物学身份与剂量关系 |
以 HTS 为例,一个孔的测量结果若只记录“抑制率 = 62%”,无法判断是化合物真实活性还是边缘孔蒸发效应。若同时记录孔位(A01)、复孔数(n=3)、DMSO 终浓度(0.5%)、孵育时间(60 min)、酶批号(E-2024-03),就能在复核时快速区分系统误差与真实信号。ADME 实验同理:清除率必须绑定肝微粒体蛋白浓度、NADPH 再生系统、孵育时间与 LC-MS/MS 的离子对参数,否则不同实验室的数据无法合并。
三、元数据标准与扩展机制
标准化的目标是“同名同义、同值同单位”。建议采用分层策略:核心层为所有实验共用的最小字段集(实验 ID、样本 ID、批次号、日期、操作人、仪器 ID、指标名、数值、单位、判定);领域层按实验类型扩展,如 HTS 增加 Z' 因子、S/B 比,毒理增加 NOAEL、剂量组,药效增加 EC50、Hill 斜率;项目层允许项目自定义字段,但必须注册到元数据字典,避免同义异名。
扩展机制的关键是“受控词表 + 键值对”。受控词表规定字段名、数据类型、单位、允许值域;键值对则允许在不破坏核心结构的前提下追加新属性。例如,某项目新增“氧浓度”字段,需在字典中登记:字段名 oxygen_conc,类型 float,单位 %,允许范围 0–21。这样既保持灵活性,又保证机器可解析。
四、从模型到落地:一次 HTS 结果的结构化示例
假设某次 HTS 实验,化合物 CID-1024 在 10 μM 下测得抑制率 62%,复孔 n=3,板号 P-0037,孔位 C07,仪器 EnVision 2105,检测模式荧光强度,激发 485 nm,发射 535 nm,孵育 60 min,温度 25 ℃,DMSO 0.5%。按上述模型,可组织为:Experiment(HTS-2024-0512) → Batch(P-0037) → Sample(CID-1024) → Assay(激酶活性荧光偏振) → Measurement(抑制率, 62%, n=3) → Instrument(EnVision 2105, Ex485/Em535)。每个节点携带对应元数据,形成一条完整、可追溯的数据链。
上图展示了从 Experiment 到 Instrument 的实体链,以及四类关键元数据在链上的挂载位置。可以看到,一个测量结果并不是孤立数值,而是被实验条件、批次、样本和仪器参数共同“包裹”的结构化对象。只有这种结构,才能支撑后续的数据查询、跨批次比较、异常回溯与统计建模。
五、设计要点与常见陷阱
在实际落地中,有几个容易被忽视的细节。第一,单位必须显式存储,不能依赖字段名隐含单位,否则“IC50 = 120”到底是 nM 还是 μM 会引发严重误读。第二,缺失值要有明确语义,区分“未测”“测了但无效”“低于检测限”,建议用状态码而非空字符串。第三,批次与样本的层级不能混用,批次是操作单元,样本是生物学单元,一个批次可含多个样本,一个样本也可跨批次复测。第四,扩展字段要有版本,元数据字典本身应记录变更历史,避免旧数据在新字典下无法解析。