Model feature language (MFL)#

The MFL is a domain specific language designed to describe model features and sets of model features in a concise way. It can be used to describe model features for one single model or an entire space of model features, i.e. descriptions for multiple models. The basic building block of MFL is the feature description. A feature description consists of the name of a feature category followed by a comma separated list of arguments within parentheses. For example:

ABSORPTION(FO)

Each feature description describes one or multiple features of the same category, i.e. absorption, absorption delay, elimination, and distribution. Features of the same category are mutually exclusive and cannot be applied to the same model. Multiple model feature descriptions can be combined by separating them with either newline or a semi-colon.

The following two examples are equivalent:

ABSORPTION(FO);ELIMINATION(ZO)
ABSORPTION(FO)
ELIMINATION(ZO)

Option types#

MFL support the following types of options to feature descriptions:

Type

Example

Description

token or name

FO

The name of a feature within a category

number

1

A non-negative integer

range

0..2

A range of numbers (endpoints are included)

wildcard

*

All features of a category

array

[FO, ZO]

Multiple tokens or numbers

symbol

@IIV

A symbol with manual or automatic definition

Model features#

MFL support the following model features:

Category

Options

Description

ABSORPTION

INST, FO, ZO, SEQ-ZO-FO, WEIBULL

Absorption rate (instantaneous, first order, zero order, sequential zero order first order and Weibull)

ELIMINATION

FO, ZO, MM, MIX-FO-MM

Elimination rate (first order, zero order, Michaelis-Menten, mixed first order Michaelis-Menten)

PERIPHERALS

number, DRUG/MET

Number of peripheral compartments. If the peripheral compartment should be added to the drug compartment (default) and/or the metabolite compartment (if any). If DRUG/MET is omitted, it will be interpreted as DRUG. MET is only applicable to drug-metabolite models

TRANSITS

number, DEPOT/ NODEPOT

Number of absorption transit compartments and whether to keep the depot compartment

LAGTIME

OFF/ON

Absorption lagtime

COVARIATE

parameter, covariate, effect

Structural covariate effects (will always be added)

COVARIATE?

parameter, covariate, effect

Exploratory covariate effects (will be tested)

DIRECTEFFECT

LINEAR, EMAX, SIGMOID, STEP, LOGLIN

Direct effect PD models

EFFECTCOMP

LINEAR, EMAX, SIGMOID, STEP, LOGLIN

Effect compartment PD models

INDIRECTEFFECT

LINEAR, EMAX, SIGMOID , option

Indirect effect PD models. option can be either PRODUCTION or DEGRADATION

IIV

parameter, effect

(experimental) IIVs on parameters

IIV?

parameter, effect

(experimental) Exploratory IIVs on parameters

IOV

parameter, effect

(experimental) IOVs on parameters

IOV?

parameter, effect

(experimental) Exploratory IOVs on parameters

COVARIANCE

IIV/IOV, parameters

(experimental) Covariance between parameters

COVARIANCE?

IIV/IOV, parameters

(experimental) Exploratory covariances between parameters

Symbols#

The MFL supports certain automatically defined symbols that help with automating feature declaration. Currently, the only use of such symbols lies in declaring covariate effects via the syntax COVARIATE(@SYMBOL, …).

Symbol

Type

Description of automatic definition

@IIV

Parameter

All parameters with a corresponding IIV ETA

@PK

Parameter

All PK parameters

@PD

Parameter

All PD parameters

@PK_IIV

Parameter

All PK parameters with a corresponding IIV ETA

@PD_IIV

Parameter

All PD parameters with a corresponding IIV ETA

@ABSORPTION

Parameter

All PK absorption parameters

@ELIMINATION

Parameter

All PK elimination parameters

@DISTRIBUTION

Parameter

All PK distribution parameters

@BIOAVAIL

Parameter

All bioavailability parameters

@CONTINUOUS

Covariate

All continuous covariates

@CATEGORICAL

Covariate

All categorical covariates

New symbols can be manually defined via the syntax LET(SYMBOL, […]). The same syntax can be used to override the automatic definition of a symbol. For instance, to declare an explicit list of distribution parameters use LET(DISTRIBUTION, [V, K12, K21]).

Describe intervals#

It is possible to use ranges and arrays to describe the search space for e.g. transit and peripheral compartments.

To test 0, 1, 2 and 3 peripheral compartments:

TRANSITS(0)
TRANSITS(1)
TRANSITS(2)
TRANSITS(3)

This is equivalent to:

TRANSITS(0..3)

As well as:

TRANSITS([0, 1, 2, 3])

Redundant descriptions#

It is allowed to describe the same feature multiple times, however, this will not make any difference for which features are described.

ABSORPTION(FO)
ABSORPTION([FO, ZO])

This is equivalent to:

ABSORPTION([FO, ZO])

And:

PERIPHERALS(0..2)
PERIPHERALS(1)

Is equivalent to:

PERIPHERALS(0..2)

Examples#

Structural PK model#

An example of a search space for PK models with oral data:

ABSORPTION([ZO,SEQ-ZO-FO])
ELIMINATION([MM,MIX-FO-MM])
LAGTIME(ON)
TRANSITS([0, 1, 3, 10],*)
PERIPHERALS(0..1)

An example of a search space for PK models with IV data:

ELIMINATION([FO,MM,MIX-FO-MM])
PERIPHERALS([0..2])

Search through all available absorption rates:

ABSORPTION(*)

Allow all combinations of absorption and elimination rates:

ABSORPTION(*)
ELIMINATION(*)

Structural PD model#

Example for a PD model search space:

DIRECTEFFECT([linear, emax])
EFFECTCOMP(*)

Drug-metabolite#

Trying multiple drug-metabolite models with a peripheral compartment on the metabolite:

METABOLITE([PSC,BASIC]);PERIPHERALS([0,1],MET)

Covariates#

All covariate effects on parameters with IIV (exponential effects on continuous covariates and categorical effects on categorical covariates):

COVARIATE(@IIV, @CONTINUOUS, EXP)
COVARIATE(@IIV, @CATEGORICAL, CAT)

With fixed lists of covariates for which to add effects:

LET(CONTINUOUS, [AGE, WGT])
LET(CATEGORICAL, SEX)
COVARIATE(@IIV, @CONTINUOUS, *)
COVARIATE(@IIV, @CATEGORICAL, CAT)

All continuous covariate effects of WGT on distribution parameters:

COVARIATE(@DISTRIBUTION, WGT, *)

Variability#

Note

Currently under development and can be used experimentally in IIVSearch.

Specifying IIV on all PK parameters and covariances between them:

IIV(@PK,EXP);COVARIANCE(IIV,@IIV)

To specify which parameters explicitly and covariance between CL and VC:

IIV([CL,VC,MAT],EXP);COVARIANCE(IIV,[CL,VC])

Different types of effects can be specified for different parameters in a PKPD model:

IIV(@PK,EXP);IIV(@PD,ADD));COVARIANCE(IIV,@PK_IIV);COVARIANCE(IIV,@PD_IIV)