nlmixrdevelopment / nlmixr

nlmixr: an R package for population PKPD modeling
https://nlmixrdevelopment.github.io/nlmixr/
GNU General Public License v2.0
114 stars 45 forks source link

Dose-scale analysis to estimate relative bioavailability #580

Open hrishikesh1985 opened 2 years ago

hrishikesh1985 commented 2 years ago

As per the USFDA guidance of Orlistate,( [https://www.accessdata.fda.gov/drugsatfda_docs/psg/PSG_020766.pdf] Data from PD study on fecal fat excretion should be analyzed based on dose-scale analysis to estimate relative bioavailability.

Model is y= E0 + Emax Dose Fi/ED50 + (Dose*Fi) Where y = Response, Dose = Administered dose, E0 = Baseline response in the absence of the drug, Emax = Fitted maximum drug effect, ED50 = Dose required to produce 50% the fitted maximum effect, and i = Treatment indicator (0 = Ref, 1 = Test), with the understanding that F0 = 1 and that F1 is the relative potency used to evaluate bioequivalence.

The same approach has to be used for albuterol Bronchoprovocation study. [https://www.accessdata.fda.gov/drugsatfda_docs/psg/PSG_020503.pdf] I am struggling to prepare the dataset and model (snapshot attached) in which have four treatment i,e, placebo, test, reference(2 doses) and from which F- relative bioavailability needs to be calculated

Data_al2 <- function() {
  ini({
    temax <- -20
    ted50 <- 20
    te0 <- 1
    eta.emax ~ pdDiag(1)
    eta.ed50 ~1
    eta.e0 ~1
    add.err <- 1
  })

  model({
    emax <- (temax *exp(eta.emax))
    ed50 <- (ted50)*exp(eta.ed50)
    e0 <- (te0 * exp(eta.e0))
    eff =   e0 + (((emax)* DOSE)* Frel/((ed50)+(DOSE*Frel)))
    eff ~ add(add.err)
  })
}

img.docx

mattfidler commented 2 years ago

I would suggest changing the independent variable DOSE to time in your dataset and in your model. Perhaps in the future you can declare a different idependent variable in nlmixr but right now it isn't possible.

mattfidler commented 2 years ago

There is some discussion on a similar issue in #517

hrishikesh1985 commented 1 year ago

I am not able to run below code using nlmixr2 package.

Data <- function() { ini({ temax <- -9.91 ted50 <- 11.9 eta.emax ~ pdDiag(2.9) add.err <-12.7 })

model({ emax <- (temax + eta.emax) ed50 <- (ted50)
eff = (((emax)* time)/((ed50)+time)) eff ~ add(add.err) }) }

Data_fit <- nlmixr(Data, data_import,est = "focei", foceiControl(derivMethod = "central" ))

Error i got: lotri syntax error:

:001: temax <- -9.91 :002: ted50 <- 11.9 lotri error: bad matrix expression: 'eta.emax ~ pdDiag(2.9)' matrix expression should be 'name ~ c(lower-tri)' :003: eta.emax ~ pdDiag(2.9) :004: add.err <- 12.7

Error: lotri syntax errors above