Select Page

# Version 2021

This documentation is for PKanalix.

PKanalix performs analysis on PK data set including:

• The non compartmental analysis (NCA) – computation of the NCA parameters using the calculation of the $$\lambda_z$$ – slope of the terminal elimination phase.
• The bioequivalence analysis (BE) – comparison of the NCA parameters of several drug products (usually two, called ‘test’ and ‘reference’) using the average bioequivalence.
• The compartmental analysis (CA) – estimation of model parameters representing the PK as the dynamics in compartments for each individual. It does not include population analysis performed in Monolix.

What else?

• A clear user-interface with an intuitive workflow to efficiently run the NCA, BE and CA analysis.
• Easily accessible PK models library and auto-initialization method to improve the convergence of the optimization of CA parameters.
• Integrated bioequivalence module to simplify the analysis
• Automatically generated results and plots to give an immediate feedback.
• Interconnection with MonolixSuite applications to export projects to Monolix for the population analysis.

Pkanalix uses the dataset format common for all MonolixSuite applications, see here for more details. It allows to move your project between applications, for instance export a CA project to Monolix and perform a population analysis with one “click” of a button.

## Non Compartmental Analysis

The first main feature of PKanalix is the calculation of the parameters in the Non Compartmental Analysis framework.

This task consists in defining rules for the calculation of the $$\lambda_z$$ (slope of the terminal elimination phase) to compute all the NCA parameters. This definition can be either global via general rules or manual on each individual – with the interactive plots the user selects or removes  points in the $$\lambda_z$$ calculation.

## Bioequivalence

The average NCA parameters obtained for different groups (e.g a test and a reference formulation) can be compared using the Bioequivalence task. Linear model definition contains one or several fixed effects selected in an integrated module. It allows to obtain a confidence interval compared to the predefined BE limits and automatically displayed in intuitive tables and plots.

## Compartmental Analysis

The second main feature of PKanalix is the calculation of the parameters in the Compartmental Analysis framework. It consists in finding parameters of a model that represents the PK as the dynamics in compartments for each individual.

This task defines a structural model (based on a user-friendly PK models library) and estimates the parameters for all the individuals. Automatic initialization method improves the convergence of parameters for each individual.

All the NCA, BE and/or CA outputs are automatically displayed in sortable tables in the Results tab. Moreover, they are exported in the result folder in a R-compatible format. Interactive plots give an immediate feedback and help to better interpret the results.

The usage of PKanalix is available not only via the user interface, but also via R with a dedicated R-package (detailed here). All the actions performed in the interface have their equivalent R-functions. It is particularly convenient for reproducibility purpose or batch jobs.

### 2.Data format for NCA and CA analysis#

The data set format used in PKanalix is the same as for the entire MonolixSuite, to allow smooth transitions between applications. The dosing information and the concentration measurements are recorded in a single data set. The dose information must be indicated for each individual, even if it is identical for all.

A data set typically contains the following columns: ID, TIME, OBSERVATION, AMOUNT. For IV infusion data, an additional INFUSION RATE or INFUSION DURATION is necessary. For steady-state data, STEADY-STATE and INTERDOSE INTERVAL column are added. Cells that do not contain information (e.g AMOUNT column on a line recording a measurement) have a dot. If a dose and a measurement occur at the same time, they can be encoded on the same line or on different lines. Sort and carry variables can be defined using the OCCASION, and CATEGORICAL COVARIATE and CONTINUOUS COVARIATE column-types. BLQ data are defined using the CENSORING and LIMIT column-types.

Headers are free but the columns must be assigned to one of the available column-types. The full list of column-types is available at the end of this page and a detailed description is given on the dataset documentation website.

Units are not recorded in PKanalix and it is not possible to convert the original data to adapt the units. It is the user’s responsibility to ensure that units are consistent in the data set (for instance if the amount is in mg, the concentrations in mg/L, then the calculated volumes will be in L). Similarly, the indicated amount must be an absolute value. It is not possible to give in a dose in mg/kg and let the software calculate the dose in mg based on the weight. This calculation must be done outside PKanalix.

Note that the NCA application does not allow to have in the dataset several observations at the same time for the same id.

Below we show how to encode the date set for most typical situations.

# Plasma concentration data

## Extravascular

For extravascular administration, the mandatory column-types are ID (individual identifiers as integers or strings), OBSERVATION (measured concentrations), AMOUNT (dose amount administered) and TIME (time of dose or measurement).

To distinguish the extravascular from the IV bolus case, in “Tasks>Run” the administration type must be set to “extravascular”.

If no measurement is recorded at the time of the dose, a concentration of zero is added for single dose data, the minimum concentration observed during the dose interval for steady-state data.

Example:

• demo project_extravascular.pkx

This data set records the drug concentration measured after single oral administration of 150 mg of drug in 20 patients. For each individual, the first line records the dose (in the “Amount” column tagged as AMOUNT column-type) while the following lines record the measured concentrations (in the “Conc” column tagged as OBSERVATION). Cells of the “Amount” column on measurement lines contain a dot, and respectively for the concentration column. The column containing the times of measurements or doses is tagged as TIME column-type and the subject identifiers, which we will use as sort variable, are tagged as ID. Check the OCCASION section if more sort variables are needed. After accepting the dataset, the data is automatically assigned as “Plasma”.

In the “Tasks/Run” tab, the user must indicate that this is extravascular data. In the “Check lambda_z”, on linear scale for the y-axis, measurements originally present in the data are shown with full circles. Added data points, such as a zero concentration at the dose time, are represented with empty circles. Points included in the $$\lambda_z$$ calculation are highlighted in blue.

After running the NCA analysis, PK parameters relevant to extravascular administration are displayed in the “Results” tab.

## IV infusion

Intravenous infusions are indicated in the data set via the presence of an INFUSION RATE or INFUSION DURATION column-type, in addition to the ID (individual identifiers as integers or strings), OBSERVATION (measured concentrations), AMOUNT (dose amount administered) and TIME (time of dose or measurement). The infusion duration (or rate) can be identical or different between individuals.

If no measurement is recorded at the time of the dose, a concentration of zero is added for single dose data, the minimum concentration observed during the dose interval for steady-state data.

Example:

• demo project_ivinfusion.pkx:

In this example, the patients receive an iv infusion over 3 hours. The infusion duration is recorded in the column called “TINF” in this example, and tagged as INFUSION DURATION.

In the “Tasks/Run” tab, the user must indicate that this is intravenous data.

## IV bolus

For IV bolus administration, the mandatory column-types are ID (individual identifiers as integers or strings), OBSERVATION (measured concentrations), AMOUNT (dose amount administered) and TIME (time of dose or measurement).

To distinguish the IV bolus from the extravascular case, in “Tasks>Run” the administration type must be set to “intravenous”.

If no measurement is recorded at the time of the dose, the concentration of at time zero is extrapolated using a log-linear regression of the first two data points, or is taken to be the first observed measurement if the regression yields a slope >= 0. See the calculation details for more information.

Example:

• demo project_ivbolus.pkx:

In this data set, 25 individuals have received an iv bolus and their plasma concentration have been recorded over 12 hours. For each individual (indicated in the column “Subj” tagged as ID column-type), we record the dose amount in a column “Dose”, tagged as AMOUNT column-type. The measured concentrations are tagged as OBSERVATION and the times as TIME. Check the OCCASION section if more sort variables are needed in addition to ID. After accepting the dataset, the data is automatically assigned as “plasma”.

In the “Tasks/Run” tab, the user must indicate that this is intravenous data. In the “Check lambda_z”, measurements originally present in the data are shown with full circles. Added data points, such as the C0 at the dose time, are represented with empty circles. Points included in the $$\lambda_z$$ calculation are highlighted in blue.

After running the NCA analysis, PK parameters relevant to iv bolus administration are displayed in the “Results” tab.

Steady-state must be indicated in the data set by using the STEADY STATE column-type:

• “1” indicates that the individual is already at steady-state when receiving the dose. This implicitly assumes that the individual has received many doses before this one.
• “0” or ‘.’ indicates a single dose.

The dosing interval (also called tau) is indicated in the INTERDOSE INTERVAL, on the lines defining the doses.

Steady state calculation formulas will be applied for individuals having a dose with STEADY STATE = 1. A data set can contain individuals which are at steady-state and some which are not.

If no measurement is recorded at the time of the dose, the minimum concentration observed during the dose interval is added at the time of the dose for extravascular and infusion data. For iv bolus, a regression using the two first data points is performed. Only measurements between the dose time and dose time + interdose interval will be used.

Examples:

In this example, the individuals are already at steady-state when they receive the dose. This is indicated in the data set via the column “SteadyState” tagged as STEADY STATE column-type, which contains a “1” on lines recording doses. The interdose interval is noted on those same line in the column “tau” tagged as INTERDOSE INTERVAL. When accepting the data set, a “Settings” section appears, which allows to define the number of steady-state doses. This information is relevant when exporting to Monolix, but not used in PKanalix directly.

After running the NCA estimation task, steady-state specific parameters are displayed in the “Results” tab.

# BLQ data

Below the limit of quantification (BLQ) data can be recorded in the data set using the CENSORING column:

• “0” indicates that the value in the OBSERVATION column is the measurement.
• “1” indicates that the observation is BLQ.

The lower limit of quantification (LOQ) must be indicated in the OBSERVATION column when CENSORING = “1”. Note that strings are not allowed in the OBSERVATION column (except dots). A different LOQ value can be used for each BLQ data.

When performing an NCA analysis, the BLQ data before and after the Tmax are distinguished. They can be replaced by:

• zero
• the LOQ value
• the LOQ value divided by 2
• or considered as missing

For a CA analysis, the same options are available, but no distinction is done between before and after Tmax. Once replaced, the BLQ data are handled as any other observation.

A LIMIT column can be added to record the other limit of the interval (in general zero). This value will not be used by PKanalix but can facilitate the transition from an NCA/CA analysis PKanalix to a population model with Monolix.

Note: the proper encoding of BLQ data can easily be done using Excel or R.
ft

### Example 2 : Plotting the individual data as spaghetti plot or with mean per treatment group

This demo dataset corresponds to a 2x2x2 crossover design with a ref and a ref formulation. Using the new (2021 version) “plot” functions, the data can be plotted with individual profiles or with mean profiles calculated for the two different treatments and overlayed on a single plot. As the “plot” functions return a ggplot2 object, additional ggplot2 commands can be used to further customize the plot.

library(lixoftConnectors)
library(ggplot2)
initializeLixoftConnectors(software="pkanalix")

# plotting the individual profiles colored by id and split by formulation
plotObservedData(settings=list(dots=T,lines=T,mean=F,error=F,
ylog=T, ylab="Concentration (ng/mL)", xlab="Time (hr)", grid=F, cens=F),
stratify=list(colorGroup=list(name="ID"), splitGroup=list(name="FORM")))+
scale_x_continuous(breaks=seq(0, 72, by=12))

# plotting the mean profile with standard deviation for the test and ref formulation
plotObservedData(settings=list(dots=F,lines=F,mean=T,error=T,meanMethod="geometric",
ylog=T, ylab="Concentration (ng/mL)", xlab="Time (hr)", grid=F),
stratify=list(colorGroup=list(name="FORM"),colors=c("#00a4c6","#ff793f")))+
scale_x_continuous(breaks=seq(0, 72, by=12))

### 5.1.R-package installation and initialization#

In this page, we present the installation procedure of the R-package lixoftConnectors that allow to run PKanalix from R.

## Installation

The R package lixoftConnectors is located in the installation directory as tar.gz ball. It can be installed directly using Rstudio (Tools > Install packages > from package archive file) or by the following R command:

install.packages(packagePath, repos = NULL, type="source", INSTALL_opts ="--no-multiarch")

with packagePath = ‘<installDirectory>/connectors/lixoftConnectors.tar.gz’ where <installDirectory> is the MonolixSuite installation directory.

With the default installation directory, the command is:

# for Windows OS
install.packages("C:/ProgramData/Lixoft/MonolixSuite2019R1/connectors/lixoftConnectors.tar.gz",
repos = NULL, type="source", INSTALL_opts ="--no-multiarch")
# for Mac OS
install.packages("/Applications/MonolixSuite2019R1.app/Contents/Resources/monolixSuite/connectors/lixoftConnectors.tar.gz",
repos = NULL, type="source", INSTALL_opts ="--no-multiarch")

The lixoftConnectors package depends on the RJSONIO package that may need to be installed from CRAN first using:

install.packages('RJSONIO')

## Initializing

When starting a new R session, you need to load the library and initialize the connectors with the following commands

library(lixoftConnectors)
initializeLixoftConnectors(software = "pkanalix")

In some cases, it may be necessary to specify the path to the installation directory of the Lixoft suite. If no path is given, the one written in the <user home>/lixoft/lixoft.ini file is used (usually “C:/ProgramData/Lixoft/MonolixSuiteXXXX” for Windows) where XXXX corresponds to the version of MonolixSuite.

library(lixoftConnectors)
initializeLixoftConnectors(software = "pkanalix", path = "/path/to/MonolixSuite/")

## Making sure the installation is ok

To test if the installation is ok, you can load and run a project from the demos as on the following:

demoPath = '<userFolder>/lixoft/pkanalix/pkanalix2019R1/demos/1.basic_examples/'
runNCAEstimation()
getNCAIndividualParameters()

where <userFolder> is the user’s home folder (on windows C:/Users/toto if toto is your username). These three commands should output the estimated NCA parameters.

### 5.2.Description of the R functions associated to PKanalix project's management#

 getData Get a description of the data used in the current project. getStructuralModel Get the model file for the structural model used in the current project. loadProject Load a project by parsing the mlxtran-formated file whose path has been given as an input. newProject Create a new empty project providing model and data specification. saveProject Save the current project as an Mlxtran-formated file. setData Set project data giving a data file and specifying headers and observations types. setStructuralModel Set the structural model.

## Get project data

### Description

Get a description of the data used in the current project. Available informations are:

• dataFile (string): path to the data file
• observationNames (vector<string>): vector of observation names
• observationTypes (vector<string>): vector of observation types
• nbSSDoses (int) : number of doses (if there is a SS column)

getData()

### Value

A list describing project data.

setData

## Not run:

data = getData()

data

-> $dataFile “/path/to/data/file.txt”$header

c(“ID”,”TIME”,”CONC”,”SEX”,”OCC”)

$headerTypes c(“ID”,”TIME”,”OBSERVATION”,”CATEGORICAL COVARIATE”,”IGNORE”)$observationNames

c(“concentration”)

-> TRUE

lastRunInfo$report -> “” ## End(Not run) Top of the page, PKanalix-R functions. ## Get current scenario state ### Description Check if a scenario is currently running. If yes, information about the current running task are displayed. ### Usage isRunning(verbose = FALSE) ### Arguments verbose (bool) Should information about the current running task be displayed in the console or not. Equals FALSE by default. ### Value A boolean which equals TRUE if a scenario is currently running. ### See Also runScenario abort ### Click here to see examples ## Not run: isRunning() ## End(Not run) Top of the page, PKanalix-R functions. ### 5.4.Description of the R functions associated to PKanalix results#  getCAIndividualParameters Get the estimated values for each subject of some of the individual CA parameters of the current project. getNCAIndividualParameters Get the estimated values for each subject of some of the individual NCA parameters of the current project. ## Get CA individual parameters ### Description Get the estimated values for each subject of some of the individual CA parameters of the current project. ### Usage getCAIndividualParameters(...) ### Arguments (string) Name of the individual parameters whose values must be displayed. ### Value A data frame giving the estimated values of the individual parameters of interest for each subject, and a list of their associated statistics. ### Click here to see examples ## Not run: indivParams = getCAIndividualParameters() # retrieve the values of all the available individual parameters. indivParams = getCAIndividualParameters(“ka”, “V”) # retrieve the values of the individual parameters (“ka” ,”V”)$parameters->

id ka V

1 0.8 1.2

. … …

N 0.4 2.2

## End(Not run)

Top of the page, PKanalix-R functions.

## Get NCA individual parameters

### Description

Get the estimated values for each subject of some of the individual NCA parameters of the current project.

### Usage

getNCAIndividualParameters(...)

### Arguments

(string) Name of the individual parameters whose values must be displayed.

### Value

A data frame giving the estimated values of the individual parameters of interest for each subject,
and a list of their associated statistics.

## Not run:

indivParams = getNCAIndividualParameters() # retrieve the values of all the available parameters.

indivParams = getNCAIndividualParameters(“Tmax”,”Clast”) # retrieve the values of the parameters (“Tmax” ,”Clast”)

$parameters-> id Tmax Clast 1 0.8 1.2 . … … N 0.4 2.2 ## End(Not run) ### 5.5.Description of the R functions associated to the data set#  getObservationInformation Get the name, the type and the values of the observations present in the project. getCovariateInformation Get the name, the type and the values of the covariates present in the project. ## Get observations information ### Description Get the name and the values of the observations present in the project. ### Usage getObservationInformation() ### Value A list containing the name of the observations, their type and their values (id, time and observationName (and occasion if present in the data set)). ### Click here to see examples ## Not run: info = getObservationInformation() info ->$name

c(“concentration”)

-> $concentration id time concentration 1 0.5 0.0 . . . N 9.0 10.8 ## End(Not run) Top of the page, PKanalix-R functions. ## Get covariates information ### Description Get the name, the type and the values of the covariates present in the project. ### Usage getCovariateInformation() ### Value A list containing the following fields : • name : (vector<string>) covariate names • type : (vector<string>) covariate types. Existing types are “continuous”, “continuoustransformed”, “categorical”, “categoricaltransformed” . • modalityNumber : (vector<int>) number of modalities (for latent covariates only) • covariate : a data frame giving the values of continuous and categorical covariates for each subject. ### Click here to see examples ## Not run: info = getCovariateInformation() info ->$name

c(“sex”,”wt”)

-> $type c(sex = “categorical”, wt = “continuous”) ->$modalityNumber

c(lcat = 2)

-> \$covariate

id sex wt

1 M 66.7

. . .

N F 59.0

## End(Not run)

)
Top of the page, PKanalix-R functions.

### 5.6.Description of the R functions associated to PKanalix settings#

 getCASettings Get the settings associated to the compartmental analysis. getDataSettings Get the data settings associated to the non compartmental analysis. getGlobalObsIdToUse Get the global observation id used in both the compartmental and non compartmental analysis. getNCASettings Get the settings associated to the non compartmental analysis. setCASettings Get the settings associated to the compartmental analysis. setDataSettings Set the value of one or several of the data settings associated to the non compartmental analysis. setGlobalObsIdToUse Get the global observation id used in both the compartmental and non compartmental analysis. setNCASettings Set the value of one or several of the settings associated to the non compartmental analysis.

## Get the settings associated to the compartmental analysis

### Description

Get the settings associated to the compartmental analysis. Associated settings are:

 “weightingCA” (string) Type of weighting objective function. “pool” (logical) Fit with individual parameters or with the same parameters for all individuals. “initialValues” (list) list(param = value, …) value = initial value of individual parameter param. “blqMethod” (string) Method by which the BLQ data should be replaced.

### Usage

getCASettings(...)

### Arguments

[optional] (string) Name of the settings whose value should be displayed. If no argument is provided, all the settings are returned.

### Value

An array which associates each setting name to its current value.

setCASettings

## Not run:

getCASettings() # retrieve a list of all the CA methodology settings

getCASettings(“weightingca”,”blqmethod”) # retrieve a list containing only the value of the settings whose name has been passed in argument

## End(Not run)

Top of the page, PKanalix-R functions.

## Get the data settings associated to the non compartmental analysis

### Description

Get the data settings associated to the non compartmental analysis. Associated settings are:

 “urinevolume” (string) regressor name used as urine volume. “datatype” (list) list(“obsId” = string(“plasma” or “urine”). The type of data associated with each obsId: observation ID from data set.

### Usage

getDataSettings(...)

### Arguments

[optional] (string) Name of the settings whose value should be displayed. If no argument is provided, all the settings are returned.

### Value

An array which associates each setting name to its current value.

setNCASettings

## Not run:

getDataSettings() # retrieve a list of all the NCA methodology settings

getDataSettings(“urinevolume”) # retrieve a list containing only the value of the settings whose name has been passed in argument

## End(Not run)

Top of the page, PKanalix-R functions.

## Get the global observation id used in both the compartmental and non compartmental analysis

### Description

Get the global observation id used in both the compartmental and non compartmental analysis.

### Usage

getGlobalObsIdToUse(...)

### Value

the observation id used in computations.

setGlobalObsIdToUse

## Not run:

getGlobalObsIdToUse() #

## End(Not run)

Top of the page, PKanalix-R functions.

## Get the settings associated to the non compartmental analysis

### Description

Get the settings associated to the non compartmental analysis. Associated settings are:

 “administrationType” (list) list(key = “admId”, value = string(“intravenous” or “extravascular”)). admId Admninistration ID from data set or 1 if no admId column in the dataset. “integralMethod” (string) Method for AUC and AUMC calculation and interpolation. “linTrapLinInterp” = Linear trapezoidal linear, “linLogTrapLinLogInterp” = Linear log trapezoidal, “upDownTrapUpDownInterp” = Linear up log down, “linTrapLinLogInterp” = Linear trapezoidal linear/log. “partialAucTime” (list) The first element of the list is a bolean describing if this setting is used. The second element of the list is the value of the bounds of the partial AUC calculation interval. “blqMethodBeforeTmax” (string) Method by which the BLQ data before Tmax should be replaced. “blqMethodAfterTmax” (string) Method by which the BLQ data after Tmax should be replaced. “ajdr2AcceptanceCriteria” (list) The first element of the list is a boolean describing if this setting is used. The second element of the list is the value of the adjusted R2 acceptance criteria for the estimation of lambda_Z. “extrapAucAcceptanceCriteria” (list) The first element of the list is a boolean describing if this setting is used. The second element of the list is the value of the AUC extrapolation acceptance criteria for the estimation of lambda_Z. “spanAcceptanceCriteria” (list) The first element of the list is a boolean describing if this setting is used. The second element of the list is the value of the span acceptance criteria for the estimation of lambda_Z. “lambdaRule” (string) Main rule for the lambda_Z estimation. “timeInterval” (vector) Time interval for the lambda_Z estimation when “lambdaRule” = “interval”. “timeValuesPerId” (list) list(“idName” = idTimes,…): idTimes Observation times to use for the calculation of lambda_Z for the id idName. “nbPoints” (integer) Number of points for the lambda_Z estimation when “lambdaRule” = “points”. “maxNbOfPoints” (list) The first element of the list is a boolean describing if this setting is used. The second element of the list is the value maximum number of points to use for the lambda_Z estimation when “lambdaRule” = “R2” or “adjustedR2”. “startTimeNotBefore” (list) The first element of the list is a boolean describing if this setting is used. The second element of the list is the value minimum time value to use for the lambda_Z estimation when “lambdaRule” = “R2” or “adjustedR2”. “weightingNCA” (string) Weighting method used for the regression that estimates lambda_Z.

### Usage

getNCASettings(...)

### Arguments

[optional] (string) Name of the settings whose value should be displayed. If no argument is provided, all the settings are returned.

### Value

An array which associates each setting name to its current value.

setNCASettings

## Not run:

getNCASettings() # retrieve a list of all the NCA methodology settings

getNCASettings(“lambdaRule”,”integralMethod”) # retrieve a list containing only the value of the settings whose name has been passed in argument

## End(Not run)

Top of the page, PKanalix-R functions.

## Set the settings associated to the compartmental analysis

### Description

Get the settings associated to the compartmental analysis. Associated settings names are:

 “weightingCA” (string) Type of weighting objective function. Possible methods are “uniform”, “Yobs”, “Ypred”, “Ypred2” or “Yobs2” (default). “pool” (logical) If TRUE, fit with individual parameters or with the same parameters for all individuals if FALSE. FALSE (default). “initialValues” (list) list(param = value, …) value = initial value of individual parameter param. “blqMethod” (string) Method by which the BLQ data should be replaced. Possible methods are “zero”, “LOQ”, “LOQ2” or “missing” (default).

### Usage

setCASettings(...)

### Arguments

A collection of comma-separated pairs {settingName = settingValue}.

getCASettings

## Not run:

setCASettings(weightingCA = “uniform”, blqMethod = “zero”) # set the settings whose name has been passed in argument

setCASettings(initialValues = list(Cl=0.4, V=.5, ka=0.04) # set the paramters CL, V, and ka to .4, .5 and .04 respectively

## End(Not run)

Top of the page, PKanalix-R functions.

## Set the value of one or several of the data settings associated to the non compartmental analysis

### Description

Set the value of one or several of the data settings associated to the non compartmental analysis. Associated settings names are:

 “urinevolume” (string) regressor name used as urine volume. “datatype” (list) list(“obsId” = string(“plasma” or “urine”). The type of data associated with each obsId. Default “plasma”.

### Usage

setDataSettings(...)

### Arguments

A collection of comma-separated pairs {settingName = settingValue}.

getDataSettings

## Not run:

setDataSettings(“datatype” = list(“Y” =”plasma”)) # set the settings whose name has been passed in argument

## End(Not run)

Top of the page, PKanalix-R functions.

## Set the global observation id used in both the compartmental and non compartmental analysis

### Description

Get the global observation id used in both the compartmental and non compartmental analysis.

### Usage

setGlobalObsIdToUse(...)

### Arguments

(“id” string) the observation id from data section to use for computations.

getGlobalObsIdToUse

## Not run:

setGlobalObsIdToUse(“id”) #

## End(Not run)

Top of the page, PKanalix-R functions.

## Set the value of one or several of the settings associated to the non compartmental analysis

### Description

Set the value of one or several of the settings associated to the non compartmental analysis. Associated settings are:

### Usage

setNCASettings(...)

### Arguments

A collection of comma-separated pairs {settingName = settingValue}.

getNCASettings

## Not run:

setNCASettings(integralMethod = “LinLogTrapLinLogInterp”, weightingnca = “uniform”) # set the settings whose name has been passed in argument

setNCASettings(startTimeNotBefore = list(TRUE, 15)) # set the estimation of the lambda_z with points with time over 15

setNCASettings(timeValuesPerId = list(‘1’=c(4, 6, 8, 30), ‘4’=c(8, 12, 18, 24, 30))) # set the points to use for the lambda_z to time={4, 6, 8, 30} for id ‘1’ and ime={8, 12, 18, 24, 30} for id ‘4’

setNCASettings(timeValuesPerId = NULL) # set the points to use for the lambda_z to the default rule

## End(Not run)

Top of the page, PKanalix-R functions.

### 5.7.Description of the R functions associated to PKanalix preferences and project settings#

 getPreferences Get a summary of the project preferences. getProjectSettings Get a summary of the project settings. setPreferences Set the value of one or several of the project preferences. setProjectSettings Set the value of one or several of the settings of the project.

## Get project preferences

### Description

Get a summary of the project preferences. Preferences are:

 “relativePath” (bool) Use relative path for save/load operations. “threads” (int >0) Number of threads. “timeStamping” (bool)) Create an archive containing result files after each run. “dpi” (bool)) Apply high density pixel correction. “imageFormat” (string)) Image format used to save pkanalix graphics. “delimiter” (string)) Character use as delimiter in exported result files. “exportCharts” (bool)) Should graphics images be exported. “exportChartsData” (bool)) Should graphics data be exported.

### Usage

getPreferences(...)

### Arguments

[optional] (string) Name of the preference whose value should be displayed. If no argument is provided, all the preferences are returned.

### Value

An array which associates each preference name to its current value.

setGeneralSettings

## Not run:

getPreferences() # retrieve a list of all the general settings

getPreferences(“imageFormat”,”exportCharts”) # retrieve a list containing only the value of the preferences whose name has been passed in argument

## End(Not run)

Top of the page, PKanalix-R functions.

## Get project settings

### Description

Get a summary of the project settings. Associated settings are:

 “directory” (string) Path to the folder where simulation results will be saved. It should be a writable directory. “dataAndModelNextToProject” (bool)/td> Should data and model files be saved next to project. “grid” (int)/td> Number of points for the continuous simulation grid.

### Usage

getProjectSettings(...)

### Arguments

[optional] (string) Name of the settings whose value should be displayed. If no argument is provided, all the settings are returned.

### Value

An array which associates each setting name to its current value.

getProjectSettings

## Not run:

getProjectSettings() # retrieve a list of all the project settings

getProjectSettings(“directory”, “seed”) # retrieve a list containing only the value of the settings whose name has been passed in argument

## End(Not run)

Top of the page, PKanalix-R functions.

## Set preferences

### Description

Set the value of one or several of the project preferences. Preferences are:

 “relativePath” (bool) Use relative path for save/load operations. “threads” (int >0) Number of threads. “timeStamping” (bool) Create an archive containing result files after each run. “dpi” (bool) Apply high density pixel correction. “imageFormat” (string) Image format used to save pkanalix graphics. “delimiter” (string) Character use as delimiter in exported result files. “exportCharts” (bool) Should graphics images be exported. “exportChartsData” (bool) Should graphics data be exported.

### Usage

setPreferences(...)

### Arguments

A collection of comma-separated pairs {preferenceName = settingValue}.

getPreferences

## Not run:

setPreferences(exportCharts = FALSE, delimiter = “,”)

## End(Not run)

Top of the page, PKanalix-R functions.

## Set project settings

### Description

Set the value of one or several of the settings of the project. Associated settings are:

 “directory” (string) Path to the folder where simulation results will be saved. It should be a writable directory. “dataAndModelNextToProject” (bool) Should data and model files be saved next to project. “grid” (int) Number of points for the continuous simulation grid.

### Usage

setProjectSettings(...)

### Arguments

A collection of comma-separated pairs {settingName = settingValue}.

getProjectSettings

## Not run:

setProjectSettings(directory = “/path/to/export/directory”)

## End(Not run)

Top of the page, PKanalix-R functions.

### 6.FAQ#

#### Resolution and display

• OpenGL technology impact on remote access: the PKanalix interface uses OpenGL technology. Unfortunately, remote access using direct rendering is not compatible with OpenGL, as the OpenGL application sends instructions directly to the local hardware bypassing the target X server. As a consequence, PKanalix cannot be used with X11 forwarding. Instead, an indirect rendering should be used, where the remote application sends instructions to the X server which transfers them to the graphics card. It is possible to do that with ssh application, but it requires a dedicated configuration depending on the machine and the operating system. Other applications such as VNC or Remina can also be used for an indirect rendering.
• If the graphical user interface appears with too high or too low resolution, follow these steps:
• open PKanalix
• load any project from the demos
• in the menu, go to Settings > Preferences and disable the “High dpi scaling” in the Options.
• close PKanalix
• restart PKanalix

#### Regulatory

• Are NCA and CA analyses done with PKanalix accepted by the regulatory agencies like the FDA and EMA?  Yes.
• How to cite PKanalix? Please reference it as here
PKanalix version 2021R1. Antony, France: Lixoft SAS, 2021.
http://lixoft.com/products/PKanalix/

#### Running PKanalix

• On what operating systems does PKanalix run? PKanalix runs on Windows, Linux and MacOS platform.
• Is it possible to run PKanalix in command line? It is possible to run PKanalix from the R command line. A full R -api providing the full flexibility on running and modifying PKanalix projects is described here

#### Input data

• Does PKanalix support sparse data? No.
• Does PKanalix support drug-effect or PD models? No.
• What type of data can PKanalix handle? Extravascular, intravascular infusion, intravascular bolus for single-dose or steady-state plasma concentration and single-dose urine data can be used. See here.
• Can I give the concentration data and dosing data as separate files? No.
• Can I give the dosing information directly via the interface? No.
• Can I have BLQ data? Yes, see here.
• Can I define units? No.
• Can I define variables such as “Sort” and “Carry”? Yes, check here.
• It is possible to define several dosing routes within a single data set? Yes, check the ADMINISTRATION ID column.
• Can I use dose normalization to scale the dose by a factor? No, this must be done before using PKanalix.

#### Settings (options)

• How do I indicate the type of model/data? Extravascular versus intravascular is set in the Settings window. Single versus steady-state and infusion versus bolus are imputed based on the data set column-types.
• Can I exclude data with insufficient data? The “Acceptance criteria” settings allow the user to define acceptance thresholds. In the output tables, each individual is flagged according those criteria. The flags can be used to filter the results outside PKanalix.
• Can I set the data as being sparse? No, sparse data calculations are not supported.
• Which options are available for the lambda_z calculation? Points to be included in the lambda_z calculation can be defined using the adjusted R2 criteria (called best fit in Winonlin), the R2 criteria, a time range or a number of points. In addition, the a specific range per individual can be defined, as well as points to include or exclude. Check the lambda_z options here and here.
• Can I define several partial areas? No.
• Can I save settings as template for future projects? Not for settings. However the user can set the data set headers that should be recognized automatically in “Settings > Preferences”.
• Do you have a “slope selector”? Yes, check here for information on the “Check lambda_z“.
• Can I define a therapeutic response range? No.
• Can I set a user-defined weighting for the lambda_z? No. But most common options are available as a setting.
• Can I disable the calculation of lambda_z (curve stripping in Winnonlin)? Set to general rule to a time interval that does not contain any point. For a single individual, select a single point. This will lead to a failure of the lambda_z calculation and parameters relying on lambda_z will not be calculated.

#### Output results

• Can I change the name of the parameters? No. However the output files contain both PKanalix names and CDISC names.
• Can I export the result table? The result tables are automatically saved as text files in the result folder. In addition, result tables can be copy-pasted to Excel or Word using the copy button on the top right of the tables.
• Can I generate a report? No. But the result tables can be copy-pasted to Excel or Word using the copy button on the top right of the tables. Plots can be exported as images using in the menu “Export > Export plots” or by clicking on save button at the top of each plot.
• Can I choose which parameters to show in the result table and to export to the result folder file? No. All parameters are exported. The user can filter the table outside PKanalix afterwards.
• Are the calculation rules the same as in Winonlin? Yes.
• Can I define myself the result folder? By default, the result folder corresponds to the project name. However, you can define it by yourself. See here to see how to define it on the user interface.

#### Results

• What result files are generated by PKanalix?
• Can I replot the plots using another plotting software? Yes, if you go to the menu Export and click on “Export charts data”, all the data needed to reproduce the plots are stored in text files.
• When I open a project, my results are not loaded (message “Results have not been loaded due to an old inconsistent project”). Why? When loading a project, PKanalix checks that the project (i.e all the information saved in the .pkx file) being loaded and the project that has been used to generate the results are the same. If not, the error message is shown. In that case the results will not be loaded because they are inconsistent with the loaded project.

### 7.Case studies#

Different cases studies are presented here to show how to use Monolix and the MonolixSuite for Modeling and Simulation.

## Warfarin case study

This video case study shows a simple PK modeling workflow in Monolix2018, with the example of warfarin. It explains the main features and algorithms of Monolix, that guide the iterative process of model building: from validating the structural model to adjusting the statistical model step-by-step.
It includes picking a model from the libraries, choosing initial estimates with the help of population predictions, estimating parameters and uncertainty, and diagnosing the model with interactive plots and statistical tests.

## Tobramycin case study

This case study presents the modeling of the tobramycin pharmacokinetics, and the determination of a priori dosing regimens in patients with various degrees of renal function impairment. It takes advantage of the integrated use of Datxplore for data visualization, Mlxplore for model exploration, Monolix for parameter estimation and Simulx for simulations and best dosing regimen determination.
The case study is presented in 5 sequential parts, that we recommend to read in order: Part 1: Introduction, Part 2: Data visualization with Datxplore, Part 3: Model development with Monolix, Part 4: Model exploration with Mlxplore, and Part 5: Dosing regimen simulations with Simulx.

## Remifentanil case study

Remifentanil is an opioid analgesic drug with a rapid onset and rapid recovery time. It is used for sedation as well as combined with other medications for use in general anesthesia. It is given in adults via continuous IV infusion, with doses that may be adjusted to age and weight of patients.
This case-study shows how to use Monolix to build a population pharmacokinetic model for remifentanil in order to determine the influence of subject covariates on the individual parameters.

## Longitudinal Model-Based Meta-Analysis (MBMA) with Monolix Suite

Longitudinal model-based meta-analysis (MBMA) models can be implemented using the MonolixSuite. These models use study-level aggregate data from the literature and can usually be formulated as non-linear mixed-effects models in which the inter-arm variability and residual error are weighted by the number of individuals per arm. We exemplify the model development and analysis workflow of MBMA models in Monolix using a real data set for rheumatoid arthritis, following publication from Demin et al (2012). In the case study, the efficacy of a drug in development (Canakinumab) is compared to the efficacy of two drugs already on the market (Adalimumab and Abatacept). Simulations using Simulx were used for decision support to see if the new drug has a chance to be a better drug.

## Analysis of time-to-event data

Within the MonolixSuite, the mlxtran language allows to describe and model time-to-event data using a parametric approach. This page provides an introduction on time-to-event data, the different ways to model this kind of data, and typical parametric models. A library of common TTE models is also provided.

Two modeling and simulation workflows illustrate this approach, using two TTE data sets:

## Veralipride case study

Multiple peaking in plasma concentration-time curves is not uncommon, and can create difficulties in the determination of pharmacokinetic parameters.
For example, double peaks have been observed in plasma concentrations of veralipride after oral absorption. While multiple peaking can be explained by different physiological processes, in this case site-specific absorption has been suggested to be the major mechanism. In this webinar we explore this hypothesis by setting up a population PK modeling workflow with the MonolixSuite 2018.
The step-by-step workflow includes visualizing the data set to characterize the double peaks, setting up and estimating a double absorption model, assessing the uncertainty of the parameter estimates to avoid over-parameterization, and simulations of the model.