source("global.R") set.seed(23)
library(mrgsolve) library(dplyr)
Event objects are simple ways to implement PK dosing events into your model simulation.
Let's illustrate event objects with a one-compartment, PK model. We read this
model from the mrgsolve
internal model library.
mod <- house(end = 216, delta = 0.1)
Events are constructed with the ev()
function
e <- ev(amt = 100, ii = 24, addl = 6)
This will implement 100 unit doses every 24 hours for a total of 7 doses. e
has class ev
, but really it is just a data frame
e
as.data.frame(e)
We can implement this series of doses by passing e
in as the events
argument
to mrgsim
mod %>% mrgsim(events = e) %>% plot(GUT + CP ~ time)
The events can also be implemented with the ev
constructor along the
simulation pipeline
mod %>% ev(amt = 100, ii = 24, addl = 6) %>% mrgsim %>% plot(CP ~ time)
amt
is requiredevid = 0
is forbiddentime
is 0evid
is 1cmt
is 1Also by default, rate
, ss
and ii
are 0.
mrgsolve
has operators defined that allow you to combine events. Let's first
define some event objects.
e1 <- ev(amt = 500) e2 <- ev(amt = 250, ii = 24, addl = 4) e3 <- ev(amt = 500, ii = 24, addl = 0) e4 <- ev(amt = 250, ii = 24, addl = 4, time = 24)
We can combine e1
and e3
with a collection operator
c(e1, e4)
mrgsolve
also defines a seq()
method that lets you execute one event and
then a second event
seq(e3, e2)
Notice that e3
has both ii
and addl
defined. This is required for
mrgsolve
to know when to start e2
.
We can take several event objects and combine them into a single simulation data
frame with the as_data_set
function.
e1 <- ev(amt = 100, ii = 24, addl = 6, ID = 1:5) e2 <- ev(amt = 50, ii = 12, addl = 13, ID = 1:3) e3 <- ev(amt = 200, ii = 24, addl = 2, ID = 1:2)
When combined into a data set, we get N=5 IDs receiving 100 mg Q24h x7 N=3 IDs receiving 50 mg Q12h x 14 * N=2 IDs receiving 200 mg Q48h x 3
data <- as_data_set(e1, e2, e3) data
To simulate from this data set, we use the data_set
function. First, let's
add an OMEGA matrix to this model:
mod <- omat(mod, as_dmat(c(0.1, 0.1, 0.1, 0.1)))
mod %>% data_set(data) %>% mrgsim(end=336) %>% plot("GUT, DV")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.