# Introduction: model structure for Monolix

## Structural model

In Monolix, the model code defined in the “Structural model” tab (external .txt file loaded into Monolix or model selected from a library) contains only the structural part of the model in a single [LONGITUDINAL] section.

The [LONGITUDINAL] section is itself divided into blocks, which allows to define different types of variables in different ways. Here are the possible blocks and variable lists in that section:

**DESCRIPTION:**(optional): block to put comments on the model**input**(mandatory): list of input parameters**PK:****EQUATION:**(optional): block were ODEs and DDES can be defined, as well as mathematical expressions (e.g parameter transformations)**DEFINITION:****OUTPUT:**(mandatory): block indicating the output of the model**output**(mandatory): list of output parameters included in the OUTPUT block.

In all blocks, it is possible to use:

Reserved keywords of the Mlxtran language cannot be used as names for other parameters. Mlxtran is a declarative language, not an imperative language. Therefore equations are mathematical definitions rather than a series of instructions.

### Inputs

In Monolix, the input = { } list of the [LONGITUDINAL] section declares the individual parameters and the regressors.

```
[LONGITUDINAL]
input = {ka, V, Cl}
```

For regressors, the regressor status must be specified using the following syntax, for instance for two regressors called `regvar1`

and `regvar2`

. One line per regressor is necessary. As a reminder, in Monolix, the regressors are mapped to the regressor columns of the data set by declaration order (first column tagged as regressor mapped to the first regressor appearing in the input list).

```
[LONGITUDINAL]
input = {..., regvar1, regvar2}
regvar1 = {use=regressor}
regvar2 = {use=regressor}
```

**Example:**

In this example, ka, V, Cl, Emax and EC50 are individual parameters and E0 is declared as a regressor and will be read from the first data set column tagged as regressor.

```
[LONGITUDINAL]
input = {ka, V, Cl, E0, Emax, EC50}
E0 = {use = regressor}
```

### Outputs

In Monolix, the OUTPUT: block declare the variables which will be mapped to the observations in the data set via the `output={}`

list, and the additional variables recorded in the output tables via the `table={}`

list. The outputs are mapped to the observation ids of the data set via the mapping panel in the Monolix GUI. The variables in the `table={}`

statement are outputted in the result folder of Monolix.

**Example:**

```
OUTPUT:
output = {Conc, Effect}
table = {Ap, T12}
```

### Library of models and examples

The MonolixSuite contains libraries of pre-written structural models which can be directly selected via the GUI in Monolix:

PK: typical pharmacokinetics models with several types of administrations and 1 to 3 compartments

PK/PD: joint PK/PD model with direct effect, effect compartment or turnover

TMDD: target mediated drug disposition models

Parent-Metabolite models

TTE: time-to-event models

Count: models for count data

TGI: tumor growth and tumor growth inhibition models

Examples of common models which are not (yet) in the libraries are also given here: Advanced models

## Statistical model

In Monolix the statistical part of the model (covariate effects, parameter distributions and error model) is defined through the graphical user interface. Then when saving a Monolix project, the statistical part of the model is automatically written in the .mlxtran project file using mlxtran language, divided into three parts:

The observation (error) model: defined inside the DEFINITION: block below the [LONGITUDINAL] section.

The individual model: describes the distributions for the individual parameters, correlation structure and covariate effects, defined inside the [INDIVIDUAL] section.

The covariates defined in the project: described inside the [COVARIATE] section.

#### Example

Here is the description of the full model (structural and statistical) corresponding to the Monolix demo 1.1.libraries_of_models/theophylline_project.mlxtran, automatically saved by Monolix inside the <MODEL> part of the theophylline_project.mlxtran file:

```
<MODEL>
[COVARIATE]
input = {WEIGHT, SEX}
SEX = {type=categorical, categories={'F', 'M'}}
[INDIVIDUAL]
input = {ka_pop, omega_ka, V_pop, omega_V, Cl_pop, omega_Cl}
DEFINITION:
ka = {distribution=logNormal, typical=ka_pop, sd=omega_ka}
V = {distribution=logNormal, typical=V_pop, sd=omega_V}
Cl = {distribution=logNormal, typical=Cl_pop, sd=omega_Cl}
[LONGITUDINAL]
input = {a, b}
file = 'lib:oral1_1cpt_kaVCl.txt'
DEFINITION:
CONC = {distribution=normal, prediction=Cc, errorModel=combined1(a, b)}
```

Note that when exporting the model from Monolix to Simulx, this full model then appears in the interface of Simulx: