关于 tooluniverse-pharmacokinetics
用于分析实测浓度—时间数据的 ToolUniverse 技能,采用非房室分析计算常见药代动力学参数和生物利用度,并提供数据质量与结果解读指引。
主要功能
- 01计算常见非房室分析参数
- 02估算绝对生物利用度
- 03在本地处理 CSV 曲线数据
- 04检查采样与拟合质量
适用场景
- 01汇总实测药物浓度—时间曲线
- 02比较不同制剂或剂量的暴露量
- 03根据静脉和口服数据计算生物利用度
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-pharmacokinetics安装后在 Claude Code 中输入/tooluniverse-pharmacokinetics确认已加载。
附带文件scripts/nca_from_csv.pytest_nca_from_csv.py
详细介绍
药代动力学(PK)分析——非房室分析
将给药后的浓度-时间曲线转换为标准 PK 参数,并根据静脉注射和口服数据计算生物利用度。非房室分析(NCA)是与模型无关的主力方法,广泛用于大多数 PK 报告。
适用场景
- 你已在给药后的已知时间点测量血浆/血清(或其他基质)中的药物浓度。
- 你需要 Cmax/Tmax/AUC/半衰期/清除率/Vd,或绝对生物利用度 F。
- 比较不同制剂、剂量或给药途径的暴露量(AUC、Cmax)。
这是基于实测数据的 PK 分析。若要根据化学结构预测 ADMET 属性,请使用 tooluniverse-admet-prediction。
步骤 1 — 准备浓度-时间数据
| 问题 | 处理方法 |
|---|---|
| 单位——保持一致 | 统一时间单位(h)、浓度单位(mg/L 或 ng/mL)和剂量单位(mg)。通过 time_unit/conc_unit/dose_unit 传入。CL 和 Vd 将以换算后的单位返回(例如 L/h、L)。 |
| 给药途径很重要 | 将 route 设为 iv 或 po/oral。只有对于静脉注射数据,CL 和 Vd 才能直接解读;对于口服数据,它们是表观值(CL/F、Vd/F),因为吸收并不完全。 |
| 包含 t=0 | 静脉推注时包含 t=0(反向外推)点;口服给药前的数值通常为 0。 |
| BLQ(低于定量下限) | 首个可测值之前的前导 BLQ → 视为 0;末端尾部的 BLQ → 删除(不要设为 0,否则会扭曲末端斜率)。 |
| 采样设计 | 需要足够多的晚期采样点来确定末端相(至少 3 个点清晰地处于对数线性下降阶段),否则半衰期和 AUC0-∞ 不可靠。 |
| 单次给药与多次给药 | 此处的 NCA 假设单次给药。对于稳态,分析一个给药间隔(AUC0-τ),并注明这一点。 |
步骤 2 — 运行 NCA
tu run NCA_compute_parameters '{
"times":[0,0.5,1,2,4,8,12,24],
"concentrations":[0,2.5,4.8,6.1,4.2,2.1,1.0,0.2],
"dose":100, "route":"iv",
"dose_unit":"mg", "conc_unit":"mg/L", "time_unit":"h"}'
返回 Cmax、Tmax、Clast、Tlast、AUC0_last、AUC0-inf、AUC_extrapolation_pct、lambda_z、t_half、r_squared_terminal_fit、clearance_CL、volume_distribution_Vd、MRT_iv,以及一个 units 区块。AUC 使用 FDA/EMA 的线性上升/对数下降梯形法。
对于 CSV 曲线(含 BLQ 处理),scripts/nca_from_csv.py 可在本地计算相同参数。
其他工具:
NCA_fit_one_compartment— 拟合一室模型(k、V、CL),适用于需要参数模型而非 NCA 的情况。NCA_calculate_bioavailability— 根据auc_po、dose_po、auc_iv、dose_iv计算绝对 F(见步骤 4)。
步骤 3 — 解读参数
| 参数 | 含义 | 备注/合理性检查 |
|---|---|---|
| Cmax / Tmax | 峰值浓度和达峰时间——反映吸收速率/程度。 | 静脉推注时,Cmax 出现在 t=0;较晚的 Tmax 表示存在吸收(口服)或分布过程。 |
| AUC0-t / AUC0-∞ | 总暴露量(曲线下面积),是关键的暴露指标。 | AUC0-∞ 使用 Clast/lambda_z 外推尾部。 |
| AUC_extrapolation_pct | AUC0-∞ 中由末个采样点之后外推得出的百分比。 | >20% → AUC0-∞(及基于它计算的任何指标)不可靠;应报告 AUC0-last,并注明采样不足。 |
| lambda_z / t_half | 末端消除速率常数和半衰期。 | 仅当 r_squared_terminal_fit ≥ 约 0.95 且使用了至少 3 个末端点时,结果才可信。 |
| CL(清除率) | 单位时间内清除的体积 = Dose/AUC0-∞(静脉注射)。 | 对于口服数据,该值为 CL/F(表观值)。 |
| Vd | 分布容积 = CL/lambda_z(静脉注射)。 | 对于口服数据,该值为 Vd/F(表观值)。 |
| MRT | 平均滞留时间。 | MRT 越长,整体消除越慢。 |
步骤 4 — 绝对生物利用度(F)
计算 F 需要将同一种药物同时以静脉注射和口服方式给药(最好是同一批受试者,并按剂量归一化):
tu run NCA_calculate_bioavailability '{"auc_po":35.0,"dose_po":200,"auc_iv":43.4,"dose_iv":100}'
F = (AUC_po / Dose_po) / (AUC_iv / Dose_iv)。以分数或百分比报告。F 接近 1 表示吸收良好;F 较低表示吸收不佳或首过代谢较强。F > 1 表明数据/给药存在错误(请重新检查单位和剂量)。
步骤 5 — 质量问题(应明确说明)
- 外推 >20% → 不要将 AUC0-∞/CL/Vd 报告为可靠结果;对药物浓度曲线的随访时间不足。
- 终末相拟合不佳(
r_squared_terminal_fit< 0.9,或终末相数据点 <3 个)→ 半衰期不可靠。 - 口服数据计算得出的 CL/Vd 是表观值(CL/F、Vd/F)——没有静脉注射数据时,切勿将其作为真实清除率/分布容积报告。
- 单位会影响 CL/Vd——浓度单位错误会在不易察觉的情况下缩放结果。务必检查返回的
units块。 - 翻转动力学(吸收慢于消除)会使“终末”斜率反映吸收而非消除——若口服 t½ ≫ 静脉注射 t½,应对此保持警惕。
局限性说明
- NCA 不依赖模型且稳健,但不提供机制结构(没有单独的吸收/分布速率常数)——如需此类分析,请使用
NCA_fit_one_compartment或群体 PK。 - AUC 的准确性完全取决于 Cmax 附近及终末相的数据采样密度。
- 假设为单次给药;稳态分析时,请分析一个给药间隔(AUC0-τ),并单独分析蓄积情况。
相关技能
tooluniverse-admet-prediction— 根据结构预测 ADME 性质(无实测数据)。tooluniverse-dose-response— 根据浓度-反应关系评估 IC50/EC50 效力(非时间过程)。tooluniverse-statistical-modeling— 比较不同组间的 PK 参数。