Major public release of nlmixr

The nlmixr team is very proud to announce a major public release of nlmixr, an open source package for population PK and PKPD modelling. nlmixr builds on the RxODE package for simulation of nonlinear mixed effect models using ordinary differential equations, by implementing parameter estimation algorithms like nlme and SAEM (with gnlmm and FOCEi under active development). nlmixr greatly expands the utility of existing packages (like nlme) by providing an efficient and versatile way to specify pharmacometric models and dosing scenarios, with rapid execution due to compilation to C++.

This new release features a unified user-interface. This user-interface provides PKPD modelers a minimalist, intuitive, expressive, domain-specific modeling language to compactly describe the model structure & efficiently explore the population data at hand. Below is an example of specifying the theophyline data by this domain language:

f <- function(){
lCl <- -3 # log Cl (L/hr)
lVc <- -1 # log Vc (L)
lKA <- 1 # log Ka (1/hr)
add.err <- c(0, 0.2, 1)
eta.Cl ~ 0.1 # BSV Cl
eta.Vc ~ 0.1 # BSV Vc
eta.KA ~ 0.1 # BSV Ka
## First parameters are defined in terms of the initial estimates
## parameter names.
Cl <- exp(lCl + eta.Cl)
Vc <- exp(lVc + eta.Vc)
KA <- exp(lKA + eta.KA)
## Next, the differential equations are defined
d/dt(depot) = -KA*depot;
d/dt(centr) = KA*depot-Cl/Vc*centr;
## And the concentration is then calculated
cp = centr / Vc;
## Last, nlmixr is told that the plasma concentration follows
## an additive error (estimated by the parameter prop.err)
cp ~ add(add.err)
fit <- nlmixr(f, theo_sd, est=”saem”)

Try it out for yourself and experience the joy of a population modelling package within R! The source is available at, and the nlmixr team is in the process of submitting the package to CRAN, and working hard to further improve this community based modeling tool. Our goal: Express your model in nlmixr, openly and freely.

Leave a Reply

Your email address will not be published. Required fields are marked *