Executes an NLME simple estimation with sort keys and given scenarios

  hostPlatform = NULL,
  scenarios = list(),
  runInBackground = FALSE,
  filesToReturn = "*",



PK/PD model class object.


Host definition for model execution. See hostParams. If missing, PhoenixMPIDir64 is given and MPI is installed, MPI local host with 4 threads is used. If MPI is not found, local host without parallelization is used.


Engine parameters. See engineParams. If missing, default parameters generated by engineParams(model) are used.


List of sort columns. See SortColumns. If missing, empty sort columns argument is used and NLME dataset is used as is.


List of scenarios with different sets of covariates. See NlmeScenario If missing, all covariates effects are considered as enabled.


Optional list of simple tables. See tableParams. By default a table named 'posthoc.csv' is returned with structural parameters values for all source data rows.


Set to TRUE to run in background and return prompt.


Used to specify which files to be outputted to the model directory and loaded as returned value. By default, all the applicable files listed in the Value section will be outputted to the model directory and loaded as returned value. Only those files listed in the Value section can be specified. Simple regex patterns are supported for the specification.


Additional arguments for hostParams or arguments available inside engineParams functions. If engineParams arguments are supplied through both params argument and additional argument (i.e., ellipsis), then the arguments in params will be ignored and only the additional arguments will be used with warning. If hostParams arguments are supplied through both the hostPlatform argument and the ellipses, values supplied to hostPlatform will be overridden by additional arguments supplied via the ellipses e.g., ....


if runInBackground is FALSE, a list with main resulted dataframes is returned:

  • Overall

  • ConvergenceData

  • residuals

  • Secondary

  • StrCovariate - if continuous covariates presented

  • StrCovariateCat - if categorical covariates presented

  • theta

  • posthoc table

  • posthocStacked table

  • Requested tables

nlme7engine.log textual output is returned and loaded with the main information related to fitting. dmp.txt structure with the results of fitting (including LL by subject information) is returned and loaded. These 2 files are returned and loaded irrespective of filesToReturn argument value.

For individual models, additional dataframe with partial derivatives is returned:

  • ParDer

For population models and the method specified is NOT Naive-Pooled, additional dataframes are returned:

  • omega

  • Eta

  • EtaStacked

  • EtaEta

  • EtaCov

  • EtaCovariate - if continuous covariates presented

  • EtaCovariateCat - if categorical covariates presented

  • bluptable.dat

If standard error computation was requested and it was successful, additional dataframes are returned:

  • thetaCorrelation

  • thetaCovariance

  • Covariance

  • omega_stderr

If nonparametric method was requested (numIterNonParametric > 0) and the method specified in engineParams is NOT Naive-Pooled, additional dataframes are returned:

  • nonParSupportResult

  • nonParStackedResult

  • nonParEtaResult

  • nonParOverallResult

if runInBackground is TRUE, only current status of job is returned.


All the results in tabular format have scenario column and sorts columns appended. The resulted logs (nlme7engine.log, err1.txt, dmp.txt, out.txt) are appended with a row delimiter where the name of the Scenario and sort values are specified.

Non-loaded but returned files

The non-loaded but returned files in the model working directory are:

  • err1.txt - concatenated for all runs detailed logs for all steps of optimization,

  • out.txt - general pivoted information about results,

  • doses.csv - information about doses given for all subjects,

  • iniest.csv - information about initial estimates


if (FALSE) {
input_data <- pkData

model <-
  pkmodel(numCompartments = 2,
          data = input_data,
          ID = "Subject",
          Time = "Act_Time",
          A1 = "Amount",
          CObs = "Conc")

model <-
               covariate = "BodyWeight",
               direction = "Backward",
               center = "Mean",
               effect = c("V", "Cl"))

# multicore
multicoreHost <-
   hostParams(parallelMethod = "Multicore",
              hostName = "multicore",
              numCores = 4)

# specify scenarios
CovariateEffectNames <- listCovariateEffectNames(model)
combinations <-
  combn(c("", CovariateEffectNames),
        simplify = FALSE)

scenarioNames <-
         function(x) {paste(x, collapse = " ")})

scenarios <-
         function(x, CovariateEffectNames) {
           CovariateCombinations <- unlist(strsplit(x, " ", fixed = TRUE))
           scenarioIndex <-
             paste(which(CovariateEffectNames %in% CovariateCombinations,
                         arr.ind = TRUE),
                         collapse = ", ")
           NlmeScenario(trimws(x), scenarioIndex)

res <-
          hostPlatform = multicoreHost,
          params = engineParams(model),
          sortColumns = SortColumns("Gender"),
          scenarios = scenarios)