Parent and Metabolite

All,

I am trying to model the parent and metabolite data using the following codd (two compartment with par for parent and met for metabolite.

CL is the total clearance to be estimated as CLform + CLpar

Can anybody suggest or confirm the correctness of the code

Thanks with best regards

R

test(){

deriv(Apar = (Aa * Ka)- (Qpar * (Cpar - C2Par))- (CLform * Cpar)- (CLpar * Cpar))

deriv(Aa = - (Aa * Ka))

deriv(A2 = (Qpar * (Cpar - C2Par)))

deriv(AMet = (CLform * Cpar)- (CLMet * Cmet)- (Qmet * (Cmet - C2met)))

urinecpt(A01 = (CLMet * Cmet))

urinecpt(A0 = (CLpar * Cpar))

deriv(A2 = (Qmet * (Cmet - C2met)))

Cpar = Apar / Vpar

dosepoint(Aa, idosevar = AaDose, infdosevar = AaInfDose, infratevar = AaInfRate)

C2Par = A2 / V2par

Cmet = AMet / Vmet

error(CEpspar = 0.597242)

observe(CObsPar = Cpar * (1 + CEpspar))

error(CEpsmet = 0.418658)

observe(CObsMet = Cmet * (1 + CEpsmet))

C2met = A2 / V2met

CLform= CL*fm

CLpar=CL*(1-fm)

stparm(CL = (tvCLformexp(nCLform)+(tvCLparexp(nCLpar)))

stparm(Vpar = tvVpar * exp(nVpar))

stparm(Ka = tvKa * exp(nKa))

stparm(V2par = tvV2par * exp(nV2par))

stparm(Qpar = tvQpar * exp(nQpar))

stparm(Vmet = tvVmet * exp(nVmet))

stparm(CLMet = tvCLMet * exp(nCLMet))

stparm(V2met = tvV2met * exp(nV2met))

stparm(Qmet = tvQmet * exp(nQmet))

stparm(fm=tvfm + nfm)

fixef(tvVpar = c(, 1, ))

fixef(tvKa = c(, 1, ))

fixef(tvV2par = c(, 1, ))

fixef(tvQpar = c(, 1, ))

fixef(tvVmet = c(, 1, ))

fixef(tvCLform = c(, 1, ))

fixef(tvCLMet = c(, 1, ))

fixef(tvCLpar = c(, 1, ))

fixef(tvV2met = c(, 1, ))

fixef(tvQmet = c(, 1, ))

fixef(tvfm = c(, 1, ))

fixef(tvCL= c(, 1, ))

ranef(diag(nKa, nCLMet, nQpar, nVmet, nVpar, nCLform, nCLpar, nV2par, nQmet, nV2met, nfm) = c(0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,0.3)) }

Dear Raghava,

there were a few missing parentheses and one error in the code. The error was that you specified the peripheral compartment for the metabolite as A2, which is a duplicate definition, since this is defined as peripheral compartment of the parent compound. Here is the fixed code:

test(){

deriv(Apar = (Aa * Ka)- (Qpar * (Cpar - C2Par))- (CLform * Cpar)- (CLpar * Cpar))
deriv(Aa = - (Aa * Ka))
deriv(A2 = (Qpar * (Cpar - C2Par)))
deriv(AMet = (CLform * Cpar)- (CLMet * Cmet)- (Qmet * (Cmet - C2met)))
urinecpt(A01 = (CLMet * Cmet))
urinecpt(A0 = (CLpar * Cpar))
deriv(A2met = (Qmet * (Cmet - C2met)))
Cpar = Apar / Vpar
dosepoint(Aa, idosevar = AaDose, infdosevar = AaInfDose, infratevar = AaInfRate)
C2Par = A2 / V2par
Cmet = AMet / Vmet
error(CEpspar = 0.597242)
observe(CObsPar = Cpar * (1 + CEpspar))
error(CEpsmet = 0.418658)
observe(CObsMet = Cmet * (1 + CEpsmet))
C2met = A2met / V2met
CLform= CLfm
CLpar=CL
(1-fm)
stparm(CL = (tvCLformexp(nCLform)+(tvCLparexp(nCLpar))))
stparm(Vpar = tvVpar * exp(nVpar))
stparm(Ka = tvKa * exp(nKa))
stparm(V2par = tvV2par * exp(nV2par))
stparm(Qpar = tvQpar * exp(nQpar))
stparm(Vmet = tvVmet * exp(nVmet))
stparm(CLMet = tvCLMet * exp(nCLMet))
stparm(V2met = tvV2met * exp(nV2met))
stparm(Qmet = tvQmet * exp(nQmet))
stparm(fm=tvfm + nfm)
fixef(tvVpar = c(, 1, ))
fixef(tvKa = c(, 1, ))
fixef(tvV2par = c(, 1, ))
fixef(tvQpar = c(, 1, ))
fixef(tvVmet = c(, 1, ))
fixef(tvCLform = c(, 1, ))
fixef(tvCLMet = c(, 1, ))
fixef(tvCLpar = c(, 1, ))
fixef(tvV2met = c(, 1, ))
fixef(tvQmet = c(, 1, ))
fixef(tvfm = c(, 1, ))
fixef(tvCL= c(, 1, ))
ranef(diag(nKa, nCLMet, nQpar, nVmet, nVpar, nCLform, nCLpar, nV2par, nQmet, nV2met, nfm) = c(0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,0.3))
}

Bernd

Dear Raghava,

“stparm(CL = (tvCLformexp(nCLform)+(tvCLparexp(nCLpar)))”

I think writing this way will result in the two parameters “tvCLpar” and “tvCLform” are considered not structurally identifiable.

0521

Yes, you should define those two parameters separately.

Bernd

You can define overall clearance as a sum of both, e.g.

stparm(CLform=tvCLform*exp(nCLform))

stparm(CLpar =tvCLpar*exp(nCLpar))

Cl = CLform + CLpar

Dear Bwendt,

The error is “Variable CL defined before use”

Please guide

test(){

deriv(Apar = (Aa * Ka)- (Qpar * (Cpar - C2Par))- (CLform * Cpar)- (CLpar * Cpar))

deriv(Aa = - (Aa * Ka))

deriv(A2 = (Qpar * (Cpar - C2Par)))

deriv(AMet = (CLform * Cpar)- (CLMet * Cmet)- (Qmet * (Cmet - C2met)))

urinecpt(A01 = (CLMet * Cmet))

urinecpt(A0 = (CLpar * Cpar))

deriv(A2met = (Qmet * (Cmet - C2met)))

Cpar = Apar / Vpar

dosepoint(Aa, idosevar = AaDose, infdosevar = AaInfDose, infratevar = AaInfRate)

C2Par = A2 / V2par

Cmet = AMet / Vmet

error(CEpspar = 0.535429)

observe(CObsPar = Cpar * (1 + CEpspar))

error(CEpsmet = 0.364751)

observe(CObsMet = Cmet * (1 + CEpsmet))

C2met = A2met / V2met

CLform=CL*fm

CLpar=CL*(1-fm)

stparm(CLform = tvCLform * exp(nCLform))

stparm(CLpar = tvCLpar*exp(nCLpar))

CL= CLform + CLpar

stparm(Vpar = tvVpar * exp(nVpar))

stparm(Ka = tvKa * exp(nKa))

stparm(V2par = tvV2par * exp(nV2par))

stparm(Qpar = tvQpar * exp(nQpar))

stparm(Vmet = tvVmet * exp(nVmet))

stparm(CLMet = tvCLMet * exp(nCLMet))

stparm(V2met = tvV2met * exp(nV2met))

stparm(Qmet = tvQmet * exp(nQmet))

stparm(fm = tvfm + nfm)

fixef(tvVpar = c(, 15262.7, ))

fixef(tvKa = c(, 0.321453, ))

fixef(tvV2par = c(, 30064.1, ))

fixef(tvQpar = c(, 1955.43, ))

fixef(tvVmet = c(, 368.962, ))

fixef(tvCLform = c(, 468.859, ))

fixef(tvCLMet = c(, 86.974, ))

fixef(tvCLpar = c(, 3082.66, ))

fixef(tvV2met = c(, 2287.75, ))

fixef(tvQmet = c(, 88.8674, ))

fixef(tvCL = c(,4201.6, ))

fixef(tvfm = c(, 0.151374, ))

ranef(diag(nKa, nCLMet, nV2par, nQpar, nVmet, nVpar, nCLform, nCLpar, nQmet, nV2met,nfm) = c(0.045805644, 3.5058959E-06, 0.62571034, 0.78149431, 1.1531255, 1.1244665, 0.28501214, 0.42422691, 7.0423258E-05, 0.009468254, 0.0036173807))

with best regards

Raghav

You need to put the fraction metabolised into the stparm statement:

Cl=CLform+CLpar
stparm(CLform = tvCLformexp(nCLform)fm)
stparm(CLpar=tvCLpar
exp(nCLpar)
(1-fm))