简介Phoenix WinNonlin 6.0 数据统计软件使用文档面向药代动力学与生物等效性研究的数据分析人员聚焦软件规范化操作与参数计算流程帮助读者在数据处理环节保证结果的真实性与准确性。压缩包内为 1 个 docx 文档约 109KB内容围绕项目与数据表创建、NCA 参数计算、生物等效性与生物利用度计算等模块展开并针对缓释制剂单次、多次给药及药代动力学试验分别列出应选参数如 HL_Lambda_z、Tmax、Cmax、AUClast、AUCINF_obs、MRT 系列、Vz_F_obs、Cl_F_obs 等。文档还给出参数保留位数设置、AUC0-t/AUC0-∞ 比值大于 80% 的判定要求以及多次给药 DF/τ 小于 143% 等注意事项并提示软件不支持三交叉检测项目的数据统计。已有 6133 人学习适合需要对照规范流程完成统计、核对参数选择与结果位数的分析人员参考。1. 拿到一份 WinNonlin 6.0 操作规范先别急着点 NCA手里这份 Phoenix WinNonlin 6.0 数据统计软件使用规范乍看像一份内部 SOP实际上它解决的是一个很具体的问题生物等效性试验和药代动力学试验里从原始血药浓度数据到最终可出报告的统计量中间那几十步操作怎么保证不出错、出了错怎么查。它不适合完全没接触过药动学的人当入门教材但对正在做 BE 或 PK 数据分析、手里有浓度数据要跑 NCA 的从业者来说这份东西的价值在于把「参数怎么选、位数怎么留、验证怎么过」这些容易靠口口相传的细节固定下来了。我拆完最大的感受是WinNonlin 本身不难难的是每一步的判定标准——AUC 外推比例卡 80%、置信区间卡 80%~125%、个体内变异系数卡 0.3这些数字才是这份规范真正的骨架。下面按我实际复现的顺序把创建项目到出图的链路走一遍重点放在参数含义和翻车点上。2. 从建项目到建数据表列类型和保留位数是地基2.1 项目与 Worksheet 的创建路径WinNonlin 6.0 的界面逻辑是 ObjectBrowser 驱动所有对象都挂在树形结构下。新建项目的入口有两个工具栏 File 下拉菜单里的 New Project或者直接在 ObjectBrowser 里右键 New Project。两条路等价我一般用后者因为建完立刻能右键 Rename 改名字省得后面在树里找一串 Project1、Project2。数据表的创建走 Data → New → Worksheet。这里有个容易忽略的点Worksheet 是挂在当前项目下的如果 ObjectBrowser 里选中的不是目标项目新建的表会跑到别的项目里去。建完同样右键 Rename命名建议带上试验编号和数据类型比如 BE2024_Conc后面 Send To 的时候一眼能认出来。2.2 列定义DataType、Unit、Custom 三个字段怎么填点 Add 添加列弹窗里三个字段决定后面 NCA 能不能正确识别数据字段作用常见填法Data Type决定该列参与排序还是参与计算subject、form 选 Texttime、conc 选 NumericColumn Name列名NCA 映射时按名字匹配subject、form、time、conc 四列必备Unit单位标注仅作记录conc 填 ng/mL 之类Custom显示与导出的保留位数F4 表示四位小数G 表示有效数字E 表示科学计数法原始正文里有一处表述需要纠正着理解它写「form 选择 Text其余均选择 Numeric字符」Numeric 不是字符型这里应理解为数值型。subject 如果只是编号选 Numeric 或 Text 都能跑但选 Text 更稳妥避免编号被当成连续变量参与某些排序逻辑。Custom 字段是这份规范里最实用的细节之一。F 后跟数字表示固定小数位F4 就是保留四位G 表示有效数字E 表示科学计数法。浓度数据一般按检测仪器的实际精度设比如仪器报四位小数就填 F4。这个设置影响的是显示和导出不改变底层存储值但导出到报告表时位数不对会被审阅打回来。列顺序填错了不用重建Columns 框下有上下箭头可以调整DataType、Unit、Custom 忘了填也能在 Columns 框里补改。数据粘贴进表之后建议先扫一遍有没有空行和文本混入数值列——NCA 验证阶段报的错一半以上源头在这里。3. NCA 参数计算Mappings、Dosing 与参数开关3.1 Send To NCA 与 Mappings 的映射规则在数据表上右键 Send To → NCA and Toolbox → NCA弹出窗口有 Setup、Results、Verification 三个选项卡。Setup 里的 Mappings 是把列名映射到 NCA 的角色subject 选 Sortform 选 Sorttime 选 Timeconc 选 ConcentrationSort 的含义是该列作为分组排序依据NCA 会按 subject 和 form 的组合分别计算一套参数。这里如果 form 漏映射受试制剂和参比制剂的数据会被合并计算结果直接作废而且验证阶段不一定报错属于最阴的一类坑。3.2 Dosing 设置单次与多次给药的差别单击 Dosing勾选 Use internal Worksheet弹窗里取消 subject 和 form 的勾选确定。然后在 Dose 填服药剂量Time of Dose 填给药时间——生物利用度试验一般填 0。多次给药时 Tau 填给药间隔单次给药不填这一项。Tau 填错是多次给药计算里最常见的翻车点。Tau 参与 AUCss、Cavg、Fluctuation% 的计算填成 12 还是 24 直接改变稳态判断。我的习惯是填完之后回头对一遍随机表和给药记录确认间隔和实际给药方案一致再往下走。3.3 参数开关按试验类型选不是越多越好单击 Parameter Names选 Use internal Worksheet然后逐个参数设 YES 或 NO。这份规范按试验类型给了明确清单试验类型给药方式必选参数等效试验通用HL_Lambda_z、Tmax、Cmax、AUClast、AUCINF_obs缓释制剂等效单次上述 MRTlast、MRTINF_obs缓释制剂等效多次上述 Cmin、Cavg、Fluctuation%、MRTINF_obs、AUCss药代动力学单次Lambda_z、HL_Lambda_z、Tmax、Cmax、AUClast、AUCINF_obs、Vz_F_obs、Cl_F_obs、MRTlast、MRTINF_obs药代动力学多次Lambda_z、HL_Lambda_z、Tmax、Cmax、AUClast、AUCINF_obs、Cmin、Cavg、Fluctuation%、Vz_F、Clss_F、MRTINF_obs、Accumulation Index、AUCss参数名后面的括号是报告里常用的缩写HL_Lambda_z 就是 t1/2AUClast 是 AUC0-tAUCINF_obs 是 AUC0-∞Vz_F_obs 是表观分布容积Cl_F_obs 是血浆清除率。开关设 NO 的参数不会出现在结果表里但也不影响其他参数计算所以宁可先全开、算完再筛也别漏选——漏了要重跑一遍 NCA前面的映射和剂量设置全得再来。缓释制剂多次给药有个额外判定受试制剂与参比制剂相比DF/τ 要小于 143%τ 是给药间隔。这个比值不在 NCA 结果里直接给得自己用 Fluctuation% 除以 Tau 算规范里专门点出来说明它是审评关注点。3.4 Verify 与 Execute验证不过先看 Verification 选项卡参数设完点工具栏 Verify NCA。出现「NCA is ready to be run」才能点 Execute NCA 计算。出现其他提示切到 Verification 选项卡看具体原因改完再验证通过了再执行。验证失败的高频原因我归了三类Mappings 里有列没映射或映射类型冲突Dosing 里 Dose 或 Time of Dose 为空数据表里存在空行、重复时间点或非数值字符。Verification 选项卡的提示通常能定位到具体列照着改就行别硬点 Execute——验证不过强行计算结果表可能是空的或者缺参数。3.5 结果导出与位数设置计算完成后看 Results 里的 Final Parameters Pivoted from NCA点 Copy to Data Folder 导出成数据表导出时设参数保留位数。这份规范给的位数规则值得直接抄HL_Lambda_z、Tmax 保留两位Cmax 与输入的浓度位数一致AUC 两位数保留两位三位数保留一位四位数不保留小数Lambda_z 保留四位Vd 不保留小数Cl 保留一位MRT 保留两位DF 保留一位Accumulation Index 保留两位导出后还要加三列Ratio、sequence、period。Ratio 和 period 是 Numericsequence 是 Text。Ratio 用来算 AUC0-t/AUC0-∞要求大于 80%低于这个值说明外推比例过大末端相数据可能不可靠需要回头查采血点是否够、Lambda_z 拟合区间是否合理。4. 生物等效性计算与 Tmax 非参数检验4.1 Bioequivalence 的映射与判定指标在 Final Parameters Pivoted from NCA 上右键 Send To → NCA and Toolbox → Bioequivalence。Mappings 里 Cmax、AUClast、AUCINF_obs 选 Dependentform 选 Formulation。多次给药时等效计算用 Cmax 和 AUCss不用 AUClast 和 AUCINF_obs。同样先 Verify Bioequivalence出现 ready 提示再 Execute。结果里要盯的指标分几层结果区块指标要求Average BioequivalenceRatio Ref尽量 95%~105%Average BioequivalenceCI 9080%~125%Average BioequivalenceProb80/1250.05Average BioequivalenceAHpval0.05Average BioequivalencePower0.8Final Variance ParametersIntrasubject CV0.3Partial SS周期间、制剂间、服用顺序 P 值0.05Ratios TestTRatio Pctref60%~170%Cmax 为 50%~200%Cmax 的置信区间如果落在 80%~125% 之外规范允许按国内标准单独设 75%~133% 再算一次。这一步不是放水是不同监管口径下的预设路径但要在报告里写清楚用的是哪套标准别两套混着报。Ratio Pctref 超出 60%~170%Cmax 超 50%~200%意味着个体间差异过大规范的处理意见是复测。这里没有捷径超限就是超限改参数凑进区间属于数据操纵不在讨论范围。4.2 Crossover 做 Tmax 非参数检验Tmax 是排序型数据不走参数检验。右键药代参数结果表 Send To → NCA and Toolbox → CrossoverMappings 里 Form 选 TreatmentResponse 选 TmaxVerify 通过后 Execute Crossover用的是 Wilcoxon 配对法。结果看 Effects 工作表里 TreatmentSEQ1SEQ2的 P 值大于 0.05 即认为两种制剂 Tmax 无显著差异。规范还列了不同试验类型需要做非参数检验的参数清单等效试验只做 Tmax缓释制剂等效单次给药做 HL_Lambda_z、Tmax、MRTlast、MRTINF_obs多次给药做 HL_Lambda_z、Tmax、MRTINF_obs药代等效试验做 Tmax。这份清单容易记混我一般直接贴在项目备注里跑之前对一遍。5. 报告表与药时曲线Table 模式和 XY Plot 的配置5.1 Table 的 Row/Column/RowID/Data 四角色右键数据表 Send To → Reporting → Table选报告模式。四个角色的含义Row 是主要列Column 是行RowID 是次要列Data 是数据。规范给了三种典型配置血药浓度统计表Row 选 formRowID 选 subjectColumn 选 timeData 选 conc药代参数结果统计表RowID 选 subjectData 选各参数form 放 Row 或 Column 都行生物利用度结果统计表RowID 选 subjectData 选 Ratio PctrefColumn 选 DependentStatistics 选项下勾 Mean、SD、RSD生物利用度和药代参数再加 Geometric Mean。Option 里 Numeric Precision 的 Value 设位数Mean、SD、Geometric Mean 与数据源一致RSD 保留一位小数。RSD 位数多留一位是惯例因为它是相对量位数太少区分度不够。5.2 XY Plot 的分组逻辑与均数对比图右键受试者数据 Send To → Plotting → XY Plot。X 轴选 timeY 轴选 conc。Group 和 Page 的搭配决定图长什么样每个受试者单独一张图Group 选 subjectPage 选 form受试、参比各一张合并图Group 选 formPage 选 subject均数对比图Error 设在 Error Bars 的 Lower 和 Upper 上图出来之后还要调样式Plot → Layout 设图样式Plot → Title 加标题Axes → X/Y 设坐标范围Graphs → conc VStime → Appearance 改曲线颜色。均数对比图的误差棒如果没设 Lower 和 Upper只会画单向审阅时一眼能看出来属于低级但高频的失误。6. 避坑清单五条血泪经验6.1 三交叉项目直接绕道规范开头就写明 WinNonlin 6.0 不支持三交叉检测项目的数据统计。这不是配置问题是版本能力边界。遇到三交叉设计换工具或者拆成两两比较再手工合并别在这个版本上硬试试出来的结果不可信。6.2 复测数据的采用没有统一答案受试者数据输入要「注意复测数据的采用」但规范没给判定规则。常见做法是同一时间点有复测值时按预设的复测规则比如首次值异常才采用复测值执行并在原始记录里留痕。最怕的是算完发现某个点拉低了 AUC回头换复测值重算——这属于事后选择报告里经不起查。6.3 入选号的定义因中心而异规范里提到两个来源的入选号定义不同一个中心以体重顺序号为入选号另一个以用药顺序号为入选号。录入 subject 之前必须确认本项目用的是哪套编号混用会导致受试者与给药顺序错配BE 计算全盘错位。这类错误 NCA 验证查不出来只能靠人工核对随机表。6.4 验证通过不等于数据正确Verify NCA 只检查映射完整性和数据格式不检查数据本身的合理性。浓度值单位填错、时间点顺序颠倒、剂量少写一个零验证照样通过。我的做法是 Execute 之前先导出一份原始数据表用 Excel 画个散点扫一眼曲线形状形状不对就别往下走。6.5 位数设置改在导出前别改在导出后Copy to Data Folder 时设的位数会固化到导出表里之后再改 Custom 字段不影响已导出的数据。如果先导出再发现位数不对得重新导出一次后面基于旧表做的 Ratio 计算和 Table 全要重来。养成习惯导出前把 Custom 和 Numeric Precision 一次设到位。7. 一个可复用的自检脚本思路规范里的判定标准大多是数值阈值手工核对容易漏。我一般会在导出 NCA 结果后用一段 Python 把关键指标扫一遍把超限项标出来再人工判断。这不是替代 WinNonlin 的计算只是把「哪些结果需要回头看」这件事自动化。import pandas as pd # 读入从 WinNonlin 导出的 NCA 结果表Final Parameters Pivoted from NCA df pd.read_excel(nca_final_params.xlsx) # 1. AUC 外推比例检查AUC0-t / AUC0-∞ 应 80% df[auc_ratio] df[AUClast] / df[AUCINF_obs] bad_auc df[df[auc_ratio] 0.80][[subject, form, auc_ratio]] # 2. 半衰期与 Tmax 位数粗查非空且为数值 for col in [HL_Lambda_z, Tmax]: df[col] pd.to_numeric(df[col], errorscoerce) bad_na df[df[[HL_Lambda_z, Tmax]].isna().any(axis1)][[subject, form]] # 3. 输出待人工复核清单 print(AUC 外推比例超限) print(bad_auc) print(半衰期或 Tmax 缺失) print(bad_na)这段脚本的逻辑很直白第一段算 AUC0-t 与 AUC0-∞ 的比值低于 0.80 的挑出来对应规范里「AUC0-t/AUC0-∞80%」的要求第二段把 HL_Lambda_z 和 Tmax 强制转数值转不了的说明该受试者末端相拟合失败或参数没算出来需要回 WinNonlin 看 Verification。参数上唯一要改的是文件名和列名列名以你导出表的实际表头为准WinNonlin 不同导出路径的表头可能带空格或后缀。BE 的置信区间和 Power 不在 NCA 结果表里得从 Bioequivalence 的 Results 单独导出判定逻辑类似CI 90 下限低于 80% 或上限高于 125% 的、Power 低于 0.8 的、Intrasubject CV 大于 0.3 的全部标出来。这套脚本我一般跑在正式出报告之前把需要复算或复测的条目先列清楚避免报告写到一半发现某个受试者要重跑。从那以后我每次跑完 NCA都强制先过一遍这个自检再点 Bioequivalence因为验证通过但数据本身有问题的坑我踩过一次就不想踩第二次。希望帮到你。本文还有配套的精品资源点击获取