Coding INTEGER Function in NONMEM
Hi,
I would like to build a model to describe a circadian rhythm. Basically I
assume that the release rate is linearly increasing from Tmin to Tmax, and
linearly decreasing from Tmax to Tmin in 24 hr period. My code is as follows
(I tried to put integer operation in $DES, to convert every time point after
24hr to 0-24hr period). My run failed at the covariance step, and nonmem
gave me a warning:
(WARNING 68) THE INTEGER FUNCTION IS BEING USED OUTSIDE OF A SIMULATION
BLOCK. IF THE INTEGER VALUE AFFECTS THE VALUE OF THE OBJECTIVE FUNCTION,
THEN AN ERROR WILL PROBABLY OCCUR.
How the warning will affect my nonmem output? Why the run failed? Any
suggestions on the coding will be highly appreciated. Thank you.
Best wishes,
lili
NONMEM CODE:
;PD Model
KOUT = 0.4 ;Elimination rate constant (1/hr)
RMAX = THETA(1)*EXP(ETA(1)) ;Maximum release rate (ng/ml/hr)
TMIN = THETA(2)*EXP(ETA(2)) ;Time at minimum release rate (hr)
TGAP = THETA(3)*EXP(ETA(3)) ;Time from minimum rate to maximum release rate
(hr)
BSL = THETA(4)*EXP(ETA(4)) ;Concentration at time zero (ng/ml)
SD = THETA(5) ;CV% of residual
TMAX = TMIN+TGAP
A_0(1) = BSL
$DES
T1= T-24*INT(T/24) ;Convert time to 0-24 period, the MOD function is not
working in NONMEM
IF (T1.LE.TMIN) THEN ;Make the time start from Tmin
T2=T1+24
ELSE
T2=T1
ENDIF
IF (T2.LE.TMAX) THEN
KIN=RMAX*(T2-TMIN)/TGAP
ELSE
KIN=RMAX*(TMIN+24-T2)/(24-TGAP)
ENDIF
DADT(1)= KIN-KOUT*A(1)
$ERROR
IPRED=F
Y=F*(1+SD*EPS(1))
IRES=DV-IPRED
IWRES=IRES/SD/F