Jump to content


Photo
- - - - -

NonLinear Ka

NonLinear absorption

  • Please log in to reply
4 replies to this topic

#1 vetpharma

vetpharma

    Member

  • Members
  • PipPip
  • 14 posts

Posted 21 March 2023 - 06:38 PM

Hi, 

 

I modeling a compound using pop PK which follows a non linear absorption. For dose dependent Ka, could you please confirm if the following syntax is correct? 

 

test(){
covariate(Dose)
deriv(Aa = - Ka * Aa)
deriv(A1 = Ka * Aa - Cl * C)
dosepoint(Aa)
nlKa = tvKa * (1-Dose/(Dose+D50))
C = A1 / V
error(CEps = 0.1)
observe(CObs = C * (1 + CEps))
stparm(D50 = tvD50 * exp(nD50))
stparm(Ka = tvKa * exp(nKa))
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
fixef(tvKa = c(, 1, ))
fixef(tvV = c(, 1, ))
fixef(tvCl = c(, 1, ))
fixef(tvD50 = c(,1,))
ranef(diag(nV, nCl, nKa, nD50) = c(1, 1, 1, 1))
 
The model is not working so I would appreciate it if you help me to troubleshoot the problem. 
Is that correct to introduce D50 as a param? 
Is that correct to map Dose in Aa and also as covariate or I should separate them?
 
Regards
Amir


#2 bwendt@certara.com

bwendt@certara.com

    Advanced Member

  • Administrators
  • 282 posts

Posted 22 March 2023 - 09:12 AM

Hi Amir,

 

if you are interested in modeling nonlinear absorption, I would kindly refer you to exercise PK42 from the Gabrielsson book: "Pharmacokinetic and Pharmacodynamic Data Analysis - Concepts and Applications, 5th Edition, by Gabrielsson Johan and Daniel Weiner"

 

His implementation uses a different approach, e.g. saturating the amount of compound in the absorption compartment:

 

deriv(Aa = - Vm * Aa / (Km + Aa))

 

You could define Vm and Km as population parameters, e.g. with random effects included.

 

I would suggest you apply this approach first and see whether it helps to represent your data.

 

Bernd



#3 dlweiner

dlweiner

    Member

  • Members
  • PipPip
  • 23 posts

Posted 22 March 2023 - 02:00 PM

Amir,

 

As Bernd suggested, the G&B book has use of an MM model for this (PK42).

 

The parameterization you are using (1-Dose/(Dose+D50)) is more often used for modeling bioavailability (F).  There are a few problems with your attempt at using this for Ka.  The nonlinear function needs to be a structural parameter, not an eta (n).  The function you are using is unitless, but Ka has units 1/time.  Lastly, you are using 1's (the default) for initial estimates, and that is often a problem.

 

Dan



#4 vetpharma

vetpharma

    Member

  • Members
  • PipPip
  • 14 posts

Posted 22 March 2023 - 05:07 PM

Hi Bernd and Dan,

 

Thanks for your recommendations, I will certainly try that. However, I have a problem with the model running. 

 

The problem is same as when I try to define transit compartment in the model (below). 

The model starts running but after the first iteration for a few seconds it turns back with terrible fitting. I am a bit in doubt in the model building for nonlinear Ka, so I asked you, but the same trend happened for transit compartment and delay function. Do you think that there is a problem or it is normal?

 

 

Transit(){
#deriv(Aa = - Ka * Aa)
transit(Aa, mtt, ntr, max=50, out=-Ka * Aa)
deriv(A1 = Ka * Aa - Cl * C)
dosepoint(Aa, idosevar=AaDose, infdosevar=AaInfDose, infratevar=AaInfRate)
C = A1 / V
error(CEps = 0.875127242290243)
observe(CObs = C * (1 + CEps))
stparm(Ka = tvKa * exp(nKa))
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(mtt = tvmtt)
stparm(ntr = tvntr)
fixef(tvKa = c(, 0.728509724154436, ))
fixef(tvV = c(, 0.0237209174816188, ))
fixef(tvCl = c(, 0.0176748737356305, ))
fixef(tvmtt = c(,2,))
fixef(tvntr = c(,2,))
ranef(diag(nV, nCl, nKa,) = c(0.36942176, 0.10711289, 0.47215645))
}

 

 

Amir



#5 bwendt@certara.com

bwendt@certara.com

    Advanced Member

  • Administrators
  • 282 posts

Posted 23 March 2023 - 02:04 PM

Hi Amir,

 

we can only diagnose fitting problems with a Phoenix project file. If you can't share publicly you may want to send it to support@certara.com

 

Bernd






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users