rxode2 ODE solving syntax

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>")
library(rxode2)

Introduction

This briefly describes the syntax used to define models that rxode2 will translate into R-callable compiled code. It also describes the communication of variables between R and the rxode2 modeling specification.

Creating rxode2 models


Syntax


Bugs and/or deficiencies

Note

The ODE specification mini-language is parsed with the help of the open source tool \code{dparser}, Plevyak (2015).

Example model

Below is a commented example to quickly show the capabilities of rxode2 syntax.

Example

f <- function() {
  ini({

  })
  model({
    # An rxode2 model specification (this line is a comment).

    if(comed==0) {  # concomitant medication (con-med)?
      F <- 1.0     # full bioavailability w.o. con-med
    } else {
      F <- 0.80    # 20% reduced bioavailability
    }

    C2 <- centr/V2  # concentration in the central compartment
    C3 <- peri/V3   # concentration in the peripheral compartment

    # ODE describing the PK and PD

    d/dt(depot) <- -KA*depot
    d/dt(centr) <- F*KA*depot - CL*C2 - Q*C2 + Q*C3
    d/dt(peri)  <-                      Q*C2 - Q*C3
    d/dt(eff)   <- Kin - Kout*(1-C2/(EC50+C2))*eff
    eff(0)      <- 1
  })
}

Interface and data handling between R and the generated C code

Users specify which variables are the dynamic system's state variables via the d/dt(identifier) operator as part of the model specification, and which are model parameters via the params= argument in rxode2 solve() method:

m1 <- rxode2(model = ode, modName = "m1")

# model parameters -- a named vector is required
theta <-
   c(KA=0.29, CL=18.6, V2=40.2, Q=10.5, V3=297, Kin=1, Kout=1, EC50=200)

# state variables and their amounts at time 0 (the use of names is
# encouraged, but not required)
inits <- c(depot=0, centr=0, peri=0, eff=1)

# qd1 is an eventTable specification with a set of dosing and sampling
# records (code not shown here)

solve(theta, event = qd1, inits = inits)

The values of these variables at pre-specified time points are saved during model fitting/integration and returned as part of the fitted values (see the function et(), to define a set of time points when to capture the values of these variables) and returned as part of the modeling output.

The ODE specification mini-language is parsed with the help of the open source tool DParser, Plevyak (2015).



Try the rxode2 package in your browser

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

rxode2 documentation built on Oct. 30, 2024, 9:06 a.m.