Incorporating a gene with 3 phenotypes in POPPK

Hi, I am having a gene in my POPPK model which has 3 phenotypes- homozygous (0), heterozygous( 1) and variant/variant (2). I also have Michaelis Menten elimination and the Km equation is (as it is in the software): Km=tvKm x e^(dKmd_2B691X(2B69==1)) X e^(^(dKmd_2B692X(2B69==2)) x e^Km (1) The reason I am confused is that I am calculating the V, Km and Vmax values for each patient, so that I can fix them and then add the metabolite model. So based on eq.1 , heterozygous and variant phenotypes can be estimated (2B69==1) and (2B69==2), but what about the homozygous (0)? I thought that the formula should be like this: Km=tvKm x e^(dKmd_2B691X(2-X))* e^(dKmd_2B692X(X-1)) e^nKm (eq.2) where, homo X(2B69==1) = 0 and X(2B69==2)=0 hetero1 X(2B69==1) = 1 and X(2B69==2)=0 hetero2 X(2B69==1) = 0 and X(2B69==2)=2 Any suggestions? Thanks, Georgia

Hi Georgia, This is similar to any categorical covariate with 3 or more categories: The default in phoenix will give an equation like below here I have a covariate with values: 1,2,3,4. Phoenix nlme will assume that the reference level ( here BBPcat= 1) is equal to tvCL then each other level will have a multiplicative effect with respect to this level e.g. stparm(Cl = tvCl * exp(dCldBBPcat2*(BBPcat==2)) * exp(dCldBBPcat3*(BBPcat==3)) * exp(dCldBBPcat4*(BBPcat==4)) * exp(nCl)) you can also write this equation like this stparm(Cl = exp(log(tvCl) (BBPcat==1)) * exp(dCldBBPcat2(BBPcat==2)) * exp(dCldBBPcat3*(BBPcat==3)) * exp(dCldBBPcat4*(BBPcat==4)) * exp(nCl)) in your case why you want to “freeze” the individual estimate and also estimate a covariate effect on it ? I am not sure what you are trying to do if you want to fix the km to the previously estimated value you can just have it stparm(km= (name of column that has the individual km value)) Please clarify more what you intend to do Samer

Hi Samer, Thanks for your reply. I want to freeze the estimates for the parent drug so that I will add the metabolite model and get the estimates for the metabolite. I am using a two-step approach, I don’t want to estimate at the same time both parent drug and metabolite. Does this make sense? So, for the zero value, the software will assume tvKm if I got it right and while I do my Km calculations for each individual, the homozygous type will be equal to tvKm. However, this is not obvious in the equation provided by the software. Is it ok if my homozygous category is zero or should be 1? Thanks, Georgia

Hi Georgia, I cannot figure out from your very limited code what is your model and what you are trying to do can you please copy paste all of your model code ? What is the structure of your data i.e. you have a column called genotype and then you have three different values ? please include first few lines of your dataset and the coding you are using Doing a two step approach of parent metabolite is a commonly used method. note Phoenix does not really need the variable to have a particular value you can have any value in your dataset how you should interpret the equation below is like this cl = tvcl if bbcat =2 then cl = tvCl * exp(dCldBBPcat2*(BBPcat==2)) if bbcat =3 then cl = tvCl * exp(dCldBBPcat2*(BBPcat==3)) if bbcat =4 then cl = tvCl * exp(dCldBBPcat2*(BBPcat==4)) any value in your dataset other than 2/3/4 will default to your reference =tvcl you don’t need it to be zero stparm(Cl = tvCl * exp(dCldBBPcat2*(BBPcat==2)) * exp(dCldBBPcat3*(BBPcat==3)) * exp(dCldBBPcat4*(BBPcat==4)) * exp(nCl))

Yes, I have you have a column called cyp2B6 and then I have three different values (0, 1, 2). This is my code for the parent drug and the metabolite. test(){ deriv(A1 = - Vmax * C / (Km + C)) deriv(A2=VmaxC/(Km+C)-ClmetCmet) dosepoint(A1) C = A1 / V Cmet=A2/Vmet error(CEps = 1) observe(CObsmet=Cmetexp(CEpsmet)) stparm(V=VI) stparm(Km=KmI) stparm(Vmax=VmaxI) stparm(Clmet=tvClmetexp(nClmet)) stparm(Vmet=tvVmet*exp(nVmet)) covariate(VI) covariate(KmI, VmaxI) fixef(tvClmet = c (, 1500, )) fixef(tvVmet = c (, 40000, )) randef(diag(nClmet, nVmet ) = c(0.04, 0.04)) }

I will also send you the parent’s drug code in a while, as I have borrowed my laptop with the software to a colleague! Thanks, Georgia

ok sounds good you are using the previously calculated parent parameter as covaraites you are also assuming that 100% of your parent transforms into your metabolite if you are in your parent model and you have this equation: stparm(Cl = tvCl * exp(dCldBBPcat2*(BBPcat==2)) * exp(dCldBBPcat3*(BBPcat==3)) * exp(dCldBBPcat4*(BBPcat==4)) * exp(nCl)) when you output the individual clearance you don’t need to worry how to compute it yourself nlme will give you each individual clearance in the table then you merge this value and then the correct clearance for each patient will be used. of course you can compute it and it is simple provided you know the different variables in the equation: ( please copy paste the phoenix code as is there is typos in the equation below Km=tvKm x exp(dKmd_2B691*(2B69==1)) X exp((dKmd_2B692*(2B69==2)) x exp(nkm) so above to get each individual km value ask for it in the table without forgetting to have when covariate set list of covariate used in your model or second option will be like this patient genotype not equal 1 and not equal 2 then tvKm x exp(nkm) genotype = 1 tvKm x exp(dKmd_2B691*(2B69==1)) xexp(nkm) genotype = 2 tvKm x exp(dKmd_2B692*(2B69==2)) xexp(nkm)

Well, it seems that I assume that 100% of my parent drug is transformed into metabolite, but actually I don’t. It is a certain fraction that is transformed, but this fraction is unknown to me for my data. So I am doing the modeling like that and I will either use the 70%, as it has been reported to literature, or I am thinking to incorporate metabolic ratio, but since I do not have linear kinetics I can’t use it and I am thinking over it. Do you have any suggestions? Thanks, georgia

Hi, This is how I wrote my parent’s drug code after your suggestions-is it correct? test(){ deriv(A1 = - Vmax * C / (Km + C)) dosepoint(A1) C = A1 / V error(CEps = 1) observe(CObs = C * exp(CEps)) stparm(V = tvV * (wt/mean(wt))^dVdwt * exp(nV)) stparm(Km = tvKm * exp(dKmd_2B6_91*(_2B6_9==1)) * exp(dKmd_2B6_92*(_2B6_9==2)) * exp(nKm)) patient genotype not equal 1 and not equal 2 then tvKmex(nKm) genotype= 1 tvKmexp(dKmd_2B6_91*(_2B6_9==1)) * exp(nKm)) genotype= 2 tvKmexp(dKmd_2B6_92(_2B6_9==2)) * exp(nKm)) stparm(Vmax = tvVmax * exp(nVmax)) covariate(wt) covariate(_2B6_9()) fixef(tvV = c(, 150000, )) fixef(tvKm = c(, 10.5, )) fixef(tvVmax = c(, 250000, )) fixef(dVdwt(enable=1) = c(, 0.5, )) fixef(dKmd_2B6_91(enable=2) = c(, 0.5, )) fixef(dKmd_2B6_92(enable=2) = c(, 0.5, )) ranef(diag(nV, nKm, nVmax) = c(0.04, 0.04, 0.04)) } Thanks for your help, Georgia

Hi, you code did not validate in phoenix pml make sure to comment out the 3 lines that are explanations see below if you can attach the project I can check if all is fine otherwise you can check a naive pooled fit first ( fast run) to see if estimates make sense. Samer test(){ deriv(A1 = - Vmax * C / (Km + C)) dosepoint(A1) C = A1 / V error(CEps = 1) observe(CObs = C * exp(CEps)) stparm(V = tvV * (wt/mean(wt))^dVdwt * exp(nV)) stparm(Km = tvKm * exp(dKmd_2B6_91*(_2B6_9==1)) * exp(dKmd_2B6_92*(_2B6_9==2)) * exp(nKm)) #patient genotype not equal 1 and not equal 2 then #tvKmex(nKm) #genotype= 1 tvKmexp(dKmd_2B6_91*(_2B6_9==1)) * exp(nKm)) #genotype= 2 tvKmexp(dKmd_2B6_92(_2B6_9==2)) * exp(nKm)) stparm(Vmax = tvVmax * exp(nVmax)) covariate(wt) covariate(_2B6_9()) fixef(tvV = c(, 150000, )) fixef(tvKm = c(, 10.5, )) fixef(tvVmax = c(, 250000, )) fixef(dVdwt(enable=1) = c(, 0.5, )) fixef(dKmd_2B6_91(enable=2) = c(, 0.5, )) fixef(dKmd_2B6_92(enable=2) = c(, 0.5, )) ranef(diag(nV, nKm, nVmax) = c(0.04, 0.04, 0.04)) }

Hi, This is my code test(){ deriv(A1 = - Vmax * C / (Km + C)) deriv(A2=VmaxC/(Km+C)-ClmetCmet) dosepoint(A1) C = A1 / V Cmet=A2/Vmet error(CEps = 1) observe(CObsmet=Cmetexp(CEpsmet)) stparm(V=VI) stparm(Km=KmI) stparm(Vmax=VmaxI) stparm(Clmet=tvClmetexp(nClmet)) stparm(Vmet=tvVmet*exp(nVmet)) covariate(VI) covariate(KmI, VmaxI) fixef(tvClmet = c (, 1500, )) fixef(tvVmet = c (, 40000, )) randef(diag(nClmet, nVmet ) = c(0.04, 0.04)) } and I have the following warnings to resolve: Can map column ‘VI’ in Main or Dosing setup (or extra column definition text) Can map column ‘KmI’ in Main or Dosing setup (or extra column definition text) Can map column ‘VmaxI’ in Main or Dosing setup (or extra column definition text) Optional Main column ‘CObsmet’ is not mapped (I HAVE ALREADY MAPPED & KEEPS SHOWING) No observations are mapped (ALREADY MAPPED) Variable ‘CEpsmet’ undefined

Hi again, Thanks for your help- I resolved the issues and the model run! Georgia

Hi Samer,

I am new to population modeling and covariate analysis.

i am trying to learn basic things of POP modeling. eg. i didnt get the term highlighted in yellow.

“stparm(V = tvV * (wt/mean(wt))^dVdwt * exp(nV))”

if you can comment on this it would be great.

i encounter some more equations like

stparm(Cl = tvCl * (Wt/mean(Wt))^dCldWt * exp(dCldCxxxTreatment1*(CxxxTreatment==1)) * exp(nCl))

If you could share some literature which talks about this code, i would be very delighted.

Kindly do the needful.

Regards,

Shekhar