How to update your model to be compatible with the new Mlxtran V2 syntax ?

You have a Mlxtran model you used with Monolix 4.3.3 and older. In this case your model is using Mlxtran V1 syntax which is not compatible anymore with the current version of Monolix 2016R1. In order to continue using your model with Monolix 2016R1 you need to make some changes in the model syntax. These are very minor changes and, in the following, we show you how to convert your model from Mlxtran V1 to V2.

Why an evolution of Mlxtran ?

With the transition to Monolix 2016R1 we are introducing the new version (V2) Mlxtran syntax. We made sure that Monolix 2016 R1 is backwards compatible with the old V1 Mlxtran syntax. This means that all your previous models can be run with Monolix 2016R1 if this is needed. However, there are two critical limitations with V1 Mlxtran and we strongly advice you to adopt V2 Mlxtran syntax.

  • The first limitation is that you cannot edit V1 Mxltran models with Monolix 2016 R1. This means that if you want to change a model you must convert it to V2 syntax anyway.
  • The second limitation concerns the use of Mlxplore and Simulx after parameter estimation with Monolix 2016R1 (workflow). This will not be possible if you do not use V2 syntax in Monolix

What changed in the longitudinal model?

Addition of [LONGITUDINAL]

To define the file as a model, the block [LONGITUDINAL] must be added so that Monolix understands that the file contains a structural model. [LONGITUDINAL] should be placed at the beginning of the file or after the optional DESCRIPTION:.

Modification of the input definition

The declaration of the inputs is changed.

Modification of the parameter definition.

In the V1 syntax, the parameters were defined by “parameter=”. Now, in V2, they must be defined with “input=”.

Modification of the regressor definition

In the V1 syntax, the regressors were defined by “regressor=”. Now, in V2, the following syntax must be used:

1/ The name of the regressors have to be added in the inputs.
2/ Each regressor has to be declared in the following way “NameRegressor = {use=regressor}”
Note that the order of definition of the regressors in the input list must agree with the order of definition in the data set (X columns).

Modification of the observation definition

In the V1 syntax, the observations were defined by “OBSERVATION:”. Now, in V2, they must be defined with “DEFINITION:”.

Two examples

Here are two examples of models implemented with V1 for Monolix 4.3.3 and the correct translation to V2 syntax for 2016R1.

Turnover model for multiple doses.

In the warfarin demos, a turnover model for multiple doses is used. It writes

; Model using old V1 syntax
DESCRIPTION: Turnover model for multiple doses.

INPUT:
parameter =  {Tlag, ka, V, Cl, I_max, C50, Rin, kout}

EQUATION:
Cc = pkmodel(Tlag, ka, V, Cl)
E_0 = Rin/kout
ddt_E = Rin*(1-I_max*Cc/(Cc+C50)) - kout*E

OBSERVATION:
Concentration = {type=continuous, prediction=Cc, errorModel=combined1}
PCA = {type=continuous, prediction=E, errorModel=constant}

OUTPUT:
output = {Concentration, PCA}

In this case, one has to modify the input and observation definition. Thus, the model writes in the new V2 syntax

; Model using new V2 syntax
DESCRIPTION: Turnover model for multiple doses.

[LONGITUDINAL]
input =  {Tlag, ka, V, Cl, I_max, C50, Rin, kout}

EQUATION:
Cc = pkmodel(Tlag, ka, V, Cl)
E_0 = Rin/kout
ddt_E = Rin*(1-I_max*Cc/(Cc+C50)) - kout*E

DEFINITION:
Concentration = {type=continuous, prediction=Cc, errorModel=combined1}
PCA = {type=continuous, prediction=E, errorModel=constant}

OUTPUT:
output = {Concentration, PCA}

Sequential PK/PD model – Individual PK parameters have been estimated first, they are defined as regression variables.

In the warfarin demos, a turnover model for multiple doses is used. It writes

; Model using old V1 syntax
DESCRIPTION: Sequential PK/PD model.
Individual PK parameters have been estimated first, they are defined as regression variables.

INPUT:
parameter =  {Imax, C50, Rin, kout}
regressor =  {Tlag, ka, V, Cl}

EQUATION:
Cc = pkmodel(Tlag,ka,V,Cl)
E_0 = Rin/kout
ddt_E= Rin*(1-Imax*Cc/(Cc+C50)) - kout*E

OUTPUT:
output = E

In this case, one has to modify the input definition. Thus, the model writes in the new V2 syntax

; Model using new syntax
DESCRIPTION: Sequential PK/PD model.
Individual PK parameters have been estimated first, they are defined as regression variables.

[LONGITUDINAL]
input = {Imax, C50, Rin, kout, Tlag, ka, V, Cl}
Tlag = {use = regressor}
ka = {use = regressor}
V = {use = regressor}
Cl = {use = regressor}

EQUATION:
Cc = pkmodel(Tlag,ka,V,Cl)
E_0 = Rin/kout
ddt_E= Rin*(1-Imax*Cc/(Cc+C50)) - kout*E

OUTPUT:
output = E