Jump to content


Photo

Parent and Metabolite


  • Please log in to reply
6 replies to this topic

#1 raghava choudary

raghava choudary

    Advanced Member

  • Members
  • PipPipPip
  • 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

    Advanced Member

  • Administrators
  • 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

    Advanced Member

  • Members
  • PipPipPip
  • 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

    Advanced Member

  • Administrators
  • 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

    Advanced Member

  • Administrators
  • 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

    Advanced Member

  • Members
  • PipPipPip
  • 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"

 

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



#7 bwendt@certara.com

bwendt@certara.com

    Advanced Member

  • Administrators
  • 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