Back to skills
extension
Category: Data & AnalyticsNo API key required

中藏药 体外释放IVRT 统计分析与等效判定报告 技能

中藏药 体外释放IVRT 统计分析与等效判定报告 技能 ,参照局部起效化学仿制药体外释放(IVRT)与体外透皮(IVPT)研究技术指导原则(试行)设计。 用户说"IVRT 等效判定""f2 相似因子""释放曲线相似性""TS vs RS 等效统计""IVRT ANOVA" - 用户已完成 IVRT 累计释放量计算,需要做**制剂间等效性统计判定** - 用户提供了一份含 TS(受试制剂) 和 RS(参比制剂) 释放速率/累计释放数据的 Excel,要求判断是否等效 - 需要 **f2 相似因子** 或 **90% 置信区间** 方法做等效评价 - 需要 **ANOVA 方差分析** 多因素分解(制剂、吸收池、时间) - 需要 **动态仿真 GIF** 展示 TS/RS 释放对比

personAuthor: user_c160f2b7hubcommunity

IVRT 数据统计分析与等效判定 (Equivalence Analysis)

何时使用

  • 用户说"IVRT 等效判定""f2 相似因子""释放曲线相似性""TS vs RS 等效统计""IVRT ANOVA"
  • 用户有原始浓度数据,想 一步到位完成释放速率计算 + 等效判定(推荐格式 raw
  • 用户已完成 IVRT 累计释放量计算,需要做制剂间等效性统计判定
  • 用户提供了一份含 TS(受试制剂) 和 RS(参比制剂) 释放速率/累计释放数据的 Excel,要求判断是否等效
  • 需要 f2 相似因子90% 置信区间 方法做等效评价
  • 需要 ANOVA 方差分析 多因素分解(制剂、吸收池、时间)
  • 需要 动态仿真 GIF 展示 TS/RS 释放对比

与 ivrt-logan918-calc 的关系

| 阶段 | ivrt-logan918-calc | ivrt-equivalence-analysis (本技能) | |------|-------------------|----------------------------------| | 输入 | 原始浓度数据 (ug/mL) | 释放速率 / 累计释放量 / 原始浓度 | | 计算 | 透过量→累计→单位面积→%释放 | 统计比较→等效判定→ANOVA | | 输出 | 各池释放曲线 + 拟合汇总 | 等效判决 + f2 + 90%CI + ANOVA表 | | 仿真 | Logan 918-12 细胞动画 | TS vs RS 等效判定对比动画 |

典型工作流(两种路径)

路径A(分步,先ivrt-logan918-calc后本技能):
  ivrt-logan918-calc 处理原始浓度 → 获得各池释放速率表
    ↓
  本技能 --format release-rate 导入释放速率
    ↓
  统计分析 + 等效判定 + HTML/GIF

路径B(一步到位,推荐★):
  原始浓度数据(时间 / 接收池编号 / 浓度)
    ↓
  本技能 --format raw (自动计算累计释放+释放速率+等效判定)
    ↓
  HTML报告 + GIF仿真动画 + TS/RS对比表

路径B将 ivrt-logan918-calc 的计算管线内联到本技能中,无需分步操作。

实验设计(参照 PDF 附件)

标准 IVRT 等效性实验采用 TS×RS 配对设计(6×6 全组合):

        RS1     RS2     RS3     RS4     RS5     RS6
TS1   TS1/RS1 TS1/RS2 TS1/RS3 TS1/RS4 TS1/RS5 TS1/RS6
TS2   TS2/RS1 TS2/RS2 TS2/RS3 TS2/RS4 TS2/RS5 TS2/RS6
TS3   TS3/RS1 TS3/RS2 TS3/RS3 TS3/RS4 TS3/RS5 TS3/RS6
TS4   TS4/RS1 TS4/RS2 TS4/RS3 TS4/RS4 TS4/RS5 TS4/RS6
TS5   TS5/RS1 TS5/RS2 TS5/RS3 TS5/RS4 TS5/RS5 TS5/RS6
TS6   TS6/RS1 TS6/RS2 TS6/RS3 TS6/RS4 TS6/RS5 TS6/RS6
  • TS (Test Sample):受试制剂,n=6
  • RS (Reference Standard):参比制剂,n=6
  • 每对组合 (TSi/RSj) 为一个 IVRT 运行,获得一条释放曲线
  • 共计 36 组 完整配对数据

也可支持 简化设计(n=3~6 TS × n=3~6 RS),通过输入数据自动识别。

统计方法

1. f2 相似因子(标准方法)

f2 = 50 · log₁₀{[1 + (1/n)·Σ(Rᵢ - Tᵢ)²]^(-0.5) · 100}
  • Rᵢ, Tᵢ: RS 和 TS 在时间点 i 的 平均 %释放
  • 判定标准:f2 ≥ 50 → 释放曲线相似
  • 适用条件:n ≥ 3 个时间点,CV ≤ 15%(早期时间点 ≤ 20%)

2. 90% 置信区间法 — NMPA 非参数排序法(指导原则第14页)

依据 NMPA《局部起效化学仿制药体外释放(IVRT)与体外透皮(IVPT)研究技术指导原则(试行)》:

核心方法:基于 T/R 斜率配对比值排序的非参数统计。

T/R 比值 = 每个 TS 池释放速率 / 每个 RS 池释放速率
对所有比值从小到大排序
取指定序号的比值,转为百分单位(×100)

两阶段设计

| 阶段 | TS 样本数 | RS 样本数 | T/R 比值总数 | 下限取第几个 | 上限取第几个 | |------|----------|----------|-------------|------------|------------| | 第一阶段 | 6 | 6 | 36 | 第 8 个 | 第 29 个 | | 第二阶段 | ≥12 | ≥12 | ≥324 | 第 110 个 | 第 215 个 |

  • 等效界值75.00% ~ 133.33%
  • 判定标准:第 8 个和第 29 个比值(第一阶段的 36 个中)转化百分单位后,均在 75%~133.33% 范围内 → 等效通过
  • 第一阶段不合格:可增加 4 次测试(2 次参比 + 2 次受试,每次 6个扩散池),共 18 + 18 = 324 个 T/R 比值,排序后取第 110 个和第 215 个,再次判定

3. ANOVA 方差分析

混合效应模型:

释放速率 = μ + 制剂效应 + 吸收池效应(嵌套) + 时间效应 + 残差

输出方差分析表:来源、SS、df、MS、F值、p值

4. 综合等效判决(多项标准联合)

| 方法 | 标准 | 权重 | |------|------|------| | f2 相似因子 | f2 ≥ 50 | 主要 | | T/R 比值排序 90% CI | 75%~133.33%(第8/第29 或 第110/第215) | 主要 | | ANOVA 制剂效应 | p > 0.05 | 辅助 | | 释放速率差值 | | 辅助 |

最终等效判定

  • 等效通过:f2 ≥ 50 排序法 90% CI 在 [75%, 133.33%] 内
  • 不等效(可进入第二阶段):第一阶段 36 个 T/R 比值不通过,可补充至 324 个进入第二阶段判定
  • 不等效:第二阶段 324 个 T/R 比值仍不通过,或 f2 < 50

输入 Excel 格式

格式 RAW:原始浓度数据(推荐★ — 最简格式)

表名:原始数据(自动识别含"原始""raw""浓度"的表) | 时间(h) | 接收池编号 | 浓度(μg/mL) | |---------|-----------|------------| | 0.5 | TS-1 | 8.35 | | 1.0 | TS-1 | 15.20 | | 0.5 | RS-1 | 9.12 | | 1.0 | RS-1 | 16.80 |

  • 接收池编号中含 TS 标记为受试制剂,含 RS 标记为参比制剂(大小写不敏感,如 TS-1RS-Batch2
  • 自动执行完整计算管线:浓度 → 透过量 → 累计释放 → 单位面积累计 → √时间线性拟合 → 各池释放速率
  • 自动生成 TS vs RS 对比表(含池编号、释放速率、R²)
  • 同时构建 f2 相似因子所需的释放曲线数据(需提供含量参数)
  • 物理参数通过参数表或 --V / --A 命令行指定

格式 A:IVRT 计算结果(从 ivrt-logan918-calc 输出导入)

表名:释放速率(必填) | 制剂 | 吸收池编号 | 释放速率(μg/cm²/√h) | 截距 | R² | 终点累计(μg/cm²) | 终点%释放 | |------|-----------|-------------------|------|----|-----------------|----------| | TS1 | 1 | 12.34 | 1.23 | 0.995 | 85.6 | 25.7 | | TS2 | 2 | ... | ... | ... | ... | ... | | RS1 | ... | ... | ... | ... | ... | ... |

  • 制剂列:含 "TS" 标记为受试制剂,"RS" 标记为参比制剂(大小写不敏感)
  • 列名可灵活匹配(如"斜率"可当"释放速率")

格式 B:原始释放曲线数据(更完整的分析)

表名:数据(与 ivrt-logan918-calc 格式兼容) 可选的配方表: | 时间(h) | 制剂 | 吸收池编号 | 单位面积累计(μg/cm²) | %释放 | |--------|------|-----------|-------------------|------| | 0.5 | TS1 | 1 | 6.17 | 1.85 | | 1.0 | TS1 | 1 | 12.50 | 3.76 | | ... | ... | ... | ... | ... |

此格式支持 f2 计算(基于各时间点的平均 %释放)。

格式 C:配对宽矩阵(贴合 PDF 实验设计)

表名:设计矩阵 | 配方配对 | RS1_释放速率 | RS2_释放速率 | RS3_释放速率 | RS4_释放速率 | RS5_释放速率 | RS6_释放速率 | |---------|------------|------------|------------|------------|------------|------------| | TS1 | 12.3 | 12.1 | 12.5 | 12.0 | 12.4 | 12.2 | | TS2 | 11.8 | 11.9 | 12.2 | 11.7 | 12.1 | 11.6 | | ... | ... | ... | ... | ... | ... | ... |

(可选)参数表

表名:参数(两列 key/value) | 项目 | 数值 | 说明 | |------|------|------| | 等效界值下限(%) | 75.00 | 90% CI 等效界值下限(NMPA 指导原则) | | 等效界值上限(%) | 133.33 | 90% CI 等效界值上限(NMPA 指导原则) | | f2 判定阈值 | 50 | f2 ≥ 此值判定相似 | | 置信水平 | 0.90 | CI 置信水平 | | 成品单位面积含量(ug/cm2) | 3328 | 格式B/raw需要,用于%释放 | | 吸收池体积(ml) | 12.0 | Logan 918-12 默认值 | | 样品面积(cm2) | 1.76625 | 有效扩散面积 |

使用前用户需确认的参数

运行本技能前,系统会提示用户确认以下参数:

╔══════════════════════════════════════════════════════════════╗
║  IVRT 等效判定 — 参数确认                                   ║
╠══════════════════════════════════════════════════════════════╣
║  1. 等效界值下限 (%)        [默认: 75.00]                    ║
║  2. 等效界值上限 (%)        [默认: 133.33]                   ║
║  3. f2 判定阈值              [默认: 50]                       ║
║  4. 置信水平                [默认: 0.90]                     ║
║  5. 成品单位面积含量 (ug/cm²) [格式raw/B需要]                ║
║  6. TS 组成品含量 (ug/cm²)   [可选,与 content-rs 配对使用]    ║
║  7. RS 组成品含量 (ug/cm²)   [可选,与 content-ts 配对使用]    ║
║  8. TS 池编号列表            [纯数字池时必填,如 1,3,5,7,9,11] ║
║  9. RS 池编号列表            [纯数字池时必填,如 2,4,6,8,10,12] ║
║ 10. 吸收池体积 (mL)          [默认: 12.0]                    ║
║ 11. 样品面积 (cm²)          [默认: 1.76625]                  ║
║ 12. 是否生成 GIF 动画        [Y/N, 默认: Y]                  ║
║ 13. 是否生成 HTML 报告       [Y/N, 默认: Y]                  ║
╚══════════════════════════════════════════════════════════════╝

Excel 数据格式要求

必填条件

| 检查项 | 要求 | |--------|------| | 文件格式 | .xlsx(不支持 .xls) | | 数据表 | 必须包含至少一个数据表 | | 制剂标记 | 必须能区分 TS(受试)和 RS(参比)(格式RAW通过池编号标记) | | 释放速率 | 格式RAW:自动从浓度计算;格式A:必须有释放速率值 | | 编号 | 必须有吸收池/样品/接收池编号 | | 浓度精度 | 浓度数据保留 4 位小数(系统自动约束,输入超出会自动截断至 4 位) |

可选但推荐

  • 参数表(自定义等效界值、V、A等统计/物理参数)
  • %释放(基于含量,用于 f2 计算)
  • 时间点 ≥ 3 个(f2 必要条件)
  • 各时间点 CV 数据(辅助判定数据质量)

运行方式

脚本:scripts/ivrt_equivalence.py(Python 3.11+,依赖 pandas / numpy / scipy / matplotlib / pillow)

# 0) 生成 Excel 模板(含所有格式的示例 sheet)
python scripts/ivrt_equivalence.py --make-template template.xlsx

# ★推荐★ 1) 简化格式 RAW — 指定池编号映射 + 分组含量(常见场景)
python scripts/ivrt_equivalence.py --input 数据.xlsx \
    --format raw \
    --ts-cells 1,3,5,7,9,11 --rs-cells 2,4,6,8,10,12 \
    --content-ts 3648 --content-rs 3762 \
    --output-dir ./out

# 2) 简化格式 RAW — 通用用法(池编号含TS/RS标记,统一含量)
python scripts/ivrt_equivalence.py --input 数据.xlsx \
    --format raw --content 3328 --output-dir ./out

# 3) 导入 IVRT 计算结果(格式A:释放速率表)
python scripts/ivrt_equivalence.py --input 数据.xlsx \
    --format release-rate --output-dir ./out

# 4) 导入原始释放曲线数据(格式B:时间×制剂×累计释放)
python scripts/ivrt_equivalence.py --input 数据.xlsx \
    --format profile --content 3328 --output-dir ./out

# 5) 自定义物理参数(格式raw)
python scripts/ivrt_equivalence.py --input 数据.xlsx \
    --format raw --V 12 --A 1.76625 --content 3328 --output-dir ./out

# 6) 自定义等效界值(默认已为 NMPA 指导原则值 75%~133.33%)
python scripts/ivrt_equivalence.py --input 数据.xlsx \
    --format raw \
    --ci-lower 75 --ci-upper 133.33 \
    --f2-threshold 50 --confidence 0.90 \
    --output-dir ./out

# 7) 跳过 GIF / 跳过 HTML
python scripts/ivrt_equivalence.py --input 数据.xlsx \
    --format raw --no-gif --no-html

新增 CLI 参数

| 参数 | 类型 | 说明 | 示例 | |------|------|------|------| | --ts-cells | str | 受试制剂池编号列表(逗号分隔) | 1,3,5,7,9,11 | | --rs-cells | str | 参比制剂池编号列表(逗号分隔) | 2,4,6,8,10,12 | | --content-ts | float | TS 组成品单位面积含量 (ug/cm²),用于各自 %释放 | 3648 | | --content-rs | float | RS 组成品单位面积含量 (ug/cm²),用于各自 %释放 | 3762 |

当池编号为纯数字时(如 1-12),必须通过 --ts-cells / --rs-cells 指定分组。 当池编号含 "TS"/"RS" 前缀时(如 TS-1、RS-2),可自动识别,无需指定分组参数。

输出

ivrt_equivalence.html — 交互式统计报告(含全部图表内嵌)

HTML 报告必须按以下结构组织,不得缺少任何章节:

  1. 公式说明章节(报告最顶部):在标题和生成时间之后,判决卡片之前,插入完整"使用的统计方法与公式说明"章节。该章节必须包含 8 个公式卡片,每卡片左侧 4px 色条,顺序如下:

    | 顺序 | 公式 | 色条颜色 | |:----:|------|---------| | 1 | 累积透过量 Qₙ = Cₙ × V | #2e86de(蓝色) | | 2 | 单位面积累积透过量 Qₙ / A | #2e86de(蓝色) | | 3 | Higuchi 模型 Q/A = k_H·√t + b | #2e86de(蓝色) | | 4 | 累积释放百分率 %Release = (Q/A) / C_content × 100% | #2e86de(蓝色) | | 5 | f₂ 相似因子 | #2e86de(蓝色) | | 6 | T/R 比值 90% CI 非参数排序法 | #e67e22(橙色) | | 7 | ANOVA 方差分析 | #8e44ad(紫色) | | 8 | 综合等效判决标准 | #1abc9c(青色) |

    每个公式卡片必须包含:

    • 公式名称(三级标题)
    • 数学表达式(serif 字体,font-family: 'Cambria Math','Times New Roman',serif)
    • 中文说明文字(12px,#666灰色),说明公式物理含义、各参数名称、在本报告中的实测参数值,以及判定标准(如适用)

    注意:Python 脚本 ivrt_equivalence.py 不自动生成此章节,必须在脚本运行完成后,由人手动在 HTML 文件 <body><h1> 标题之后、<div class="verdict-card"> 之前注入该章节的全部 HTML 代码。

  2. 实验设计摘要:TS/RS 分组统计、样品数量、等效阶段信息

  3. 等效判定结果

  • ✔ 或 ✘ 大图标显示最终判决(含阶段信息)
  • T/R 比值 90% CI(排序法):显示阶段、排序位置(如"第8~第29个,共36个")
  • f2 相似因子(含判定标准线)+ ANOVA 表
  • 综合等效判决表
  1. 全部图表:释放速率对比、累计释放曲线、T/R 比值分布直方图、各池拟合线、配对热力图等
  2. 明细数据表:TS vs RS 释放速率对比表 + 描述性统计

每张数据表下方 必须紧跟一个公式标注卡片,格式为:

<div style="background:#f0f4ff;border-left:3px solid <色值>;border-radius:4px;padding:8px 12px;margin:10px 0;font-size:12px;color:#444">
<strong>对应公式</strong><公式表达式> &nbsp;·&nbsp; <中文说明>
</div>

| 表格/图表 | 色值 | 公式内容 | |-----------|------|---------| | ANOVA 方差分析表 | #8e44ad | SS_total = SS_between + SS_within;F = MS_between / MS_within | | TS vs RS 释放速率对比表 | #2e86de | Q/A = k_H·√t + b(Higuchi,R² 评价拟合优度) | | 释放曲线数据表 | #2e86de | Q_n = C_n × V;Q_n/A = Q_n / A(V=12.0 mL, A=1.76625 cm²) | | T/R 比值分布直方图 | #e67e22 | (T/R)_k = k_TS,i / k_RS,j;排序第8~第29,界值[75%,133.33%] | | 各池释放曲线+拟合线 | #2e86de | Q/A = k_H·√t + b;散点为实测值,实线为回归线 | | T/R 比值配对热力图 | #e67e22 | (T/R)_k = k_TS,i / k_RS,j;6×6 热力格子,颜色→偏离1.00程度 | | 累计释放曲线对比 | #2e86de | %Release = (Q/A) / C_content × 100% | | 等效判定仿真动图 | #1abc9c | f₂ ≥ 50 + 90% CI ∈ [75%,133.33%] → 等效通过 | | 综合等效判决表 | #1abc9c | ① f₂ ≥ 50 + ② 90% CI ∈ [75%,133.33%] → 等效通过 |

每张图片下方 同样必须紧跟对应公式标注卡片,格式与表格一致。

图表输出清单

| 文件 | 说明 | 新增版本 | |------|------|---------| | release_rate_comparison.png | 释放速率箱线图 + 均值柱状图 | v1.0.0 | | f2_comparison.png | f2 相似因子(曲线对比 + 仪表盘) | v1.0.0 | | cumulative_release_comparison.png | TS vs RS 累计释放曲线(均值±SD + 各池曲线) | v1.1.0 | | tr_ratio_histogram.png | T/R 比值分布直方图(界值线 + 分位标注) | v2.1.0 | | individual_fits.png | 各池释放曲线 + 线性拟合线(TS/RS分栏) | v2.1.0 | | tr_ratio_heatmap.png | T/R 比值 6×6 配对热力图 | v2.1.0 | | ivrt_equivalence_sim.gif | 等效判定仿真动图(30帧 / 3秒) | v1.0.0 | | ivrt_equivalence_sim.png | 动图静态封面 | v1.0.0 |

ivrt_equivalence_sim.gif — TS vs RS 等效判定仿真动图

  • 左列:6 个 TS 池(单独着色)
  • 右列:6 个 RS 池(单独着色)
  • 每池显示该池实时 %释放(或释放速率归一化值)
  • 进度条/雷达:实时显示当前等效统计值(f2 / CI 比值)
  • 顶部:当前等效判决(通过/待定/不通过)
  • 时间推进动画:从 t=0 到终点,粒子累积
  • 深色背景(#0a0f1e),玻璃质感

f2_comparison.png — f2 相似因子静态对比图(备用)

数据表格

  • TS vs RS 释放速率对比表(含池编号、释放速率、R²)
  • 描述性统计(每组 n/均值/SD/RSD/CV)
  • 等效判定明细表

依赖

# Python 环境要求
pandas>=1.5
numpy>=1.24
scipy>=1.10         # t-test, f_oneway, norm
matplotlib>=3.7
pillow>=9.0         # GIF 输出

补充说明

  1. 法规锚点:NMPA《局部起效化学仿制药体外释放(IVRT)与体外透皮(IVPT)研究技术指导原则(试行)》、ChP2025 通则、USP<1724>
  2. 等效判定:采用非参数 T/R 排序法(75%~133.33%),分两阶段。第一阶段 6+6=36 个比值取第 8/29;第二阶段 18+18=324 个比值取第 110/215
  3. 单位一致性:释放速率用 ug/cm²/√h,%释放用 %,T/R 比值用百分单位 %
  4. 浓度精度:所有测量值自动保留 4 位小数
  5. 本技能不做:实验设计咨询、样品制备指导、临床试验等效(仅体外释放等效)
  6. 格式选择建议
    • 推荐 --format raw:用户有原始浓度数据时的首选,一步到位
    • 若已通过 ivrt-logan918-calc 算出释放速率,可用 --format release-rate
    • 若已有累计释放曲线数据且需要 f2 计算,可用 --format profile
  7. 新图表说明
    • T/R 比值分布直方图:直接展示 NMPA 排序法的 36/324 个配对比值分布,标注等效界值和分位位置
    • 各池释放曲线 + 拟合线:每个细胞的实际累计释放散点与线性回归线,验证拟合质量
    • T/R 比值配对热力图:6×6 矩阵热图,对应实验设计,颜色指示比值是否在界值内

版本变更记录

| 版本 | 日期 | 变更 | |------|------|------| | 1.0.0 | 2026-07-22 | 初版:f2 相似因子、90% CI(Welch t)、ANOVA、GIF、HTML | | 1.1.0 | 2026-07-22 | 新增 --format raw 简化格式、--V/--A 参数 | | 2.1.0 | 2026-07-22 | 新增 3 张图表 + 池编号映射 + 分组含量 + 浓度精度约束。新增 tr_ratio_histogram.png(T/R比值分布直方图)、individual_fits.png(各池释放曲线+拟合线)、tr_ratio_heatmap.png(6×6 T/R配对热力图);新增 --ts-cells/--rs-cells/--content-ts/--content-rs 参数;浓度自动保留4位小数;修复 _compute_cell() 缺少 times 字段导致的空图问题 | | 2.2.0 | 2026-07-22 | HTML 报告全面增强—公式说明注入。① 报告开头新增完整"使用的统计方法与公式说明"章节(8 个公式卡片);② 每张数据表下方新增"对应公式"标注卡片(共 4 处);③ 每张图片下方新增"对应公式"标注卡片(共 5 处);④ 所有公式卡片保持统一视觉风格(浅蓝底 #f0f4ff + 左侧 3px 色条 + serif 表达式)。此章节及相关标注由人工在脚本运行后注入,脚本本身不自动生成。 |

验证

python scripts/verify_ivrt_eq.py
# RESULT: PASS(合成数据验证 f2 计算、CI 区间、ANOVA 表均正确)