3. ADMET端点与数据模式设计

ADMET数据集的质量,首先取决于端点定义是否清晰、数据模式是否统一。吸收、分布、代谢、排泄、毒性五个板块看似只是标签不同,实际在实验类型、单位、检测条件、数据表示方式上差异极大。如果建模前不把这些差异显式化,后续清洗和特征工程就会变成“猜字段含义”的过程。本节围绕“端点—实验—单位—条件—表示—统一”这条主线,说明如何设计可落地的数据模式。

一、端点不是标签,而是“实验+条件+表示”的组合

一个ADMET端点,例如“Caco-2渗透性”,至少包含四层信息:实验体系(Caco-2细胞单层)、检测条件(pH 7.4、37℃、孵育时间、方向AP→BL或BL→AP)、测量量(Papp,表观渗透系数)、数据表示(数值+单位+方向)。只写“Caco-2=高”无法用于建模,因为“高”没有阈值来源,也没有方向信息。因此,端点设计的第一步是把每个端点拆成可枚举的字段,而不是只保留一个结果列。

以吸收端点为例,常见的有Caco-2 Papp、MDCK Papp、PAMPA Pe、人体Fa%。它们的单位分别是10⁻⁶ cm/s、10⁻⁶ cm/s、10⁻⁶ cm/s、%。检测条件中,Caco-2需要注明细胞代数、培养天数、转运方向;PAMPA需要注明供体pH和受体pH。若把Caco-2和PAMPA混在同一列,模型会把不同物理过程的数值当作同一尺度,导致系统性偏差。

二、五类端点的典型实验与数据表示

吸收端点的核心是“跨膜能力”。Caco-2和MDCK给出Papp,单位10⁻⁶ cm/s,通常以AP→BL方向为主,BL→AP用于评估外排。PAMPA给出Pe,单位10⁻⁶ cm/s,适合被动渗透。人体Fa%是百分比,属于临床/文献汇总值。数据表示上,Papp建议保留原始数值和方向,不要只保留“高/低”。

分布端点的核心是“组织结合与穿透”。血浆蛋白结合率(PPB)用%表示,检测方法有超速离心、平衡透析、超滤;脑/血浆分配系数(Kp,uu)是无量纲比值,需注明是总浓度比还是游离浓度比。分布端点最容易出现“单位相同但含义不同”的问题,例如PPB的%是结合比例,Fa%的%是吸收比例,二者不能共用同一归一化逻辑。

代谢端点的核心是“稳定性与转化”。肝微粒体稳定性常用T₁/₂(min)或CLint(μL/min/mg protein),检测条件必须注明种属(人、大鼠、小鼠)、微粒体蛋白浓度、NADPH浓度、孵育时间点。CYP抑制常用IC₅₀(μM)或Ki(μM),需注明探针底物和CYP亚型。代谢端点的数据表示建议保留“种属+体系+参数+单位”四元组,否则跨种属外推会失去依据。

排泄端点的核心是“清除与转运”。肾清除率CLr单位mL/min/kg,胆汁排泄率用%剂量,转运体底物判断常用比值(如ER=BL→AP/AP→BL)。排泄端点常与吸收、分布共用转运体实验,但数据模式上应独立,因为其检测条件涉及给药途径和采样时间。

毒性端点的核心是“安全边界”。hERG抑制用IC₅₀(μM),肝毒性常用DILI预测标签(0/1)或ALT升高倍数, Ames致突变用阳性/阴性。毒性端点的数据表示最复杂:既有连续值,又有二分类,还有多分类。建议在模式中显式区分“测量类型”(连续/二分类/多分类),而不是用同一列混合存储。

ADMET端点数据模式:从实验条件到统一字段 吸收 A Caco-2 / PAMPA / Fa% 分布 D PPB / Kp,uu 代谢 M T₁/₂ / CLint / IC₅₀ 排泄 E CLr / 胆汁排泄% 毒性 T hERG / DILI / Ames 每个端点的最小字段集 实验体系 检测条件 测量参数 单位 数据表示 种属/方向 缺失任一字段,端点即不可比;跨来源合并前必须补齐或标记为未知 模式统一策略:四步收敛 1 端点字典 endpoint_id endpoint_name category (A/D/M/E/T) measure_type default_unit 2 单位归一 Papp: 10⁻⁶ cm/s CLint: μL/min/mg IC₅₀: μM PPB: % Kp: 无量纲 3 条件编码 species: human/rat direction: AP→BL pH: 7.4 time: 120 min method: LC-MS/MS 4 表示统一 连续值 → float + unit 二分类 → 0/1 + 阈值 多分类 → 枚举编码 缺失 → NA + 原因码 不确定 → 区间/符号

三、模式统一策略:四步收敛

第一步是建立端点字典。每个端点分配唯一endpoint_id,记录endpoint_name、category(A/D/M/E/T)、measure_type(连续/二分类/多分类)、default_unit。字典是后续所有表的“主数据”,任何新数据源接入前先映射到字典,而不是直接追加列。

第二步是单位归一。同一端点在不同来源可能使用不同单位,例如CLint有μL/min/mg protein和mL/min/kg两种,前者基于微粒体蛋白,后者基于体重,不能直接换算,必须保留体系字段。可换算的才换算,不可换算的标记为“体系不同,不可合并”。

第三步是条件编码。把种属、方向、pH、孵育时间、检测方法等作为独立字段,而不是塞进备注。条件字段建议用受控词表,例如species取值限定为human、rat、mouse、dog等,避免“人”“Human”“h”三种写法并存。

第四步是表示统一。连续值统一为float加unit;二分类统一为0/1并记录阈值来源;多分类用枚举编码;缺失值统一为NA并附原因码(未测、低于检测限、文献未报告)。这样,同一端点在跨来源合并时,至少能保证“同义字段可对齐、异义字段可区分”。

四、一个可参考的端点模式示例

以Caco-2渗透性为例,可设计如下字段:endpoint_id="A_CACO2_PAPP";category="A";measure_type="continuous";value=12.5;unit="10^-6 cm/s";direction="AP→BL";species="human";cell_line="Caco-2";passage="25-30";incubation_min=120;ph=7.4;method="LC-MS/MS";source="internal_assay";qc_flag="pass"。若同一化合物有BL→AP数据,则另起一行,direction不同,不覆盖。这样,外排比ER可由两行数据计算,而不是靠人工判断。

端点模式设计的目标不是“字段越多越好”,而是让每个字段都有明确的语义、取值域和缺失处理规则。字段一旦确定,后续清洗、合并、建模都围绕它展开,避免反复返工。

五、常见陷阱与检查要点

第一,把不同实验体系的数值放在同一列,例如Caco-2与PAMPA混用。第二,单位不统一,例如IC₅₀同时出现nM和μM。第三,条件丢失,例如只记录PPB值,不记录种属和浓度。第四,二分类阈值来源不明,例如DILI=1但未说明依据。第五,缺失值用0填充,导致“未测”被误读为“无活性”。

检查时可用三个问题快速判断:这个端点能否被另一个实验室按同样条件复现?这个数值的单位和方向是否明确?这个缺失值是否知道原因?三个问题都能回答,模式才算可用。ADMET数据治理的起点,正是把端点从“一个标签”还原为“一组可追溯的实验事实”。