rx2other {ruminate} | R Documentation |
Converts an rxode2 Object Into Specified Model Format
Description
If you have an rxode2 or nlmixr2 model object you can use this function to translate that object into other formats. See output_type below for the allowed formats.
In order to do this you need at least one between-subject variability term
and one endpoint. If these are missing then dummy values will be added. The
dummy values for between-subject variablitiy are IIV will be
POP_RUMINATE
, TV_RUMINATE
, and ETA.RUMINATE
. The dummy
terms for endpoints are OUT_RUMINATE
and add.OUT_RUMINATE
.
Usage
rx2other(
object,
out_type = "nonmem",
dataset = NULL,
export_name = "my_model",
export_path = tempfile(pattern = "dir")
)
Arguments
object |
rxode2 model object |
out_type |
Output type (either "nonmem", "monolix") |
dataset |
Optional dataset |
export_name |
Basename for models used |
export_path |
Location to place output files (default |
Details
Known issues: If you have specified bioavailability in the model, it will fail on the Monolix conversion.
Value
List with the following elements:
isgood: Return status of the function.
msgs: Error or warning messages if any issues were encountered.
files: If succesful this will contain a list with an entry for each file generated to support the requested format. the current file format. For example if "nonmem" was selected this will include elements for "ctl" and "csv". Each of these are lists with the following format:
fn: Exported file name
fn_full: Exported file name with the full path.
contents: Contents of the file.
Examples
library(ruminate)
if( Sys.getenv("ruminate_rxfamily_found") == "TRUE"){
# First create an rxode2 model:
library(rxode2)
one.compartment <- function() {
rxode2::ini({
tka <- log(1.57); label("Ka")
tcl <- log(2.72); label("Cl")
tv <- log(31.5); label("V")
eta.ka ~ 0.6
eta.cl ~ 0.3
eta.v ~ 0.1
add.sd <- 0.7
})
# and a model block with the error specification and model specification
rxode2::model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v)
d/dt(depot) <- -ka * depot
d/dt(center) <- ka * depot - cl / v * center
cp <- center / v
cp ~ add(add.sd)
})
}
nmout = rx2other(one.compartment, out_type="nonmem")
}