Jump to content


Photo

PBPK model in NLME

test

  • Please log in to reply
16 replies to this topic

#1 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 03 September 2014 - 12:22 AM

HI folks,
if I'm coding a PBPK model with mostly fixed parameter values do these fixed parameter values still require a stparm and fixef statement? I've included a couple of the differentials (for the lung) and then a few of the values. will NLME perform all the calculations and fixe the values like Llung and Vlung as they are defined below or do they require to be defined as structural parameters with a "Freeze" value in the fixef statment?

When i've done population modeling I've always defined the values as structural parameters and frozen parameters at an estimate if I didn't want them fitted, but not sure its necessary per PML. I want to see if the NLME engine can be used as an ODE solver and simultaneously estimate a few parameters by naive pool, sort of like ADAPT is used in the literature....why learn another platform?

Thanks
Elliot


e.g.
test(){
deriv(Alung = (CO*(1-hct)* Cven)- (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung * (Qlung-Llung)))
deriv(Alung_isf = (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung_isf * Llung*sigma_isf))

Clung = Alung / Vlung
Clung_isf = Alung_isf / Vlung_isf


#organ total volumes
Vlung_total=153.62
#hematocrit
hct=0.41

#Fraction vascular volume
Fvvlung=0.262


#Fraction interstitial compartment
Fviclung=0.188
#Plasma Volume
PV=3.4*45 # 3.4# kg * 45 mL/kg
Vlung=Vlung_total*(1-hct)*Fvvlung


#Interstitial Volume
Vlung_isf=Vlung_total*Fviclung

Vlymph=13.74

sigma_v_lung=0.95

#Blood flow
CO=22004 #
#Organ Blood flow fraction of CO
QBlung=1

#plasma flow to organs
Qlung=(1-hct)*CO # SINCE Qlung is a parameter in the model does it need to be defined as a structural model? and how does that work when its defined as an expression with other defined parameters with fixed values in the model?

#Lymph flow
Llung=(QBlung*CO)/L #44 mL/hr

stparm(L=tvL)
stparm(sigma_isf=tvsigma_isf)


fixef(tvL=c(100, 500, 700))
fixef(tvsigma_isf=c(0.01, 0.2, 1))


}
  • Thomasgaks, AlexKawn, RonaldAxon and 2 others like this

#2 serge guzy

serge guzy

    Advanced Member

  • Members
  • PipPipPip
  • 485 posts

Posted 03 September 2014 - 04:38 AM

Vlung and Vlung_isf are used before they are defined.

When you use straight equations, the order is important.

Best

Serge



#3 serge guzy

serge guzy

    Advanced Member

  • Members
  • PipPipPip
  • 485 posts

Posted 03 September 2014 - 04:39 AM

variable ceven is not defined



#4 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 03 September 2014 - 03:35 PM

I had only included bits and pieces of the code just to ask if they needed to be entered as stparm statements. Here is a more complete version. I'm not sure if its not working cause I don't have the equations in the correct order of definition. or if I just have an error in the mass balance and thats why its not running.

 

any guidance on how to arrange the equations in PML is appreciated. The goal is (1) to obtain estimates for the 4 parameters in the fixef statements and (2) to be able to precision for these estimates...

and then use the Phoenix interface to facilitate a sensitivity analysis as I can see it being much better for audit trail purposes keeping track of whats being altered in Phoenix vs. something like ADAPT.

 

Test(){

deriv(Alung = (CO*(1-hct)* Cven)- (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung * (Qlung-Llung)))

    deriv(Aart = (Clung * (Qlung-Llung))- (Qkidney * Cart)- (Qskin * Cart)- (Qother * Cart))

    deriv(Askin = - (Cskin * Qskin-Lskin) + (Qskin * Cart)- (Cskin * Lskin*(1-sigma_v_skin)*sigma_scale))

    deriv(Akidney = - (Ckidney * Qkidney-Lkidney) + (Qkidney * Cart)- (Ckidney * Lkidney*(1-sigma_v_kidney)*sigma_scale)- (FGFR*GFR * Ckidney))

    deriv(Aother = - (Cother * Qother-Lother) + (Qother * Cart)- (Cother * Lother(1-sigma_v_other)*sigma_scale))

    deriv(Alymph = (Clung_isf * Llung* sigma_isf) + (Cother_isf * Lother*sigma_isf) + (Cskin_isf * Lskin*sigma_isf) + (Ckidney_isf * Lkidney*sigma_isf)- (Alymph * Llymph))

    deriv(Aven = - (CO*(1-hct)* Cven) + (Ckidney * Qkidney-Lkidney) + (Cskin * Qskin-Lskin) + (Cother * Qother-Lother) + (Clymph * Llymph))

    deriv(Alung_isf = (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung_isf * Llung*sigma_isf))

    deriv(Aother_isf = (Cother_isf * Lother(1-sigma_v_other)*sigma_scale) - (Cother_isf * Lother*sigma_isf))

    deriv(Askin_isf = - (Cskin_isf * Lskin*sigma_isf) + (Cskin * Lskin*(1-sigma_v_skin)*sigma_scale))

    deriv(Akidney_isf = - (Ckidney_isf * Lkidney*sigma_isf) + (Ckidney * Lkidney*(1-sigma_v_kidney)*sigma_scale))

    urinecpt(A0 = (FGFR*GFR * Ckidney))

    Clung = Alung / Vlung

    Cart = Aart / Vart

    Cskin = Askin / Vskin

    Ckidney = Akidney / Vkidney

    Cother = Aother / Vother

    Clymph = Alymph / Vlymph

    Cven = Aven / Vven

 

    dosepoint(Aven, idosevar = AvenDose, infdosevar = AvenInfDose, infratevar = AvenInfRate)

    error(CEps = 0.50)

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

    Clung_isf = Alung_isf / Vlung_isf

    Cother_isf = Aother_isf / Vother_isf

    Cskin_isf = Askin_isf / Vskin_isf

    Ckidney_isf = Akidney_isf / Vkidney_isf

 

#organ total volumes

Vlung_total=153.62

Vskin_total=673.38

Vkidney_total=27.25

Vother_total=8552.35

 

#hematocrit

stparm(hct=0.41)

 

#Fraction vascular volume

Fvvlung=0.262

Fvvskin=0.019

Fvvkidney=0.105

Fvvother=0.11 #average of all other organs

 

#Fraction interstitial compartment

Fviclung=0.188

Fvicskin=0.302

Fvickidney=0.2

Fvicother=0.134

 

stparm(

#Plasma Volume

PV=3.4*45 # 3.4# kg * 45 mL/kg

Vlung=Vlung_total*(1-hct)*Fvvlung

Vskin=Vskin_total*(1-hct)*Fvvskin

Vkidney=Vkidney_total* (1-hct)*Fvvkidney

Vother=Vother_total*(1-hct)*Fvvother

Vven=(2/3)*(PV-Vlung+Vskin+Vkidney+Vother)

Vart=(1/3)*(PV-Vlung+Vskin+Vkidney+Vother)

 

 

 

#Interstitial Volume

Vlung_isf=Vlung_total*Fviclung

Vskin_isf=Vskin_total*Fvicskin

Vkidney_isf=Vkidney_total*Fvickidney

Vother_isf=Vother_total*Fvicother

 

Vlymph=13.74

 

sigma_v_lung=0.95

sigma_v_skin=0.95

sigma_v_kidney=0.9

sigma_v_other=0.85

)

 

#Blood flow

CO=22004 #ml/hr

#Organ Blood flow fraction of CO

QBlung=1

QBskin=0.11

QBkidney=0.15

QBother=1-(QBskin+QBkidney)

 

 

stparm(

#plasma flow to organs

        Qlung=(1-hct)*CO

        Qskin=QBskin*(Qlung-Llung)

        Qkidney=QBkidney*(Qlung-Llung)

        Qother=QBother*(Qlung-Llung)

 

#Lymph flow

 

 

        Llung=(QBlung*CO)/L

        Lskin=(QBskin*(CO-Llung))/L

        Lkidney=(QBkidney*(CO-Llung))/L

        Lother=(QBother*(CO-Llung))/L

        Llymph=Llung+Lskin+Lkidney+Lother

)

 

 

 

stparm(GFR=120)# ml/hr

 

stparm(L=tvL)

stparm(sigma_isf=tvsigma_isf)

stparm(FGFR=tvFGFR)

stparm(sigma_scale=tvsigma_scale)

 

fixef(tvL=c(100, 500, 700))

fixef(tvsigma_isf=c(0.01, 0.2, 1))

fixef(tvFGFR = c(0.0001, 0.001,1 ))

fixef(tvsigma_scale=c(0.01, 0.9, 1.01))

 

 

 

 

}



#5 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 03 September 2014 - 03:35 PM

I had only included bits and pieces of the code just to ask if they needed to be entered as stparm statements. Here is a more complete version. I'm not sure if its not working cause I don't have the equations in the correct order of definition. or if I just have an error in the mass balance and thats why its not running.

 

any guidance on how to arrange the equations in PML is appreciated. The goal is (1) to obtain estimates for the 4 parameters in the fixef statements and (2) to be able to precision for these estimates...

and then use the Phoenix interface to facilitate a sensitivity analysis as I can see it being much better for audit trail purposes keeping track of whats being altered in Phoenix vs. something like ADAPT.

 

Test(){

deriv(Alung = (CO*(1-hct)* Cven)- (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung * (Qlung-Llung)))

    deriv(Aart = (Clung * (Qlung-Llung))- (Qkidney * Cart)- (Qskin * Cart)- (Qother * Cart))

    deriv(Askin = - (Cskin * Qskin-Lskin) + (Qskin * Cart)- (Cskin * Lskin*(1-sigma_v_skin)*sigma_scale))

    deriv(Akidney = - (Ckidney * Qkidney-Lkidney) + (Qkidney * Cart)- (Ckidney * Lkidney*(1-sigma_v_kidney)*sigma_scale)- (FGFR*GFR * Ckidney))

    deriv(Aother = - (Cother * Qother-Lother) + (Qother * Cart)- (Cother * Lother(1-sigma_v_other)*sigma_scale))

    deriv(Alymph = (Clung_isf * Llung* sigma_isf) + (Cother_isf * Lother*sigma_isf) + (Cskin_isf * Lskin*sigma_isf) + (Ckidney_isf * Lkidney*sigma_isf)- (Alymph * Llymph))

    deriv(Aven = - (CO*(1-hct)* Cven) + (Ckidney * Qkidney-Lkidney) + (Cskin * Qskin-Lskin) + (Cother * Qother-Lother) + (Clymph * Llymph))

    deriv(Alung_isf = (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung_isf * Llung*sigma_isf))

    deriv(Aother_isf = (Cother_isf * Lother(1-sigma_v_other)*sigma_scale) - (Cother_isf * Lother*sigma_isf))

    deriv(Askin_isf = - (Cskin_isf * Lskin*sigma_isf) + (Cskin * Lskin*(1-sigma_v_skin)*sigma_scale))

    deriv(Akidney_isf = - (Ckidney_isf * Lkidney*sigma_isf) + (Ckidney * Lkidney*(1-sigma_v_kidney)*sigma_scale))

    urinecpt(A0 = (FGFR*GFR * Ckidney))

    Clung = Alung / Vlung

    Cart = Aart / Vart

    Cskin = Askin / Vskin

    Ckidney = Akidney / Vkidney

    Cother = Aother / Vother

    Clymph = Alymph / Vlymph

    Cven = Aven / Vven

 

    dosepoint(Aven, idosevar = AvenDose, infdosevar = AvenInfDose, infratevar = AvenInfRate)

    error(CEps = 0.50)

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

    Clung_isf = Alung_isf / Vlung_isf

    Cother_isf = Aother_isf / Vother_isf

    Cskin_isf = Askin_isf / Vskin_isf

    Ckidney_isf = Akidney_isf / Vkidney_isf

 

#organ total volumes

Vlung_total=153.62

Vskin_total=673.38

Vkidney_total=27.25

Vother_total=8552.35

 

#hematocrit

stparm(hct=0.41)

 

#Fraction vascular volume

Fvvlung=0.262

Fvvskin=0.019

Fvvkidney=0.105

Fvvother=0.11 #average of all other organs

 

#Fraction interstitial compartment

Fviclung=0.188

Fvicskin=0.302

Fvickidney=0.2

Fvicother=0.134

 

stparm(

#Plasma Volume

PV=3.4*45 # 3.4# kg * 45 mL/kg

Vlung=Vlung_total*(1-hct)*Fvvlung

Vskin=Vskin_total*(1-hct)*Fvvskin

Vkidney=Vkidney_total* (1-hct)*Fvvkidney

Vother=Vother_total*(1-hct)*Fvvother

Vven=(2/3)*(PV-Vlung+Vskin+Vkidney+Vother)

Vart=(1/3)*(PV-Vlung+Vskin+Vkidney+Vother)

 

 

 

#Interstitial Volume

Vlung_isf=Vlung_total*Fviclung

Vskin_isf=Vskin_total*Fvicskin

Vkidney_isf=Vkidney_total*Fvickidney

Vother_isf=Vother_total*Fvicother

 

Vlymph=13.74

 

sigma_v_lung=0.95

sigma_v_skin=0.95

sigma_v_kidney=0.9

sigma_v_other=0.85

)

 

#Blood flow

CO=22004 #ml/hr

#Organ Blood flow fraction of CO

QBlung=1

QBskin=0.11

QBkidney=0.15

QBother=1-(QBskin+QBkidney)

 

 

stparm(

#plasma flow to organs

        Qlung=(1-hct)*CO

        Qskin=QBskin*(Qlung-Llung)

        Qkidney=QBkidney*(Qlung-Llung)

        Qother=QBother*(Qlung-Llung)

 

#Lymph flow

 

 

        Llung=(QBlung*CO)/L

        Lskin=(QBskin*(CO-Llung))/L

        Lkidney=(QBkidney*(CO-Llung))/L

        Lother=(QBother*(CO-Llung))/L

        Llymph=Llung+Lskin+Lkidney+Lother

)

 

 

 

stparm(GFR=120)# ml/hr

 

stparm(L=tvL)

stparm(sigma_isf=tvsigma_isf)

stparm(FGFR=tvFGFR)

stparm(sigma_scale=tvsigma_scale)

 

fixef(tvL=c(100, 500, 700))

fixef(tvsigma_isf=c(0.01, 0.2, 1))

fixef(tvFGFR = c(0.0001, 0.001,1 ))

fixef(tvsigma_scale=c(0.01, 0.9, 1.01))

 

 

 

 

}



#6 serge guzy

serge guzy

    Advanced Member

  • Members
  • PipPipPip
  • 485 posts

Posted 03 September 2014 - 03:45 PM

The code is correct. not sure how I can help without getting the data. You should try first simulating responses to see if your estimates make sense.

Best

Serge



#7 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 03 September 2014 - 04:02 PM

with pleasure I can share it....

I did a more complex model in berkley madonna with these values (based on physiological parameters) and it works beautifully.

for my initial test I condensed most of the organs into an other compartment to simplify stuff as I've never used Phoenix for this type of analysis...

any help is appreciated. [file name=trial_PBPK_model_in_PML.phxproj size=392555]http://www.pharsight.com/extranet/media/kunena/attachments/legacy/files/trial_PBPK_model_in_PML.phxproj[/file]



#8 serge guzy

serge guzy

    Advanced Member

  • Members
  • PipPipPip
  • 485 posts

Posted 04 September 2014 - 02:57 PM

You had * missing and I had to go to my colleague Mike to get that one. However even with that, the initial estimates you have do not give goog fit and none of the parameters are sensitive to the observed response.

not sure what does that mean.

The modified code is here. Click on initial estimates and you will see Ceven not predicting well and not sure what parameter changes that curve.

best

Serge

 

 

Test(){

deriv(Alung = (CO*(1-hct)* Cven)- (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung * (Qlung-Llung)))

    deriv(Aart = (Clung * (Qlung-Llung))- (Qkidney * Cart)- (Qskin * Cart)- (Qother * Cart))

    deriv(Askin = - (Cskin * Qskin-Lskin) + (Qskin * Cart)- (Cskin * Lskin*(1-sigma_v_skin)*sigma_scale))

    deriv(Akidney = - (Ckidney * Qkidney-Lkidney) + (Qkidney * Cart)- (Ckidney * Lkidney*(1-sigma_v_kidney)*sigma_scale)- (FGFR*GFR * Ckidney))

    deriv(Aother = - (Cother * Qother-Lother) + (Qother * Cart)- (Cother * Lother*(1-sigma_v_other)*sigma_scale))

    deriv(Alymph = (Clung_isf * Llung* sigma_isf) + (Cother_isf * Lother*sigma_isf) + (Cskin_isf * Lskin*sigma_isf) + (Ckidney_isf * Lkidney*sigma_isf)- (Alymph * Llymph))

    deriv(Aven = - (CO*(1-hct)* Cven) + (Ckidney * Qkidney-Lkidney) + (Cskin * Qskin-Lskin) + (Cother * Qother-Lother) + (Clymph * Llymph))

    deriv(Alung_isf = (Clung * Llung*(1-sigma_v_lung)*sigma_scale)- (Clung_isf * Llung*sigma_isf))

    deriv(Aother_isf = (Cother_isf * Lother*(1-sigma_v_other)*sigma_scale) - (Cother_isf * Lother*sigma_isf))

    deriv(Askin_isf = - (Cskin_isf * Lskin*sigma_isf) + (Cskin * Lskin*(1-sigma_v_skin)*sigma_scale))

    deriv(Akidney_isf = - (Ckidney_isf * Lkidney*sigma_isf) + (Ckidney * Lkidney*(1-sigma_v_kidney)*sigma_scale))

    urinecpt(A0 = (FGFR*GFR * Ckidney))

    Clung = Alung / Vlung

    Cart = Aart / Vart

    Cskin = Askin / Vskin

    Ckidney = Akidney / Vkidney

    Cother = Aother / Vother

    Clymph = Alymph / Vlymph

    Cven = Aven / Vven

 

    dosepoint(Aven, idosevar = AvenDose, infdosevar = AvenInfDose, infratevar = AvenInfRate)

    error(CEps = 0.50)

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

    Clung_isf = Alung_isf / Vlung_isf

    Cother_isf = Aother_isf / Vother_isf

    Cskin_isf = Askin_isf / Vskin_isf

    Ckidney_isf = Akidney_isf / Vkidney_isf

 

#organ total volumes

Vlung_total=153.62

Vskin_total=673.38

Vkidney_total=27.25

Vother_total=8552.35

 

#hematocrit

stparm(hct=0.41)

 

#Fraction vascular volume

Fvvlung=0.262

Fvvskin=0.019

Fvvkidney=0.105

Fvvother=0.11 #average of all other organs

 

#Fraction interstitial compartment

Fviclung=0.188

Fvicskin=0.302

Fvickidney=0.2

Fvicother=0.134

 

stparm(

#Plasma Volume

PV=3.4*45 # 3.4# kg * 45 mL/kg

Vlung=Vlung_total*(1-hct)*Fvvlung

Vskin=Vskin_total*(1-hct)*Fvvskin

Vkidney=Vkidney_total* (1-hct)*Fvvkidney

Vother=Vother_total*(1-hct)*Fvvother

Vven=(2/3)*(PV-Vlung+Vskin+Vkidney+Vother)

Vart=(1/3)*(PV-Vlung+Vskin+Vkidney+Vother)

 

 

 

#Interstitial Volume

Vlung_isf=Vlung_total*Fviclung

Vskin_isf=Vskin_total*Fvicskin

Vkidney_isf=Vkidney_total*Fvickidney

Vother_isf=Vother_total*Fvicother

 

Vlymph=13.74

 

sigma_v_lung=0.95

sigma_v_skin=0.95

sigma_v_kidney=0.9

sigma_v_other=0.85

)

 

#Blood flow

CO=22004 #ml/hr

#Organ Blood flow fraction of CO

QBlung=1

QBskin=0.11

QBkidney=0.15

QBother=1-(QBskin+QBkidney)

 

 

stparm(

#plasma flow to organs

        Qlung=(1-hct)*CO

        Qskin=QBskin*(Qlung-Llung)

        Qkidney=QBkidney*(Qlung-Llung)

        Qother=QBother*(Qlung-Llung)

 

#Lymph flow

 

 

        Llung=(QBlung*CO)/L

        Lskin=(QBskin*(CO-Llung))/L

        Lkidney=(QBkidney*(CO-Llung))/L

        Lother=(QBother*(CO-Llung))/L

        Llymph=Llung+Lskin+Lkidney+Lother

)

 

 

 

stparm(GFR=120)# ml/hr

 

stparm(L=tvL+nvL)

stparm(sigma_isf=tvsigma_isf)

stparm(FGFR=tvFGFR)

stparm(sigma_scale=tvsigma_scale)

 

fixef(tvL=c(100, 500, 700))

fixef(tvsigma_isf=c(0.01, 0.2, 1))

fixef(tvFGFR = c(0.0001, 0.001,1 ))

fixef(tvsigma_scale=c(0.01, 0.9, 1.01))

 

 

ranef(diag(nvL)=c(0.1))

 

 

}



#9 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 04 September 2014 - 04:16 PM

thanks for looking at it.

I had reduced the overall model by collapsing a number of compartments into "other". i hadn't run this collapsed model in Berkley madonna but my full model works well and is sensitive to many of the parameters.

 

If you can clarify under which conditions a parameter is included in a stparm statement.

and would I only include a fixef statement if I want that particular parameter estimated?

Thanks

elliot



#10 serge guzy

serge guzy

    Advanced Member

  • Members
  • PipPipPip
  • 485 posts

Posted 04 September 2014 - 04:28 PM

Can you send me your updated model.

The previous one was not able to go back to a curve matching the observations with the parameters you were using. Not sure why but it is difficult for me to check the accuracy of the model parameters and the whole model itself.

best

Serge



#11 serge guzy

serge guzy

    Advanced Member

  • Members
  • PipPipPip
  • 485 posts

Posted 04 September 2014 - 04:39 PM

The problem is not in the code. It is that Vven is fixed and the initial estimates you are using show a misfit with the observations. All model parameters you are using do not succeed to explain the data. If Vven is an estimated parameters rather than computed, I believe you would be able to fit.

best

Serge



#12 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 05 September 2014 - 05:29 PM

Hi Serge,

I included the full PBPK model in what I hope is properly translated to PML parlance (form berkley madonna).

As I said this model runs very smoothly in BM with sensitivty on many of the parameters.

however it won't even allow me to view initial estimates in NLME which in my past experience suggests I have an issue somewhere in the code, but shouldn't I at least be able to see my observed data?

 

Just as a note we want to restrict as many of the physiological parameters as possible to their fixed values. I have only set parameters which I want to test as sensitive and/or estimated. Volumes and flow rates of compartments need to be fixed as these are confined physiolgic values.

Thanks

Elliot [file name=PBPKIV.phxproj size=278356]http://www.pharsight.com/extranet/media/kunena/attachments/legacy/files/PBPKIV.phxproj[/file]



#13 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 06 September 2014 - 12:39 AM

Just as a note in the code, I had a typo on the dosepoint...it should be "Aven_pla" not Aven....

the model does run as a naive pooled. looks like a poor fit. not sure why. it literally is superimposed in Berkley Madonna. Of course I'm using estimation in NLME whereas in BM its simply simulation. But I did want to let you know it does at least run which means the code doesn't have any major mass balance issues.

thanks for the help.

Elliot



#14 serge guzy

serge guzy

    Advanced Member

  • Members
  • PipPipPip
  • 485 posts

Posted 06 September 2014 - 08:02 AM

Dear Elliot

FGFR is defined before it is used.

You just put it at the beginning of the code

FGFR=whatever value.

The reason is that you use it as an equation and therefore its value must be first defined and then use in a subsequent equation.

I looked at your model and the prediction before fit show an oscillatory profile with 3 peaks.

Does that make sense?

I used population approach checked and id with patient was mapped.

It looks strange to me.

Best

Serge



#15 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 06 September 2014 - 12:58 PM

Hi Serge,

I'll change the order up.

This is a standard 2 comp IV bolus. it should not be oscilatory.

It should be a smooth line as it was in BM unless I'm not translating the code properly.

I'm attaching the figure from the BM...there is some analytical variability in the observed data but the simulated curve should be nice and smooth IV bolus.

 

Could it be NLME is not well designed to solve such a complex set of differential equations?

I'm just working in the naive pooled. I don't have enough enough observations or individual animals to justify a population approach here.



#16 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 06 September 2014 - 01:09 PM

somehow the curve is going negative. I'm sending the current project so you can see this.

I had tested the mass balance previously and everything line up i.e. I could account fo 100% of the dose at all timepoints, so there must be something else missing here in the code to translate a PBPK model.

further thoughts? [file name=PBPKIV-20140906.phxproj size=965990]http://www.pharsight.com/extranet/media/kunena/attachments/legacy/files/PBPKIV-20140906.phxproj[/file]



#17 Elliot Offman

Elliot Offman

    Advanced Member

  • Members
  • PipPipPip
  • 101 posts

Posted 06 September 2014 - 11:16 PM

Hi Serge,
Problem solved....
in Berkley Madonna its permissible to code a differential within a differential but doesn't seem that Phoenix NLME like this way of presenting clearance within the organ.

So previously I had described the rate of change in kidney to include an amount of renal and non-renal clearance and then defined the renal and non-renal clearances as differentials.

#Kidney
deriv(Akidney = (Qkidney* Cart_pla) - (Lkidney*(1-(Sigma_v_scalingfactor*Sigma_v_kidney))* Ckidney_pla) - ((Qkidney-Lkidney)*Ckidney_pla) -(ACLR )-(ANRCL_kidney_pla ))
deriv(Akidney_isf = (Lkidney*(1-(Sigma_v_scalingfactor*Sigma_v_kidney))* (Ckidney_pla)) -(Lkidney*(1-Sigma_isf)*Ckidney_isf)-(ANRCL_kidney_isf ))
Ckidney_pla=Akidney/Vkidney_pla
Ckidney_isf=Akidney_isf/Vkidney_isf
deriv(ACLR =CLR*Ckidney_pla)
CLR=(GFR*BW*FGFR)# renal clearance rate
FGFR=0.001
deriv(ANRCL_kidney_pla =NRCL*Ckidney_pla*VNRCL_kidney_pla)
deriv(ANRCL_kidney_isf =NRCL*Ckidney_isf*VNRCL_kidney_isf)

however when changed this to Concentration *Clearance rate it fixed the problem.
So lesson learned when converting Berkley Madonna Code to PML.
Live and learn. The good news is I'm one step closer to obtaining precision and have a means of performing a sensitivity analysis on my model more readily since I can use the NCA directly within this application!!!!

Who needs PBPK software?!!





Also tagged with one or more of these keywords: test

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users