# Parent and Metabolite

6 replies to this topic

### #1 raghava choudary

raghava choudary

• Members
• 81 posts

Posted 20 December 2019 - 10:57 AM

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 = (tvCLform*exp(nCLform)+(tvCLpar*exp(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)) }

### #2 bwendt@certara.com

bwendt@certara.com

• 188 posts

Posted 20 December 2019 - 12:23 PM

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= CL*fm
CLpar=CL*(1-fm)
stparm(CL = (tvCLform*exp(nCLform)+(tvCLpar*exp(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

### #3 0521

0521

• Members
• 31 posts

Posted 20 December 2019 - 12:37 PM

Dear Raghava,

"stparm(CL = (tvCLform*exp(nCLform)+(tvCLpar*exp(nCLpar)))"

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

0521

Edited by 0521, 20 December 2019 - 12:38 PM.

### #4 bwendt@certara.com

bwendt@certara.com

• 188 posts

Posted 20 December 2019 - 12:40 PM

Yes, you should define those two parameters separately.

Bernd

### #5 bwendt@certara.com

bwendt@certara.com

• 188 posts

Posted 20 December 2019 - 12:42 PM

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

### #6 raghava choudary

raghava choudary

• Members
• 81 posts

Posted 20 December 2019 - 01:58 PM

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"

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

### #7 bwendt@certara.com

bwendt@certara.com

• 188 posts

Posted 20 December 2019 - 03:25 PM

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

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

#### 0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users