Transit compartment + Michaelis Menten absorption

Dear All,

I am building a pharmacokinetic population model after oral administrations. I tried several absorption model with Tlags and Michaelis Menten absorption with Tlag which has the better fitting. Now I am trying to replace the Tlag with transit compartments to see if it improves the fitting. I would like to simulate a chain of transit compartments with a transit constant Ktr, which goes into the depot compartment Aa, from which the product goes into central compartment A1 following Michaelis Menten kinetics.

Could someone please check the following code and tell me if the synthax is correct ? I am not sure I understand well the Phoenix transit statement.

transit(An, mtt, ntr, max = 50, out = -An * ktr )
deriv(A1 = - (Cl * C) + (Vmax*Aa/(Aa+Km)))
deriv(Aa = ktr*An - (Vmax*Aa/(Aa+Km)))
C = A1 / V
dosepoint(An)
error(CEps = 0.0559127374703266)

observe(CObs = C + CEps * (1 + C * CMixRatio), bql=0.01)
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(Vmax = tvVmax * exp(nVmax))
stparm(Km = tvKm * exp(nKm))
stparm(CMixRatio = tvMixRatio * exp(nMixRatio))
stparm(ktr=tvktr*exp(nktr))
stparm(ntr=tvntr*exp(nntr))
mtt = (ntr+1)/ktr

fixef(tvV = c(,659.091193972411,))
fixef(tvCl = c(,342.208720844159,))
fixef(tvVmax = c(,12240.2872253402,))
fixef(tvKm = c(,5525.16058624299,))
fixef(tvktr = c(,10.9370197442405,))
fixef(tvntr = c(,1.95579674958164,))
fixef(tvMixRatio = c(,1.73264770902367,))

ranef(block(nV, nCl) = c(0.075361962, 0.078798133, 0.1005539), block(nVmax, nKm) = c(0.40144468, 0.47719268, 0.65218929), diag(nktr) = c(0.63852255), diag(nntr) = c(0.56623551), diag(nMixRatio) = c(0.19958191))

Thank you very much for your help

Juliette

Mike’s poster explain it well in here:

now extending it to having an in between compartment with M-M is exactly what you did :slight_smile:

seems can’t attach a phoenix project in here


test(){
fcovariate(ntransit)
transit(Aa, mtt, ntr, max = 50, out = -Aa * ktr )
deriv(Abetween = (Aa * ktr) - (VmaxAbetween/(Abetween+Km)))
deriv(A1 = - (Cl * C) +(Vmax
Abetween/(Abetween+Km)))

C = A1 / V
Abet= Abetween

stparm(mtt = tvmtt )
stparm(ntr = ntransit )
ktr  = (ntr+1)/mtt

C = A1 / V
dosepoint(Aa, idosevar = AaDose, infdosevar = AaInfDose, infratevar = AaInfRate)

error(CEps = 1)
observe(CObs = C + CEps)
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(Vmax = tvVmax )

fixef(tvV = c(, 1, ))
fixef(tvCl = c(, 1, ))

fixef(tvmtt = c(, 1, ))
fixef(tvVmax = c(, 10, ))
#fixef(tvntr = c(, 1, ))
fixef(Km = c(, 1, ))



ranef(diag(nV, nCl) = c(1, 1))

}

Hi Samer,

Thank you very much for your answer !

Have a good day

Juliette