status R-CMD-check Codecov test
coverage Lifecycle:

Script based ‘NONMEM’ model development in RStudio intended for intermediate to advanced R users.



You can install the released version of NMproject from CRAN with:


To install the latest version of NMproject from GitHub:

if(!require("devtools")) install.packages("devtools")

To install a specific release (e.g. v0.5.1) on GitHub use the following command:


Load the package with


Getting started with NMproject

Two options:

  1. Running the demo is easiest way to familiarise your with NMproject.
  2. Reading the website vignette.

Code snippets

Use of pipes, %>%, make it easy to code sequences of operations to model objects.

Following snippet adds covariates to model object, m2:

m2WT <- m2 %>% child(run_id = "m2WT") %>%
  add_cov(param = "CL", cov = "WT", state = "power") %>%

Graphical RStudio ‘Addins’ exist for reviewing the changes that functions like add_cov() make before execution and performing nm_tran() checks.

For more complex operations use fully tracked manual edits.

Apply fully customisable diagnostic reports to one or multiple objects with nm_render() like so:

c(m1, m2) %>% nm_render("Scripts/basic_gof.Rmd")
## Saves html diagnostic reports in "Results" directory

The template Scripts/basic_gof.Rmd can also be run as an R notebook for interactively customising to your specific model evaluation criteria.

Here’s a snippet for producing PPCs and VPCs:

m2s <- m2 %>% child(run_id = "m2s") %>%
  update_parameters(m2) %>%
  convert_to_simulation(subpr = 50) %>%

m2s %>% nm_render("Scripts/basic_vpc.Rmd")
m2s %>% nm_render("Scripts/basic_ppc.Rmd")

Advanced functionality enables groups of runs to be handled with the same concise syntax (no loops). For example:

m1rep <- m1 %>% child(run_id = 1:5) %>% 
  init_theta(init = rnorm(init, mean = init, sd = 0.3)) %>%
  init_omega(init = runif(init, min = init/2, max = init*2)) %>%
  run_in("Models/m1_perturb_inits") %>%

See the website vignette for more examples

Try the NMproject package in your browser

Any scripts or data that you put into this service are public.

NMproject documentation built on Sept. 30, 2022, 1:06 a.m.