Jump to content


Model code for immediate/extended release product


  • Please log in to reply
5 replies to this topic

#1 Guest_nathan.teuscher@reatapharma.com_*

Guest_nathan.teuscher@reatapharma.com_*
  • Guests

Posted 28 February 2013 - 02:27 PM

Hopefully someone can provide me a little help. I am building a population PK model to describe the PK of a drug after administration of a tablet that has an immediate release coating and an extended release core. Thus, I need to have 2 different Ka values, a fractional bioavailability, and a lag time on one of the absorption parameters. I have tried a few things and not been successful ... Here's my current code which employs 2 different dosing "compartments" (Aa and Aa2), and associated Ka parameters (Kafast and Kaslow). Unfortunately, the model doesn't seem to work properly. Any suggestions?

 

test(){

    deriv(Aa = - Kaslow * Aa)

    deriv(Aa2 = - Kafast * Aa2)

    deriv(A1 = Kaslow * Aa + Kafast * Aa2 - Cl * C)

    dosepoint(Aa, tlag = Tlag, bioavail=(1-F))

    dosepoint(Aa2, bioavail=F)

    C = A1 / V

    error(CEps = 1)

    observe(CObs = C * (1 + CEps))

    stparm(Kaslow = tvKaslow * exp(nKaslow))

    stparm(Kafast = tvKafast * exp(nKafast))

    stparm(F = tvF * exp(nF))

    stparm(V = tvV * exp(nV))

    stparm(Cl = tvCl * exp(nCl))

    stparm(Tlag = tvTlag * exp(nTlag))

    fixef(tvKafast = c(, 1.1, ))

    fixef(tvKaslow = c(, 0.4, ))

    fixef(tvV = c(, 1827, ))

    fixef(tvCl = c(, 564, ))

    fixef(tvTlag = c(, 2.89, ))

    fixef(tvF = c(0,0.4,0.5))

    ranef(diag(nV, nCl, nKafast, nKaslow, nF, nTlag) = c(1, 1, 1, 1, 1, 1))

}



#2 Emily Colby

Emily Colby

    Advanced Member

  • Members
  • PipPipPip
  • 88 posts

Posted 28 February 2013 - 02:41 PM

Nathan,

 

Take a look at this example. It has sublingual dosing, so there are two dosing compartments (one describing absorption under tongue and the other describing absorption in gut). The compartment for under the tongue is like the immediate release, and it has a fractional bioavailability. The compartment for the gut is like an extended release, it has a lag time, and the bioavailability is the rest of what wasn't absorbed under the tongue. Note that the same amount is applied to both compartments. It was built graphically, but you can switch to text if you like. Let me know if that helps.

 

Best regards,

Emily [file name=PKModel2abs.phxproj size=1767601]http://pharsight.com/extranet/media/kunena/attachments/legacy/files/PKModel2abs.phxproj[/file]

Attached Files



#3 Emily Colby

Emily Colby

    Advanced Member

  • Members
  • PipPipPip
  • 88 posts

Posted 28 February 2013 - 02:43 PM

Here is the model text:

 

test(){

    deriv(A1 = - (Cl * C) + (Aa2 * Ka2) + (Aa1 * Ka1))

    urinecpt(A0 = (Cl * C))

    deriv(Aa2 = - (Aa2 * Ka2))

    deriv(Aa1 = - (Aa1 * Ka1))

    C = A1 / V

    dosepoint(Aa2, tlag = (Tlag), bioavail = (1-Frct), idosevar = Aa2Dose, infdosevar = Aa2InfDose, infratevar = Aa2InfRate)

    error(CEps = 0.1)

    observe(CObs = C * (1 + CEps))

    dosepoint(Aa1, bioavail = (Frct), idosevar = Aa1Dose, infdosevar = Aa1InfDose, infratevar = Aa1InfRate)

    stparm(V = (tvV) * exp(nV))

    stparm(Cl = (tvCl) * exp(nCl))

    stparm(Ka2 = (tvKa2))

    stparm(Ka1 = (tvKa1) * exp(nKa1))

    stparm(Tlag = (tvTlag))

    stparm(Frct = (tvFrct))

    fixef(tvV = c(, 20.6, ))

    fixef(tvCl = c(, 1.83, ))

    fixef(tvKa2 = c(, 1.075, ))

    fixef(tvKa1 = c(, 7.62, ))

    fixef(tvTlag = c(, 2.3, ))

    fixef(tvFrct = c(, 0.515, ))

    ranef(diag(nV, nCl, nKa1) = c(0.01, 0.01, 0.01))

}



#4 Emily Colby

Emily Colby

    Advanced Member

  • Members
  • PipPipPip
  • 88 posts

Posted 28 February 2013 - 02:44 PM

It looks like the code is similar, so you probably just need to make sure you're applying the amount to both compartments. You may need to duplicate your AMT column so you have two columns to apply.



#5 Guest_nathan.teuscher@reatapharma.com_*

Guest_nathan.teuscher@reatapharma.com_*
  • Guests

Posted 28 February 2013 - 04:01 PM

Emily,

 

Thank you for the help. I'm not sure what was wrong, but when I rebuilt the model using the example you provided, it worked. Thanks!

 

Nathan



#6 Jason Chittenden

Jason Chittenden

    Member

  • Members
  • PipPip
  • 17 posts

Posted 28 February 2013 - 10:13 PM

I followed the thread and it looks like you got this model working. My thoughts when looking at it were that it should work. I do see a potential problem with the distribution on F. If you really want F to be bound between zero and one (0,1) write it like this:

 

stparm(F = ilogit(tvF + nF))

 

tvF=0 correspsonds to F=0.5

 

The way that you have it written, F is lognormal and the fat tail on that can cause F>1. If you don't include a random effect on F then you can bound tvF as you did and there won't be a problem.

 

Cheers,

-Jason






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users