nonmem2rx {nonmem2rx}R Documentation

Convert a NONMEM source file to a rxode model (nlmixr2-syle)

Description

Convert a NONMEM source file to a rxode model (nlmixr2-syle)

Usage

nonmem2rx(
  file,
  inputData = NULL,
  nonmemOutputDir = NULL,
  rename = NULL,
  tolowerLhs = TRUE,
  thetaNames = TRUE,
  etaNames = TRUE,
  cmtNames = TRUE,
  updateFinal = TRUE,
  determineError = TRUE,
  validate = getOption("nonmem2rx.validate", TRUE),
  nonmemData = FALSE,
  strictLst = FALSE,
  unintFixed = FALSE,
  extended = getOption("nonmem2rx.extended", FALSE),
  nLinesPro = 20L,
  delta = 1e-04,
  usePhi = TRUE,
  useExt = TRUE,
  useCov = TRUE,
  useXml = TRUE,
  useLst = TRUE,
  mod = ".mod",
  cov = ".cov",
  phi = ".phi",
  lst = getOption("nonmem2rx.lst", ".lst"),
  xml = ".xml",
  ext = ".ext",
  scanLines = getOption("nonmem2rx.scanLines", 50L),
  save = getOption("nonmem2rx.save", NA),
  saveTime = getOption("nonmem2rx.saveTime", 15),
  overwrite = getOption("nonmem2rx.overwrite", TRUE),
  load = getOption("nonmem2rx.load", TRUE),
  compress = getOption("nonmem2rx.compress", TRUE),
  keep = getOption("nonmem2rx.keep", c("dfSub", "dfObs", "thetaMat", "sigma"))
)

Arguments

file

NONMEM run file, like an .xml or .lst file or even a control stream

inputData

this is a path to the input dataset (or NULL to determine from the dataset). Often the input dataset may be different from the place it points to in the control stream because directories can be created to run NONMEM from a script. Because of this, when this is specified the input data will be assumed to be from here instead.

nonmemOutputDir

This is a path the the nonmem output directory. When not NULL it will assume that the diretory for the output files is located here instead of where the control stream currently exists.

rename

When not NULL this should be a named character vector that contains the parameters that should be renamed. For example, if the model uses the variable YTYPE and has CMT it isn't compatible with rxode2/nlmixr2. You can change this for the input dataset and the model to create a new model that still reproduces the NONMEM output by specifying rename=c(dvid="YTYPE")

tolowerLhs

Boolean to change the lhs to lower case (default: TRUE)

thetaNames

this could be a boolean indicating that the theta names should be changed to the comment-labeled names (default: TRUE). This could also be a character vector of the theta names (in order) to be replaced.

etaNames

this could be a boolean indicating that the eta names should be changed to the comment-labeled names (default: TRUE). This could also be a character vector of the theta names (in order) to be replaced.

cmtNames

this could be a boolean indicating that the compartment names should be changed to the named compartments in the ⁠$MODEL⁠ by COMP = (name) (default: TRUE). This could also be a character vector of the compartment names (in order) to be replaced.

updateFinal

Update the parsed model with the model estimates from the .lst output file.

determineError

Boolean to try to determine the nlmixr2-style residual error model (like ipred ~ add(add.sd)), otherwise endpoints are not defined in the rxode2/nlmixr2 model (default: TRUE)

validate

Boolean that this tool will attempt to "validate" the model by solving the derived model under pred conditions (etas are zero and eps values are zero)

nonmemData

Boolean that tells nonmem2rx to read in the nonmem data (if possible) even if the model will not be validated (like if it is a simulation run or missing final parameter estimates). By default this is FALSE, nonmem data will not be integrated into the nonmem2rx ui.

strictLst

The list parsing needs to be correct for a successful load (default FALSE).

unintFixed

Treat uninteresting values as fixed parameters (default FALSE)

extended

Translate extended control streams from tools like wings for NONMEM

nLinesPro

The number of lines to check for the $PROBLEM statement.

delta

this is the offset for NONMEM times that are tied

usePhi

if present, use the NONMEM phi file to extract etas (default TRUE), otherwise defaults to etas in the tables (if present)

useExt

if present, use the NONMEM ext file to extract parameter estimates (default TRUE), otherwise defaults to parameter estimates extracted in the NONMEM output

useCov

if present, use the NONMEM cov file to import the covariance, otherwise import the covariance with list file

useXml

if present, use the NONMEM xml file to import much of the NONMEM information

useLst

if present, use the NONMEM lst file to extract NONMEM information

mod

the NONMEM output extension, defaults to .mod

cov

the NONMEM covariance file extension, defaults to .cov

phi

the NONMEM eta/phi file extension, defaults to .phi

lst

the NONMEM output extension, defaults to .lst

xml

the NONMEM xml file extension , defaults to .xml

ext

the NONMEM ext file extension, defaults to .ext

scanLines

number of lines to scan for comment chars when ⁠IGNORE=@⁠, default is 50

save

This can be:

  • a NULL (meaning don't save),

  • a logical (default FALSE, don't save) that when TRUE will use the base name of the control stream, append .qs and save the file using qs::qsave()

  • A path to a file to write

    Note that this file will be saved with qs::qsave() and can be loaded with qs::qread()

  • A NA value which means save if the whole process (including validation) takes too much time

saveTime

The time that the translation/validation needs (in secs) before it will save to avoid having to rerun the model (default 15 for 15 seconds)

overwrite

is a boolean to allow overwriting the save file (see load for more information).

load

a boolean that says to load the save file (if it exists) instead of re-running the translation and validation. Note if overwrite=TRUE and load=TRUE then this will overwrite based on time stamp of the files. If the save file is newer than the input file, then load that file, otherwise regenerate and overwrite. This works best if you point to an output file, like a .xml or listing file instead of the control stream

compress

a boolean indicating if the UI should be a compressed UI. If you are using this for simulation with old versions of rxode2, the compressed ui is not supported, so this should be FALSE. Otherwise use TRUE if you are using a newer rxode2.

keep

is a character vector of imported model items that are kept in the model itself; The defaults is "sigma" which keeps the sigma matrix in the model itself. You can add rxode2 solving options that are imported from NONMEM to keep in the model.

Details

Since some of these options you may want to set per project, the following options are queried:

Value

rxode2 function

Examples


# You can run a translation without validating the input.  This is
# a faster way to import a dataset (and allows the CRAN machines to
# run a quick example)

mod <- nonmem2rx(system.file("mods/cpt/runODE032.ctl", package="nonmem2rx"), lst=".res",
                save=FALSE, validate=FALSE, compress=FALSE)



# Though by default you likely wish to validate the input

mod <- nonmem2rx(system.file("mods/cpt/runODE032.ctl", package="nonmem2rx"),
                 lst=".res", save=FALSE)

mod

# you can plot to compare the pred/ipred differences

plot(mod)

# if you want to see the individual differences
# you can by plotting by page of plots

plot(mod, nrow=2, ncol=2, page=1, log="y")

# or select which pages you want to print

plot(mod, nrow=2, ncol=2, page=c(1,3), log="y")


#' or even  all the individuals with
# plot(page=TRUE)

plot(mod, nrow=5, ncol=5, page=TRUE, log="y")

# you can also convert to a nlmixr2 object, but need babelmixr2 for
# that conversion




[Package nonmem2rx version 0.1.4 Index]