返回 Skill 列表
extension
分类: 数据与分析无需 API Key

中藏药 体外释放试验 (IVRT) 累计释放量计算与可视化技能

>中藏药体外释放试验 (IVRT) 累计释放量计算与可视化技能。设备为 Logan 918-12 干式系统, 支持 6 组或 12 组吸收池。输入 Excel 中不同取样时间、各吸收池的药物浓度 (ug/mL), 按标准 IVRT 口径 (透过量=C·V, 累计=Σ, 单位面积=累计/A, %释放=累计/A÷含量) 计算, 并生成:plotly 交互式 HTML 报告(线性拟合+多池对比+%释放+明细表) 与 **Logan 918-12 释放仿真 GIF 动图**(按池配色,液柱上升+发光粒子累积表现累计释放增多)。 当用户需要做 IVRT 数据处理、累计释放曲线、释放速率/线性拟合、多吸收池对比、 或 Logan 918-12 设备释放仿真动画时使用。

person作者: user_c160f2b7hubcommunity

IVRT 累计释放计算 (Logan 918-12) v1.2.0 — 专业版

何时使用

  • 用户说"算 IVRT 累计释放""IVRT 数据处理""Logan 918-12 释放曲线""体外释放累计量"
  • 需要一份满足法规/评审要求的专业 IVRT 报告
  • 需要释放速率(线性拟合斜率)、多吸收池对比、%释放率、残差诊断、速率对比柱状图

设备与固定参数

  • 设备:Logan 918-12 干式 (dry cell) 系统,支持 6 / 12 组吸收池
  • 吸收池体积 V = 12 mL(默认,可在参数表覆盖)
  • 样品面积 A = 1.76625 cm²(默认,可在参数表覆盖)

计算口径(标准 IVRT)

透过量(t)       = C(t) × V                [μg]        C = 药物浓度(μg/mL)
累计透过量(t)   = Σ_{τ≤t} 透过量          [μg]
单位面积累计(t) = 累计透过量(t) / A        [μg/cm²]
%释放(t)        = 单位面积累计(t) / 含量   × 100%     含量 = 成品单位面积含量(μg/cm²)

线性拟合√时间 为自变量:

单位面积累计 = 释放速率 × √时间 + 截距
释放速率单位: μg/cm²/√h

可选 USP<1724> 取样体积替换校正:当取样体积 Vs > 0 时, 累计透过量(t) = C(t)·V + Σ_{τ<t} C(τ)·Vs(即每次取样移走并补空白的修正)。

输入 Excel 格式

工作簿两种布局均可自动识别(由列数判断):

① 宽矩阵(第 1 列=时间,其余列=各吸收池浓度 μg/mL)** | 时间(h) | 吸收池1 | 吸收池2 | … | 吸收池12 | |---|---|---|---|---| | 0.5 | 12.3 | 11.9 | … | 13.0 | | 1 | 22.1 | … | … | … |

② 长格式(三列:时间 / 编号 / 浓度,如 时间 编号 樟脑浓度(μg)/ml)** | 时间 | 编号 | 樟脑浓度(μg)/ml | |---|---|---| | 1h | 1 | 39.28 | | 1h | 2 | 37.19 |

  • 时间列支持数值(1)或带单位文本(1h0.5h),自动提取小时数。
  • 长格式自动透视成 时间×吸收池 矩阵。
  • 6 组 / 12 组由吸收池列数自动识别,按数字升序排列。

(可选)参数表(默认 sheet 名 参数,两列 key/value,仅"含量"必填) | 项目 | 数值 | 说明 | |---|---|---| | 吸收池体积(ml) | 12 | 受体池体积 | | 样品面积(cm2) | 1.76625 | 有效扩散面积 | | 成品单位面积含量(μg/cm2) | (填) | 用于 %释放,也可 --content 覆盖 | | 取样体积(ml) | 0 | 0=直接累加;>0 启用 USP<1724> 替换校正 |

若未提供参数表/含量,可用 --content 3328 在命令行直接给含量。

运行方式

脚本:scripts/ivrt_calc.py(Python 3.11+,依赖 pandas / openpyxl / numpy / matplotlib / pillow / scipy;无需 plotly Python 包

# 0) 生成模板
python scripts/ivrt_calc.py --make-template template.xlsx --n-cells 12

# 1) 正常计算
python scripts/ivrt_calc.py --input 你的数据.xlsx --content 3328 --output-dir ./out

# 2) 指定设备名
python scripts/ivrt_calc.py --input data.xlsx --content 1500 --output-dir ./out

# 3) 启用取样体积校正(参数表设 Vs>0)

输出

报告结构 (ivrt_report.html)

报告采用现代化 UI 设计,共 7 个部分组成:

| # | 模块 | 内容 | 法规意义 | |---|------|------|----------| | — | 计算公式卡片 | 完整公式链(透过量→累计→单位面积→释放率→拟合) | 方法学透明度 | | — | 拟合汇总表 | 每池释放速率/截距/R² + 拟合方程列 + 终点累计/释放 + 均值行 | NMPA/FDA 核心要求 | | ① | √时间 线性拟合图 | 各池数据点+拟合线,含悬停看方程 | EMA IVRT 要件 | | ② | 各吸收池对比 | 折线+标记对比,√时间横轴 | 批内变异性评估 | | ③ | %释放率对比 | 提供含量时显示 | 释放曲线完整性 | | ④ | 释放速率柱状图 | 各池速率柱状 + 均值参考线 + 95% CI | 速率一致性审评 | | ⑤ | 残差分析图 | 各池拟合残差 vs √时间 + 零线 | 线性假设诊断 | | ⑥ | 汇总仪表盘 | 平均速率 / 平均 R² / 平均释放 / 池数/时间点 | 快速解读 | | — | 释放仿真动图 | Logan 918-12 细胞示意 GIF | 直观辅助 | | — | 明细数据表 | 每时间点各池累计+%释放(可滚动) | 数据可审计性 |

动图文件

  • ivrt_simulation.gif — Logan 918-12 释放仿真 GIF 动图(深色背景,液面恒定满,35 粒子阈值点亮,fps=10,中文标签显示真实 %释放值)
  • ivrt_simulation.png — 动图最后一帧静态封面

可用 --no-gif 跳过 GIF,--no-png 跳过静态封面。

注意(动图显示):报告 HTML 默认以相对路径引用 ivrt_simulation.gif,仅当 HTML 与 GIF 同目录时(本地双击打开)可显示。若将报告放到静态托管/预览环境(仅 HTML 被加载),动图会 404 显示空白。此时请加 --embed-gif,将 GIF 以 base64 内嵌进 HTML(单文件自包含,报告体积约 +2.5MB)。

新增图表详解

图④ 释放速率对比柱状图

各池释放速率以柱状图显示,叠加 均值参考线(红色虚线)。Hover 可查看具体速率值。用于评估各吸收池之间释放速率的一致性,是 NMPA IVRT 审评中对批内变异性的关键可视化。

图⑤ 残差分析图

各池拟合残差(实测值 - 拟合值)对 √时间 的散点图。若残差随机分布在零线附近、无明显趋势,则证明 线性拟合假设成立。这是 EMA/FDA IVRT 指南中对线性模型适用性的核心诊断手段。

图⑥ 汇总仪表盘

以卡片形式展示关键统计量:平均释放速率、平均 R²、平均终点 %释放、吸收池数、时间点数、设备信息,便于快速报告解读。

补充说明

  • %释放 需要"成品单位面积含量",必须在参数表或 --content 提供
  • 单位一致性由用户保证:浓度 μg/mL、V mL、A cm²、含量 μg/cm²
  • 交互报告用 Plotly.js CDN 渲染(数据内嵌),首次打开需联网;GIF/PNG 始终离线可用
  • tibetan-topical-ivrt(研究设计)互补,本技能只做实测数据→累计释放与作图

版本变更记录

| 版本 | 日期 | 变更 | |------|------|------| | 1.0.0 | 2026-07-20 | 初版:静态仿真 PNG,基于时间 t 线性拟合,Plotly 交互报告 | | 1.1.0 | 2026-07-21 | 静态 PNG → GIF 动图;中文字体注册;--no-gif/--no-png 参数 | | 1.1.1 | 2026-07-21 | 液面固定满;粒子按阈值点亮表示累计释放(35 粒子/池) | | 1.1.2 | 2026-07-21 | 三个图 X 轴改为 √时间,拟合重做,表头改 μg/cm²/√h;动图从 t=0h 开始 | | 1.1.3 | 2026-07-21 | 汇总表前新增计算公式展示;X 轴 range:[1,null];动图 fps 15→10 | | 1.1.4 | 2026-07-21 | 动图标签改为真实 %释放值,与拟合汇总表一致 | | 1.1.5 | 2026-07-21 | 吸收池按数字升序排序,明细表与动图顺序一致 | | 1.2.0 | 2026-07-22 | 专业版报告升级:现代 CSS 卡片布局 + 拟合方程列 + 3 张辅助诊断图(速率柱状/残差分析/仪表盘)+ 95% CI 统计 + 法规审评策略说明 | | 1.2.1 | 2026-08-16 | 修复 read_params 关键词匹配冲突:"成品单位面积含量"含"面积"、取样体积含"体积",导致 V=0/A=含量/含量读不到;改为 含量→取样→体积→面积 的优先级顺序;verify_ivrt.py 解释器路径由硬编码 Windows 路径改为 sys.executable。新增 --embed-gif 参数:将仿真 GIF base64 内嵌进 HTML,解决静态托管/预览环境相对路径 404 导致动图空白的问题。修复 GIF 中文字体注册(原仅 Windows 路径,现跨平台候选:HarmonyOS /system/fonts/NotoSansCJK/FZHeiT → Windows → macOS → Linux),避免中文显示为方块。图表图例布局优化:图①②③⑤横向图例(y=1.12)与标题重叠,改为垂直靠右图内(x:1.02,y:1,margin r=150),图④柱状图底部边距 80→120 防 x 轴标签与标题重叠。 |

验证

python verify_ivrt.py
# RESULT: PASS  (产物在 verify_out/run_6 与 verify_out/run_12)

真实数据示例:

python scripts/ivrt_calc.py --input 工作簿1.xlsx --content 3328 --output-dir ./out