RE: $ERROR Block: Target mediated disposition
From: "Samtani, Mahesh [PRDUS]" MSamtani@prdus.jnj.com
Subject: RE: [NMusers] $ERROR Block: Target mediated disposition
Date: Sun, 9 Apr 2006 15:40:47 -0400
Hello Ana,
Here are a few humble suggestions on how to implement TMDD in NONMEM:
1) These models are notoriously stiff in nature so I would recommend that you start simple. Unless you have
evidence otherwise (Non-compartmental diagnostics suggested by Mager & Jusko or in-vitro data or your target
data suggesting dramatic changes) I would recommend that you start with a model where you don't have receptor
turnover and no internalization. A code for such a simple model is provided below.
2) When you have multiple DVs in your dataset (receptor and free drug) you need If statements under $ERROR
and a flag in your dataset. Please see this posting that nicely describe the modeling trick:
http://www.cognigencorp.com/nonmem/nm/97aug062004.html
3) You may want to try ADVAN9 for these models. There is an elegant paper by Dr. Karlsson in DMD (1999) that
succinctly describes the stiff nature of these binding models and how ADVAN9 maybe suitable for such problems.
Hope this helps. Good luck.....Mahesh
$PROBLEM TMDD model
$INPUT ID TIME DOSE PMOL DV AMT
;-------------------------
; UNITS
; Time - HR, KD = nM
; Dose - NMOLES/KG
; RECEPTOR NMOLES/KG
; Cp - NMOLES/L
; Clearances - L/HR/KG
; Volumes - L/KG
;-------------------------
$DATA NOKINT.CSV IGNORE=#
$SUBR ADVAN8 TOL=5
$MODEL
COMP=(TOTDRUG, DEFDOSE)
$PK
KD = THETA(1) * EXP(ETA(1))
RTOT = THETA(2) * EXP(ETA(2))
CL = THETA(3) * EXP(ETA(3))
VC = THETA(4) * EXP(ETA(4))
KEL = CL/VC
$DES
B1 = A(1)-RTOT-(KD*VC)
SQT1 = (B1**2) + (4*KD*VC*A(1))
DAM1 = (B1+SQRT(SQT1))/2
DADT(1) = -KEL*DAM1
$ERROR
B2 = A(1)-RTOT-(KD*VC)
SQT2 = (B2**2) + (4*KD*VC*A(1))
DAM2 = (B2+SQRT(SQT2))/2
; LOG TRANSFORM BOTH SIDES APPROACH USED HERE
IPRE = -5
IF ((DAM2/VC).GT.0) IPRE = LOG(DAM2/VC)
IRES = DV-IPRE
Y = IPRE + EPS(1)
$THETA ..etc