Back to the Top
All:
I have a compound series characterized by bidirectional Caco-2 efflux
values > 4. Mouse oral exposure data for some of these compounds given
as solution formulations at 10 & 30 mg/kg give both Cmax and AUC ratios
> 4. I hypothesize that the low dose absorption is limited by intestinal
efflux (transporter identity studies point to P-gp) that can be
saturated by the high dose. Assuming that I am correct my question is
how can this be modeled in the Pharsight Phoenix program? The "obvious"
solution would be to have two flows from the dosing compartment; one
with a first order rate constant (Ka) and a parallel but reversed zero
order flow representing the efflux transporter with its associated Vmax
and Km parameters. The Phoenix graphical editor will not allow this and
I don't know how to code this in the Phoenix Model Language. Any
suggestions on how to produce initial estimates would be much
appreciated.
Thanks -
Richard
Back to the Top
The following message was posted to: PharmPK
Richard,
I don't see any reason why this shouldn't be possible; I'm actually on
vacation today but if you can post the code or better yet the PHXproj,
of where you've got to on the Phoenix discussion forum,
www.pharsight.com/extranet
then we can also help you there.
Cheers,
Simon.
Back to the Top
Dear Richard,
Related to Phoenix,
In edit as graphical>click on 'Ka' (flow btw abs and central cmt)>Structure tab>check
'2 way'. You will see Kfwd and Kbak. In 'edit as textual' you can later
define Kbak
in terms of Vmax and Km.
The code will look like this:
test(){
deriv(A1 = - (Cl * C) + (Aa * Ka- A1 * Keff))
Keff= Vmax*Aa/Km+Aa
urinecpt(A0 = (Cl * C))
deriv(Aa = - (Aa * Ka- A1 * Keff))
C = A1 / V
dosepoint(Aa, idosevar = AaDose, infdosevar = AaInfDose, infratevar
= AaInfRate)
error(CEps = 1)
observe(CObs = C + CEps)
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(Ka = tvKa * exp(nKa))
stparm(Vmax = tvVmax * exp(nVmax))
stparm(Km = tvKm * exp(nKm))
fixef(tvV = c(, 1, ))
fixef(tvCl = c(, 1, ))
fixef(tvKa = c(, 1, ))
fixef(tvVmax = c(, 1, ))
fixef(tvKm = c(, 1, ))
ranef(diag(nV, nCl, nKa, nVmax,nKm) = c(1, 1, 1, 1, 1))
}
Few comments though:
1. This kind of a model, seems unrealistic where the concentrations are
going back
from systemic circulation to the dose compartment. You might want to include a
"gut lumen" as a hypothetical compartment between the dose and central.
Parameter
identifiability might be an issue here.
2. How do the conc-time profiles look after i.v doses?
3. The increase in Cmax and AUC ratio does not seem to be too drastic (4
fold vs an
expected 3 fold between 10 and 30 mg/kg dose), not sure if its non-linear.
Regards
Mukul Minocha, PhD
Research Scientist
Center for Translational Medicine|School of Pharmacy
University of Maryland, Baltimore
Back to the Top
The following message was posted to: PharmPK
Dear Richard,
As you have mentioned being unaccustomed to using PML, I have made
additional comments to help describe some of the code proposed by Mukul.
First, a couple tips. Any graphical or base settings can, at any time,
be 'converted' into textual mode for further editing using PML. While
'coding' may seem daunting, you have the benefit of laying out the
framework of what you'd like graphically before you write a single line
of code. This also makes it very easy to "self-teaching" how do things
with PML that you have done before graphically. For example, let us say
you would like to figure out to write code for two route of absorption
(perhaps studying SC and oral formulations). You can easily create your
model graphically with one route of administration and then look at the
textual code, go back and add a second absorption compartment and see
how the code changes. In combination with the PML manual and examples,
this can get you up and running very quickly, and also makes it easier
for others to help diagnose issues as we can see what you're writing.
This technique DOES come with a caviet though - any changes you make
graphically always propogate if you switch to edit as textual, however,
any textual changes you make WILL BE LOST if you switch back to edit
graphically. I've found having a dummy project if I want to experiment
with how graphical items would be coded is helpful.
Now, on to the code:
#first, comment your code! Any statements with a '#' before them are not
#run so you can both edit out chunks of code temporarily or leave
#yourself notes for why you were doing something.
#Commenting gives you an opportunity to remind yourself why you had
#everything set as is if you go back later to look at a model. For
#example you could write:
#
Fixef(tvCl = c(0, 1.2,) # initial estimate obtained from NCA
#Since my comment '#' is after the code the code itself will still run,
#but I can keep my notes right there
#
##
# all 'deriv' statements automatically imply that this is being
# differentiated with respect to time,
#notice, the deriv statement is in terms of amount (considering you're
#giving a dose as an amount, as well as when a compound 'moves' between
#2 compartments - or in this case is pumped back into the lumen, you
#need to parameterize it in terms of amount)
#
# You can easily convert this amount to concentration by dividing by
# V(for the compartment it is going INTO)
#as you see in the line below the deriv
#
#A1 is being set to be the amount in the central compartment
deriv(A1 = - (Cl * C) + (Aa * Ka- A1 * Keff))
C = A1 / V
#Keff is a parameter you will be calculating, and will be defined in
#terms of fixed (and possibly random) effects
#to estimate the Keff you must estimate the Vmax and Km for your efflux
#- these are defined below and I will explain more there
Keff= Vmax*Aa/Km+Aa
# If you have urine data
urinecpt(A0 = (Cl * C))
# Aa is the amount in the lumen being absorbed
deriv(Aa = - (Aa * Ka- A1 * Keff))
#I would suggest reading about dosepoint - it looks challenging but it
#is simply telling phoenix what to look for in your dosing sheet and/or
#your settings
dosepoint(Aa, idosevar = AaDose, infdosevar = AaInfDose, infratevar
AaInfRate)
#Here you can set your residual error in terms of standard deviation
error(CEps = 1)
# use observe to calculate the actual concentrations with the residual
# error component estimated as well
observe(CObs = C + CEps)
#the stparm statement is for when you are defining a parameter in your
#model - this gives you the opportunity to put both the fixed and random
#effect with whatever structure you'd like
#
#for example, V is in terms of the fixed effect typical value for Volume
#* the exponentiated random effect for volume)
#This is so you can calculate volume for each individual.
stparm(V = tvV * exp(nV))
stparm(Cl = tvCl * exp(nCl))
stparm(Ka = tvKa * exp(nKa))
stparm(Vmax = tvVmax * exp(nVmax))
stparm(Km = tvKm * exp(nKm))
#Here is where you define your fixed effects that you will be applying
#to stparm
# similar to the regular interface c(lower bound, initial estimate,
# upper bound)
# so in this case mukul has not specified any bounds
# if you want to fix a parameter you use (freeze)
# such as fixef(tvV (freeze)) = c(,50,))
fixef(tvV = c(, 1, ))
fixef(tvCl = c(, 1, ))
fixef(tvKa = c(, 1, ))
fixef(tvVmax = c(, 1, ))
fixef(tvKm = c(, 1, ))
#Here is where you define your random effects
ranef(diag(nV, nCl, nKa, nVmax,nKm) = c(1, 1, 1, 1, 1)) }
Good luck! Look through the PML guide and with some extra experimenting
you'll be coding like a pro in no time.
Devin Pastoor
Clinical Research Specialist
Center for Translational Medicine|School of Pharmacy University of
Maryland, Baltimore
Back to the Top
The following message was posted to: PharmPK
Richard, to confirm yes, you CAN do this graphically in Phoenix; When
setting it up, add a flow from Aa to A1, then a second one from A1 to
Aa. Make the second one saturable.
For initial estimates, fit a high dose profile and a low dose
profile.
Ka is the Ka from the high dose profile. Set the Km around the Cmax for
the low dose. You'll have to take few guesses at the Vm. Try freezing
the other parameters and fitting the model with naive pooled engine.
http://www.pharsight.com/extranet/images/fbfiles/images/sat.jpg
Simon
Please have a look at the full discussion after you have logged in on
the site.
URL:
http://www.pharsight.com/extranet/index.php?option=com_kunena&Itemid3D55&func=view&catid=40&id=1210#1715
Back to the Top
The following message was posted to: PharmPK
Simon:
Yes, I can use the graphic editor to construct the model and, yes, it
works on my initial data set. I first tried an averaged data set
(average of individual plasma concentrations) including both doses as a
population model. This helped with the initial estimates. Under these
conditions the initial estimate tool worked well. I got convergence and
went for the full individuals data set (3 individuals/dose) and this
also converged so I think that the model is working. I did not get a lot
of fit improvement relative to the one compartment first order model.
The FO 1C model gave -2LL of 249.24 with AIC of 263.2 while the Ka+MM
input model gave -2LL of 239.6 with AIC of 261.6. The fitted curves from
the Ka+MM model do look better and I am confident that this is a better
model.
Non-linear PK is a very strange world. For example, the AUC ratio
(estimated using predicted values from the NLME model run in the NCA
extravas routine because I cannot come up with a secondary parameter
equation) is time interval dependent. The AUClast ratio for the raw data
by NCA was 10.1 while the AUC(0-8) corresponding value for Ka+MM model
data is 7.91 so I consider them in agreement but this changes as you
extend the partial area time interval.
Anyway, I am very, very happy. Thank you so much. Enjoy the rest of your
vacation.
Richard
Back to the Top
Richard,
I'm glad to hear you got your model working.
To have a neater workflow, you could try calculating AUC directly.
If you want AUC_t1 to t2 you can add an ODE to the model and capture the
value at t2 in a table statement; e.g.
#deriv(AUCt = (t>t1)*(tderiv(AUCt = (t>0)*(t<999)*C)
Best regards,
Simon.
Want to post a follow-up message on this topic?
If this link does not work with your browser send a follow-up message to PharmPK@lists.ucdenver.edu with "Phoenix model for efflux limited oral absorption" as the subject |
Copyright 1995-2014 David W. A. Bourne (david@boomer.org)