关于 analytical-method-validation
用于按不同监管框架规划和评估分析程序验证的技能,面向实验室分析人员和审核者,支持研究设计、数据分析与文档整理,但不代替责任人员作出验证结论。
主要功能
- 01选择框架及所需特性
- 02生成验证方案框架
- 03分析响应与校准拟合
- 04估算准确度和精密度
- 05评估检测限及生物分析运行
- 06按预设界值比较方法
适用场景
- 01在采集数据前设计验证研究
- 02检查校准曲线的量程表现
- 03评估不同日期或仪器间的精密度
- 04方法转移期间比较分析程序
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill analytical-method-validation安装后在 Claude Code 中输入/analytical-method-validation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/validation-protocol-template.mdvalidation-report-template.mdreferences/compendial-and-clsi.mdframework-selection.mdich-m10-bioanalytical.mdich-q2r2.mdsource-ledger.mdstatistics.mdscripts/_catalog.py_common.pycheck_accuracy_precision.pycheck_bioanalytical_run.pycheck_detection_limits.pycheck_response.pycompare_methods.pyplan_validation.py详细介绍
分析方法验证
适用情形
凡是问题涉及分析程序是否适合其预期用途时:设计验证研究、评估验证数据、核实药典程序、将程序转移至另一实验室或仪器,或在报告中为上述任一事项提供依据。
两条规则
1. 设计任何内容之前,先确定适用的框架。 同一种分析方法在 ICH Q2(R2)、USP <1225>、ICH M10、CLSI EP 和 ISO/IEC 17025 框架下的验证方式各不相同。它们对所需特性的规定、研究设计方式,以及是否提供数值验收标准都有差异。混用这些框架会导致方案无法满足其中任何一个框架的要求。
2. 在收集数据之前明确验收标准。 看过结果后才选定的标准不算验收标准,事后决定标准会成为持续存在的审计发现。ICH Q2(R2) 刻意几乎不提供数值标准——这些标准必须来自规格、分析目标概况(ICH Q14 第 3 节)或开发数据。ICH M10 是个例外:它提供了明确的数值,而且色谱分析与配体结合分析的标准有所不同。
范围
此技能用于规划研究、正确计算统计量并组织文档。它不会判定某个程序是否通过验证、放行批次、接受或拒绝某次运行、结束调查,也不能替代分析人员、技术审核人员、质量部门或监管机构。所有脚本只报告;没有任何脚本会作出结论。
版权边界
ICH 指南公开发布,并获准在注明出处的情况下重复使用,因此本技能直接纳入了其中的要求。USP 通则、CLSI EP 文件和 ISO 标准受版权保护,且须付费获取。 对于这些文件,本技能仅提供名称、范围及获取授权副本的方式,绝不提供原文,也不编造阈值。不要要求 Agent 获取、转录或重构这些文件的内容。如果某个数值至关重要,且仅见于付费文件,请查阅授权副本。
框架
cd skills/analytical-method-validation/scripts
python3 plan_validation.py --list-frameworks
| Key | 适用范围 | 提供的数值标准 |
|---|---|---|
ich-q2r2 | 原料药和药品的放行与稳定性检测 | 几乎没有——需自行推导 |
ich-m10 | 生物分析浓度测定(PK、TK、BE) | 有,并且因分析模式而异 |
usp-1220 | 药典程序生命周期,分为三个阶段 | 需付费获取 |
usp-1225 / usp-1226 | 药典程序的验证 / 核实 | 需付费获取 |
clsi | 临床实验室测量程序(EP 系列) | 需付费获取 |
iso-17025 | 认可范围内的实验室自建和修改方法 | 没有——“在必要范围内” |
Q2(R2) 于 2023 年 11 月取代 Q2(R1),并重新调整了各项特性。 范围现为上位特性(第 3.2 节),包含响应(线性)和下限验证(DL/QL)。准确度和精密度归于第 3.3 节,可结合起来依据单一标准进行评估。稳健性作为开发活动处理,并交叉引用 ICH Q14。多变量程序在第 2.5 节和第 3.2.2.3 节中得到明确说明;附录 2 增补了 Q2(R1) 从未涉及的技术示例,包括定量 ¹H-NMR、NIR、定量 LC/MS、qPCR、生物分析法和粒径分析。沿用 Q2(R1) 结构、将线性、范围、准确度、精密度、专属性、LOD、LOQ 和稳健性列为平行项目的方案已经过时。另请注意,2023 年 11 月 30 日发布的错误更正涉及表 5 和表 6–11。
脚本
cd skills/analytical-method-validation/scripts
| 脚本 | 回答的问题 |
|---|---|
plan_validation.py | 使用哪种框架、哪些特性、什么研究布局、什么方案? |
check_response.py | 校准模型在整个范围内是否确实成立? |
check_accuracy_precision.py | 回收率是多少?变异中有多少来自不同日期? |
check_detection_limits.py | 按每种允许的方法计算的 DL 和 QL 是多少?它们能否满足报告阈值? |
check_bioanalytical_run.py | 这次运行是否符合适用于其分析类型的 ICH M10 要求? |
compare_methods.py | 两种程序是否在预先设定的界限内等效? |
所有脚本都接受 --format table|tsv|json。溯源信息、指南引用和注意事项输出到 stderr;
数据输出到 stdout,因此使用 > out.tsv 可将它们分开。退出码为 0 表示未发现问题,1
表示发现问题,2 表示输入错误——因此它们都可以用于工作流门控。
工作流
1. 确定框架和必需特性
python3 plan_validation.py --framework ich-q2r2 --attribute assay --technique hplc --range-use assay
Q2(R2) 表 1 根据测量属性而非技术手段决定所需内容。对于测定:特异性、响应、准确度、重复性、中间精密度。对于限度检查:仅需特异性和 DL。对于鉴别检查:仅需特异性。可接受的属性包括
assay、impurity(定量)、impurity-limit 和 identity。
可报告范围根据规格确定。Q2(R2) 表 2 提供了具体示例——测定为标示含量的 80–120%,含量均匀度为 70–130%,杂质为报告阈值至规格限度的 120%。
2. 生成方案并填写标准
python3 plan_validation.py --framework ich-q2r2 --attribute impurity --protocol > protocol.md
每个方括号字段都是一项需要在数据收集之前作出并记录的决定。方案框架有意不为 Q2(R2) 工作预填接受标准,因为不存在有依据的默认值。
3. 评估响应
python3 check_response.py -i calibration.csv --max-back-calc-error 2
输入格式为 level,response,每次进样一行;同一水平的重复行表示重复测量,只有提供这些数据才能进行线性度检验。
以下是真实曲线的输出,而决定系数会误判这条曲线:
statistic value
distinct levels 5
slope 166.6000
intercept 2495.0000
intercept CI includes 0 no
coefficient of determination (r2) 0.9830
lack-of-fit F 469.5294
lack-of-fit p 1.5139e-06
runs test p 0.0492
level n mean_response mean_back_calculated relative_error_pct
50.0000 2 10075.0000 45.4982 -9.0036
75.0000 2 15150.0000 75.9604 1.2805
100.0000 2 20050.0000 105.3721 5.3721
125.0000 2 24050.0000 129.3818 3.5054
150.0000 2 26450.0000 143.7875 -4.1417
r² = 0.983,但模型不可用:范围下限的反算误差为 −9.0%,失拟 p = 1.5 × 10⁻⁶,残差符号并非随机。r² 不能证明线性——它会随范围增大而上升,且几乎无法反映曲率。失拟 F 检验(与纯误差比较)和残差模式才是证据,因此 Q2(R2) 3.2.2.1 要求分析各点偏离直线的程度,而不能只看相关系数。
对于宽范围曲线,可添加 --weight 1/x2。当范围上三分之一的残差方差超过下三分之一的 10 倍时,脚本会标记异方差;因为在这种情况下,无权重拟合会恰好对报告阈值所在的低端产生偏差。
4. 评估准确度和精密度
python3 check_accuracy_precision.py -i ap.csv --accuracy-limit 2 --rsd-limit 1.0 --design-check assay
输入为 level,measured,group,其中 group 是中间精密度因素——日期、分析人员
或仪器。
level component sd rsd_pct df ci90_low_sd ci90_high_sd
100 repeatability (within group) 0.0707 0.0707 3 0.0438 0.2065
100 between-group 1.6515 1.6515 2 n/a n/a
100 intermediate precision (total) 1.6530 1.6530 2.0037 0.9554 7.2821
重复性为 0.07% RSD,看起来非常出色;但中间精密度为 1.65%,高出 23 倍,因为变异完全发生在不同日期之间。若将日内数据作为该程序的精密度报告,会低估常规表现一个数量级以上。这就是脚本采用单因素随机效应模型,而非合并数据的原因。
脚本会为你处理两个容易踩的坑:
- 精密度按每个水平分别估算,绝不跨水平合并。 将 80/100/120% 的结果合并为一个标准差,会把范围本身也变成表面上的不精密度。脚本按水平分别报告,并额外提供一个与水平无关、以标称值百分比表示的视图。
--require-ci-within-limit要求整个置信区间都处于限值内,而不仅仅是均值处于限值内。Q2(R2) 3.3.1.4 要求区间与标准相符;在 6 次重复中勉强达标的均值,并不能证明多少。
5. 确定 DL 和 QL,并予以确认
python3 check_detection_limits.py --calibration lowcal.csv --blanks blanks.csv \
--confirm-ql 0.05 --confirm-data ql_check.csv --reporting-threshold 0.05
approach sigma slope DL QL
sd-and-slope (sigma = residual SD of regression) 7.2816 5033.3490 0.0048 0.0145
sd-and-slope (sigma = SD of y-intercept) 4.3303 5033.3490 0.0028 0.0086
sd-and-slope (sigma = SD of 8 blanks) 3.7702 5033.3490 0.0025 0.0075
相同数据得出的 QL 估算值相差 1.9 倍,完全是 σ 取值不同造成的。因此,Q2(R2) 3.2.3.5 要求报告限值以及确定限值所用的方法,并用限值附近或接近限值的样品确认估算限值。对于杂质分析程序,QL 必须不高于报告阈值。习惯性地套用 3.3σ/slope、只报告一个未注明方法的数值,以及从不进行确认,是三个独立的缺陷。
6. 按照 ICH M10 进行生物分析批次评估
python3 check_bioanalytical_run.py --modality chromatographic --run run1.csv
python3 check_bioanalytical_run.py --modality lba --isr isr.csv
python3 check_bioanalytical_run.py --modality lba --criteria
--modality 为必填项且没有默认值,因为评估标准确实有所不同:
| 色谱法 | 配体结合分析 | |
|---|---|---|
| 校准容差 | ±15%,LLOQ 处为 ±20% | ±20%,LLOQ 和 ULOQ 处为 ±25% |
| 准确度 / 精密度 | ±15% / ≤15% CV(LLOQ 处为 ±20% / ≤20%) | ±20% / ≤20% CV(LLOQ 和 ULOQ 处为 ±25% / ≤25%) |
| A&P 设计 | 4 个 QC 水平,每批 5 次重复,至少 3 批,跨至少 2 天 | 5 个 QC 水平,每批 3 次重复,至少 6 批,跨至少 2 天 |
| 总误差 | 无此标准 | ≤30%,LLOQ 和 ULOQ 处为 ≤40% |
| ISR 一致性 | 至少 2/3 的重复样品在 ±20% 内 | 至少 2/3 的重复样品在 ±30% 内 |
将色谱法的 ±15% 标准用于配体结合分析,或将 LBA 总误差标准套用于色谱法,这两种做法都很常见,也都是错误的。
批次检查会落实一项容易遗漏的逐水平规则:所有 QC 中至少 2/3 合格,并且每个水平至少 50% 合格。即使整体合格比例达标,某个水平也可能完全不合格。
finding: QC level high: 0/2 within tolerance (0%); M10 requires at least 50% at each level
7. 转移与方法比较
python3 compare_methods.py -i paired.csv --margin 2 --relative --slope-tolerance 0.05
mean difference (%) 1.4646
TOST margin 2.0000
TOST p-value 1.0528e-13
90% CI (TOST) 1.44127 to 1.48797
equivalent at stated margin yes
--- for contrast only ---
paired t-test p (NOT equivalence) 0.0000
OLS slope (biased here) 1.0396
Deming slope 1.0398
Passing-Bablok slope 1.0351
这项脚本检查能避免两个错误:
- “p > 0.05,差异不显著,因此方法等效。” 未能检测出差异并不代表方法等效;在小型转移数据集中,这种结果几乎是必然的。TOST 检验的是关键假设——真实差异是否落在预先设定的界值内。此处,t 检验表明差异高度显著,而且 TOST 表明两种方法在 ±2% 范围内等效;两者都成立,但只有一个回答了问题。
- 使用普通最小二乘法比较方法。 OLS 假设参考值没有误差,而比较两种程序时这一假设并不成立,还会使斜率产生向零偏倚。Deming 回归(需注明误差方差比)和 Passing–Bablok 回归(非参数、抗离群值)才是适当的回归方法;脚本会将它们与 OLS 并列报告,以便对比。
脚本还会标记比例偏倚——即差异随浓度变化的情况。此时,无论均值偏倚和一致性界限看起来多么紧密,都可能产生误导。
此技能旨在防止的问题
- Q2(R2) 取代 Q2(R1) 三年后,仍按 ICH Q2(R1) 的结构进行验证。
- 看过数据后才编写验收标准。
- 将 r² 作为线性证据。
- 将重复性报告为程序的精密度,却未体现日间变异成分。
- 只给出一个 DL/QL 数值,却未说明采用的方法,也未进行确认。
- 将色谱分析的 M10 标准应用于配体结合分析,或反过来。
- 在方法转移中,将 t 检验结果不显著说成等效。
参考资料
references/framework-selection.md— 由哪个框架主导,以及用于判断的关键问题references/ich-q2r2.md— 结构、表 1 和表 2,以及各特性建议的数据references/ich-m10-bioanalytical.md— 色谱分析和 LBA 标准的完整对照references/compendial-and-clsi.md— USP、CLSI 和 ISO 的编号、适用范围及引用方式references/statistics.md— 统计方法、采用原因及常见错误references/source-ledger.md— 此技能中每项主张的出处和研究日期
资源
assets/validation-protocol-template.md— 提前列明标准的方案结构assets/validation-report-template.md— 可追溯至原始数据的报告结构
相关技能
iso-standards-readiness:为 ISO 管理体系和实验室能力标准的准备证据提供准备和结构化审查 - ISO 13485 医疗器械相关……