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
tempdir()
)
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.
Details
Known issues: If you have specified bioavailability in the model, it will fail on the Monolix conversion.
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")
}
#>
#>
#> ℹ parameter labels from comments are typically ignored in non-interactive mode
#> ℹ Need to run with the source intact to parse comments