NONMEM笔记

1. ID可识别位数的设置

1.1 问题描述

在NM7中,ID的值可以有14位数字,但是默认情况下,输出结果时只能识别前5位数字,例如ID为 “101001”、“101002”、“101003”的受试者,在输出的结果表格里全部显示为“101000”,即从第6位开始的都无法识别。

1.2 原因解析

NM使用Fortran语言编写,输出表格所有字段的默认格式是s1PE11.4。此格式为科学计数法,允许11个字符的总宽度,包括符号和小数位数。小数点前面有1位,后面有4位,示例如下:-1.2345E+01。因此,在默认设置下,最多显示识别5位数字。

1.3 解决方案

使用LFORMATRFORMAT选项来对数据的位数进行设置。在$TABLE模块加入以下代码:

$TABLE ID DOSE WT TIME NOPRINT 
FILE=./filename.tbl
RFORMAT="(F15.0," 
RFORMAT="7(s1PE11.4))"

代码的第1行是我们需要输出的4个变量:ID、DOSE、WT、TIME;第2行是输出表格的路径及文件名。

在第3行,我们对第1个变量(即ID)的格式进行了设置。Fortran的浮点数表示格式为Fw.d,整数部分有w个字符,小数部分有d个字符。因此代码中的F15.0表示ID是一个浮点数,整数有15位,小数有0位。而NM7最多支持14位数字,因此这样设置已经足够14位ID的使用。

在第4行,我们将剩下的变量设置为仍然使用默认格式s1PE11.4。前面的7表示除了第1个变量ID之外,还有7个变量需要输出,但是从第1行来看,理应只有3个。这里之所以等于7,是因为除了自己定义输出的DOSE、WT、TIME外,NONMEM还会自动输出DVPREDRESWRES这4个变量,所以很多时候在设置变量数时需要加4。

2. PsN的SCM功能

2.1 概述

SCM (stepwise covariate model) 是由PsN提供的一种自动筛选协变量的工具。使用SCM需要运行以下命令:

SCM -config_file=xx.scm

同时需要一份SCM文件,示例如下:

model = 3.mod
search_direction = both
p_forward = 0.05
p_backward = 0.01
continuous_covariates = WT,AST,ALT,ALB
categorical_covariates = SEX,CYP3A5
time_varying = WT,AST,ALT,ALB

[test_relations]
CL = WT,AST,ALT,ALB,SEX,CYP3A5

[valid_states]
continuous = 1,5
categorical = 1,2

[code]
CL:AST-5 = exponential

出现在$INPUT中的变量名才会用到,控制文件中参数必须写成TVxx的形式。

SCM的结果可以在scmlog1.txt中查看,其中包含了OFV值和p值。

2.2 SCM的设置

必需的变量:

  • model:基础模型
  • search_direction:筛选方向,可以等于forward、backward、both
  • continuous_covariates:连续型协变量,逗号分隔,不能加空格
  • categorical_covariates:分类型协变量,逗号分隔,不能加空格

time_varying用于协变量在研究过程中变化的情况,它只能在残差写成“Uppsala way”时才能使用。所谓“Uppsala way”,是指在$ERROR$PRED模型使用变量W,代码如下:

$ERROR
	W = SQRT(IPRED * THETA(1)**2 + THETA(2)**2)
	Y = IPRED + ERR(1)*W
	IRES = DV - IPRED
	IWRES = IPRES / W

$SIGMA
	1 FIX

2.3 其他配置

  • [test_relations]:定义协变量应该加到哪个参数上。
  • [valid_states]:定义协变量加入的形式。states可以自己在[code]里面自己定义,也可使用固定的。固定的states如下:
变量 states 说明
连续型 1 none
连续型 2 linear
连续型 3 hockey-stick (分段线性)
连续型 4 exponential
连续型 5 power
分类型 1 none
分类型 2 linear
  • [included_relations]:定义在一开始就加入的协变量。例如:
CL = WT-2,AGE-5

3. Pirana

  • 查看正在进行的任务
qstat -f
  • 结束任务xxx
qdel xxx