SuperAPI AI 工具集

pkpd-modeling

数据与分析

查看项目

更新于 10-21 16:22

技能介绍

用途

pkpd-modeling 面向任何关于“机体对药物做了什么”或“药物对机体做了什么”的问题:从浓度-时间数据推导暴露指标、拟合结构模型、构建或检查群体分析、选择剂量或给药方案、将暴露与效应关联、比较制剂,或外推到新人群。

主要能力

该技能以脚本形式提供以下功能:

  • nca.py:计算暴露指标,并判断终末相是否足以报告这些指标。
  • fit_compartmental.py:判断数据支持哪种结构模型,以及参数是否可识别。
  • simulate_regimen.py:评估某给药方案在稳态下的表现,以及达到目标的人群比例。
  • check_popk_dataset.py:检查 NONMEM 是否会按预期方式读取数据集。
  • exposure_response.py:判断是否存在暴露-反应关系,以及平台期是否落在数据范围内。
  • bioequivalence.py:判断 90% 置信区间是否满足标准,以及适用哪一标准。
  • allometry_and_fih.py:推算起始剂量,或较小/较年轻人群中的剂量。
  • ddi_static.py:判断体外数据在 ICH M12 下是否触发临床 DDI 研究。
  • tdm_bayes.py:根据患者实测血药浓度估计其个体参数。

所有脚本均支持 --format table|tsv|json。数据输出到 stdout,溯源与发现输出到 stderr,因此可用 > out.tsv 将二者分开。退出码为 0 表示无发现,1 表示有发现,2 表示输入错误,因此任一脚本都可作为工作流的门控。

两个私有模块承载共享机制:_models.py(线性乳突模型的解析解,以及整合的 Michaelis-Menten、TMDD 和间接反应结构)和 _common.py(I/O 与报告)。应导入它们,而不是重新推导 Bateman 函数。

使用方式

脚本位于 skills/pkpd-modeling/scripts 目录下,通过 cd skills/pkpd-modeling/scripts 进入后以 python3 调用。典型工作流包括:

  1. 非房室分析:python3 nca.py -i profile.csv --dose 100 --route extravascular --partial-auc 0-24。四个决定答案的选择被显式化:--auc-method(默认 linup-logdown)、--blq-rule、--lambda-z-points 或显式 --lambda-z-window,以及报告 auc_inf_obs 还是 auc_inf_pred。Lambda_z 选择采用标准规则:从最后三个可定量点开始向后扩展,仅当调整 r-squared 改善超过 0.0001 时保留更长窗口;Tmax 及之前的点永不合格。

  2. 房室拟合与模型选择:python3 fit_compartmental.py -i profile.csv --dose 500 --route iv-bolus --compare 1cmt,2cmt,3cmt。参数在对数尺度估计,权重默认 1/y2(恒定 CV)。

  3. 群体 PK:先检查数据集,python3 check_popk_dataset.py -i nmdata.csv --covariates WT,CRCL --time-varying WT。该技能不重新实现 NLME,估计方法、BLQ M1-M7 方法、协变量模型构建和诊断参见 references/population-pk.md,工具选择参见 references/software-ecosystem.md。

  4. 仿真与方案选择:python3 simulate_regimen.py --cl 5 --v 40 --dose 500 --interval 12 --n-doses 10 --steady-state,或加入 --simulate 2000 --omega-cl 0.35 --omega-v 0.25 --target-trough 4.0。线性模型解析求解并叠加,精确;--nonlinear 切换到整合 Michaelis-Menten 消除,此时叠加无效。

  5. 暴露-反应:python3 exposure_response.py --emax -i er.csv --sigmoid 或 python3 exposure_response.py --cqtc -i qt.csv --cmax 250。

  6. 生物等效性:python3 bioequivalence.py -i be.csv --design 2x2 --metric AUC、--design replicate --metric Cmax --scaling both,或 --power --cv 0.30 --gmr 0.95 --target-power 0.80。

  7. 缩放、儿科与首次人体:python3 allometry_and_fih.py --scale --cl 5 --weight-from 70 --weight-to 6 --pma-weeks 44 或 --fih --noael rat=50,dog=10 --safety-factor 10。

  8. 药物相互作用:python3 ddi_static.py --basic --ki 0.5 --imax 2.0 --fu 0.05 --dose 0.4 或 --msm ... --fm 0.9 --fg 0.7。

  9. 治疗药物监测:python3 tdm_bayes.py --model vancomycin-adult --weight 80 --crcl 75 --dose 1500 --interval 12 --level 18.2@11.5 --level 42@2 --target-auc24 500。

适用场景

适用于需要从浓度-时间数据推导暴露指标、进行房室模型拟合与比较、检查群体 PK 数据集、仿真给药方案、分析暴露-反应、评价生物等效性、进行异速生长与首次人体剂量推算、评估药物相互作用以及开展治疗药物监测的研发与分析场景。

限制

该技能只做计算、诊断与结构化,不做判定。它不判定制剂是否生物等效、不为试验选择剂量、不向患者推荐剂量、不结论某药无 QT 风险,也不替代合格药代计量学家、临床药理学家或监管审评。脚本只报告,不结论。tdm_bayes.py 尤其只是建模辅助,任何患者方案变更均由治疗临床医生决定。

该技能强调三条规则:暴露指标与分析人群须在计算前固定;结构模型、变异模型和协变量模型是三个独立决策;收敛不等于可识别性。拟合脚本会同时报告收敛与可识别性并标记问题。

软件生态方面:Pharmpy 2.1.1(2026-05-19)是实用的 Python 入口,模型无关,可驱动 NONMEM/nlmixr2/rxode2,附带 19 个 run_* 工具;2.0.0(2026-02-12)将数据集行索引改为从 1 开始,2.1.0(2026-05-08)将 add_placebo_model 重命名为 set_placebo_model 并要求 numpy ≥ 2。NONMEM 7.6(用户指南日期 2025 年 11 月)仍是监管默认,新增 ADVAN16、ADVAN17、NUTS 贝叶斯采样和 SAEM 个体样本存储。nlmixr2(要求 rxode2 ≥ 5.0.0)是可信的开源 NLME 替代方案。