Using CONT data item
From: Nick Holford n.holford@auckland.ac.nz
Subject: [NMusers] Using CONT data item
Date: Sat, 27 Aug 2005 05:51:05 +1200
Hi,
There have been some recent postings about how to get NONMEM to accept more than 20 data items. NONMEM provides
a mechanism to do this but it is not well documented. I have got it to work by trial and error based on
tip #21 ( http://www.globomax.com/nonmem_tip21.htm).
There are several things I found I had to do:
1. Set up the data with 2 lines per record. The example below shows a total of 38 variables
in one record split over 2 lines in the data set.
It seems to be important to repeat the ID CONT DV and MDV data items in both lines. The ID, DV and MDV values
should be the same in both lines. The CONT item should be 1 in the first line and 0 in the second line.
It is also important to have other data items with special meaning such
as AMT, CMT, SS, II, RATE, EVID on the second line (CONT=0 line)
;1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
ID CONT DV MDV STDY RACE RF AGE DVID X10 X11 X12 X13 X14 X15 X16 X17 X18 X19
;1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
ID CONT DV MDV TIME AMT CMT SS II RATE EVID WT ICL IVC IQ IVP ITAB ITLA IF1
2. The $INPUT record must only specify items data items on the second line (CONT=0) e.g.
$INPUT ID CONT DV MDV TIME AMT CMT ADDL II RATE
EVID WT ICL IVC IQ IVP ITAB ITLA IF1
3. In $PK I extract the data items from the first line (CONT=1) using verbatim code using their
position in the EVTREC matrix. When I want to use these variables later in abbreviated code
NM-TRAN will complain if I only define them in verbatim code. So I declare them to NM-TRAN in
a NEWIND block. The assignment of 0 to these variables does nothing except keep NM-TRAN happy.
$PK
; Declare extra data item variable names for NM-TRAN
IF (NEWIND.LE.1) THEN
STDY=0
RACE=0
RF=0
AGE=0
DVID=0
ENDIF
; Get data items from EVTREC matrix
" STDY=EVTREC(1,5)
" RACE=EVTREC(1,6)
" RF=EVTREC(1,7)
" AGE=EVTREC(1,8)
" DVID=EVTREC(1,9)
; Use the extra data item (AGE in this example)
FAGE=EXP(KAGE*(AGE-40)
CL=FAGE*THETA(1)*EXP(ETA(1))
In the example above I describe things in terms of 2 lines with the second line being the CONT=0 line.
I have not tested it but in theory one should be able to extend this process using as many
lines per event record as you wish. All lines but the last one must have CONT=1 and the same
values of ID, DV and MDV. The last line of the set of lines making up one event record must have CONT=0.
Nick
--
Nick Holford, Dept Pharmacology & Clinical Pharmacology
University of Auckland, 85 Park Rd, Private Bag 92019, Auckland, New Zealand
email:n.holford@auckland.ac.nz tel:+64(9)373-7599x86730 fax:373-7556
http://www.health.auckland.ac.nz/pharmacology/staff/nholford/