Sequential zero order followed by first order absorption

Hi, I am trying to build a PopPk model where the absorption process happens by the following scenario:
The drug will be absorbed after oral administration first by zero-order absorption during Duration= D. When the zero-order process ends, the remaining drug will be absorbed by first-order absorption with Tlag. I built the following model, but I found Tlag not estimated by the model. It is the same value that was initially estimated at 1. I am not sure if I made a mistake writing the codes.

test(){
cfMicro(A1, Cl / V, Cl2 / V, Cl2 / V2, first = (Aa = Ka))
dosepoint(Aa, duration=TK0, bioavail=(FR))
dosepoint(Aa, tlag = Tlag, bioavail=(1-FR))
C = A1 / V
error(CEps = 0.1)
observe(CObs = C + CEps * sqrt(1 + C^2 * (CMultStdev/sigma())^2))
stparm(Ka = tvKa * exp(nKa))
stparm(V = tvV * exp(nV))
stparm(V2 = tvV2 * exp(nV2))
stparm(Cl = tvCl * exp(nCl))
stparm(Cl2 = tvCl2 * exp(nCl2))
stparm(Tlag = tvTlag * exp(nTlag))
stparm(TK0 = tvTK0* exp(nTK0))
stparm(FR = tvFR* exp(nFR ))
stparm(CMultStdev = tvCMultStdev)
fixef(tvKa = c(, 1, ))
fixef(tvV = c(, 53871, ))
fixef(tvV2 = c(, 82546, ))
fixef(tvCl = c(, 5800, ))
fixef(tvCl2 = c(,5800, ))
fixef(tvTlag = c(, 1, ))
fixef(tvTK0 = c(, 3, ))
fixef(tvFR = c(, 1, ))
fixef(tvCMultStdev = c(, 1, ))
ranef(diag(nV, nCl, nKa, nV2, nCl2, nTlag, nTK0,nFR) = c(0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1))
}

Can I get help on this issue? Thanks

I think you need 2 dosepoints on Aa, have a lookat that and let us know how you get on. I can look properly later in the week. Simon.

try a simpler model first

test(){
cfMicro(A1, Cl / V, first = (Aa = Ka))
dosepoint(A1, duration=TK0, bioavail=(FR))
dosepoint(Aa, tlag = TK0, bioavail=(1-FR))
C = A1 / V
error(CEps = 0.1)
observe(CObs = C + CEps * sqrt(1 + C^2 * (CMultStdev/sigma())^2))
stparm(Ka = tvKa * exp(nKa))
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(TK0 = tvTK0)
stparm(FR = tvFR)
stparm(CMultStdev = tvCMultStdev)
fixef(tvKa = c(, 1, ))
fixef(tvV = c(, 10, ))
fixef(tvCl = c(, 5, ))
fixef(tvTK0 = c(, 3, ))
fixef(tvFR = c(, 0.5, ))
fixef(tvCMultStdev = c(, 1, ))
ranef(diag(nV, nCl, nKa) = c(0.1, 0.1, 0.1))
}

make sure that you enter the same dose amount into Aa and A1 then total dose into system =
A1*FR + (1-FR) *Aa =

make sure that tlag = tk0

dosepoint(A1, duration=TK0, bioavail=(FR))
dosepoint(Aa, tlag = TK0, bioavail=(1-FR))

Thanks, Simon, for the clarification

Thanks, Sameer, for having time correcting the codes for my analysis.

I have another question. How about if we have changed the absorption scenario to simultaneous where both zero and first order are happing at the same time. I am not sure if the following model describes the process correctly:

test(){
cfMicro(A1, Cl / V, first = (Aa = Ka))
dosepoint(Aa, tlag = Tlag,duration = TK0 )
C = A1 / V
error(CEps = 0.1)
observe(CObs = C + CEps * sqrt(1 + C^2 * (CMultStdev/sigma())^2))
stparm(Ka = tvKa * exp(nKa))
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(TK0 = tvTK0)
stparm(CMultStdev = tvCMultStdev)
fixef(tvKa = c(, 1, ))
fixef(tvV = c(, 10, ))
fixef(tvCl = c(, 5, ))
fixef(tvTK0 = c(, 3, ))
fixef(tvCMultStdev = c(, 1, ))
ranef(diag(nV, nCl, nKa) = c(0.1, 0.1, 0.1))
}

yes you can have tlag different than tk0 and then both can happen at the same time
you can have a lag affecting both or just the first order and then if tvlag < tk0 then

dosepoint(A1, duration=TK0, bioavail=(FR))
dosepoint(Aa, tlag = tvlag, bioavail=(1-FR))

you still need two dosepoint if you want simultaneous absorption ( there is more advanced options where dosepoint can split a dose automatically but for now stick to the above

dosepoint(Aa, tlag = Tlag,duration = TK0 )
this line is saying we have a tlag after which the dose enter the Aa absorption compartment using a TK0
then from Aa to A1 we have a first order process using a KA
cfMicro(A1, Cl / V, first = (Aa = Ka))

Thanks, Samer for clarifying the point regarding simultaneous absorption model, but I have a question about Tlag

so if we add two lag time for both absorption zero and the first, let assume the Tlag for the zero order will be Tlag1

and the codes lines will be like this:

dosepoint(A1, duration=TK0, bioavail=(FR))

stparm(Tlag = tvTlag * exp(nTlag))

Now, time lag for the first order absorption (Tlag2) will be Tlag2= Tlag (for zero order) + TK0 (duration).

My question how we write codes line for Tlag 2?

Thanks

test(){
cfMicro(A1, Cl / V, first = (Aa = Ka))
dosepoint(A1, tlag = tvtlag1, duration=TK0, bioavail=(FR))
dosepoint(Aa, tlag = tvtlag1+ TK0, bioavail=(1-FR))
C = A1 / V
error(CEps = 0.1)
observe(CObs = C + CEps * sqrt(1 + C^2 * (CMultStdev/sigma())^2))
stparm(Ka = tvKa * exp(nKa))
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(TK0 = tvTK0)
stparm(FR = tvFR)
stparm(CMultStdev = tvCMultStdev)
fixef(tvKa = c(, 1, ))
fixef(tvV = c(, 10, ))
fixef(tvCl = c(, 5, ))
fixef(tvtlag1 = c(, 1, ))
fixef(tvTK0 = c(, 3, ))
fixef(tvFR = c(, 0.5, ))
fixef(tvCMultStdev = c(, 1, ))
ranef(diag(nV, nCl, nKa) = c(0.1, 0.1, 0.1))
}

test.phxproj (115 KB)

you can just tell the pml what you want:

dosepoint(A1, tlag = Tlag1, duration=TK0, bioavail=(FR))
dosepoint(Aa, tlag = Tlag1 + Tlag2 + TK0, bioavail=(1-FR))

so you can have lag1 and tk0 for the zero order part and only start the first order after lag1 + tk0 (zero order finished) + another lag2 before first start

if for Aa tlag = Tlag1 + TK0then no need to have a separate line for it it is a sum of two already defined parameter

stparm(Tlag1= tvtlag1* exp(nTlag1))

stparm(Tlag2 = tvtlag1 * exp(nTlag2))

estimating n on lag and have multiple of those can render you model pretty unsolvable

Thanks, Sameer, for your time answering all of my questions regarding mixed absorption scenarios. All of your answers helped me to understand the concepts better. I believe combined absorption, in general, gives a better fit than Tlag alone, and it could be a possible alternative to the transit compartment that has a downside which is the long running time needed especially if you have a complex model or computer system with limited computational power.