Hello,
I am trying to construct a poppk model using a two compartment model with catenary chain absorption (n=2) and first order elimination. I want to set the rate constants (Ka1 and Ka2) in the catenary chain equal and add eta on one of the Kas. First I simply wrote into the code: Ka=Ka1:
test(){
deriv(A = - (Cl * C)- (Cl2 * (C - C2)) + (Atr * Ka1))
urinecpt(A0 = (Cl * C))
deriv(Aa = - (Aa * Ka))
deriv(A2 = (Cl2 * (C - C2)))
deriv(Atr = (Aa * Ka)- (Atr * Ka1))
Ka=Ka1
C = A / V
dosepoint(Aa)
C2 = A2 / V2
error(CEps = 1)
observe(CObs = C * (1 + CEps))
stparm(V = (tvV))
stparm(Cl = (tvCl) *exp(nCl))
stparm(V2 = (tvV2))
stparm(Cl2 = (tvCl2))
stparm(Ka = (tvKa) * exp(nKa))
stparm(Ka1 = (tvKa1))
fixef(tvV = c(, 360, ))
fixef(tvCl = c(, 58, ))
fixef(tvV2 = c(, 8537, ))
fixef(tvCl2 = c(, 298, ))
fixef(tvKa = c(, 0.64, ))
fixef(tvKa1 = c(, 0.64, ))
ranef(diag(nCl, nKa))
}
But when I run it, Ka and Ka1 come out with different values.
Second step was to just use a single Ka throughout the differential equations:
test(){
deriv(A = - (Cl * C)- (Cl2 * (C - C2)) + (Atr * Ka))
urinecpt(A0 = (Cl * C))
deriv(Aa = - (Aa * Ka))
deriv(A2 = (Cl2 * (C - C2)))
deriv(Atr = (Aa * Ka)- (Atr * Ka))
C = A / V
dosepoint(Aa)
C2 = A2 / V2
error(CEps = 1)
observe(CObs = C * (1 + CEps))
stparm(V = (tvV))
stparm(Cl = (tvCl) *exp(nCl))
stparm(V2 = (tvV2))
stparm(Cl2 = (tvCl2))
stparm(Ka = (tvKa) * exp(nKa))
fixef(tvV = c(, 360, ))
fixef(tvCl = c(, 58, ))
fixef(tvV2 = c(, 8537, ))
fixef(tvCl2 = c(, 298, ))
fixef(tvKa = c(, 0.64, ))
ranef(diag(nCl, nKa))
}
In this case, the value of nKa is pretty decent (~0.16)
However, from what I understand, In NONMEM, if you give the two absorption constants the same name and add eta on it, the eta exponentially increases.
I also tried the following model:
test(){
deriv(A = - (Cl * C)- (Cl2 * (C - C2)) + (Atr * Ka1))
urinecpt(A0 = (Cl * C))
deriv(Aa = - (Aa * Ka))
deriv(A2 = (Cl2 * (C - C2)))
deriv(Atr = (Aa * Ka)- (Atr * Ka1))
C = A / V
dosepoint(Aa)
C2 = A2 / V2
error(CEps = 1)
observe(CObs = C * (1 + CEps))
stparm(V = (tvV))
stparm(Cl = (tvCl) *exp(nCl))
stparm(V2 = (tvV2))
stparm(Cl2 = (tvCl2))
stparm(Ka = (tvKa)*exp(nKa))
stparm(Ka1 = (tvKa))
fixef(tvV = c(0, 100, 3600))
fixef(tvCl = c(0, 58, 580))
fixef(tvV2 = c(0, 8537, 85370))
fixef(tvCl2 = c(0, 298, 2980))
fixef(tvKa = c(0, 0.64, 6.4))
ranef(diag(nCl, nKa))
}
This way,keeping the names of the absorption constants different, but setting them equal by using stparm(Ka1 = (tvKa)), allows me to add eta on only one of the two absorption transit constants. However, the nKa increases to 0.56.
Since I don't have a very good understanding of how Phoenix works, could you tell me which one of these models is correct?
Thanks!!