Administration and treatment design

By administration, we refer to one or several dose administrations via the same route (iv, oral, etc). The times, amounts, rates and the target or administration adm identifier can be defined by the user. By treatment, we refer to a combination of elementary administrations. Both administrations and treatments are defined in the <DESIGN> section.

Definition of administrations

 

Introduction

To explore treatments in MlxPlore, the user can define drug administrations. It must be implemented in the subsection [ADMINISTRATION] in the section <DESIGN>. The goal is to be able to define, the time(s), the amount(s), the rate(s), and the type or the target of the administration. Here is the way to define all these parameters :

  • Timing: The drug administration’s time(s) are defined by the keyword time. You can define either a single time with time=0 or a list of times with time={0,2,6} for irregularly spaced doses or time=1:2:7 (without curly braces) for regularly spaced doses.
  • Amount: The drug’s amount is defined by the keyword amount. If the amount is the same for all times, you can give the amount only once as amount=100. To define a different dose for each time, use a list as amount={100, 50, 25}.
  • Infusion rate/duration: The drug’s administration rate (if applicable) is defined by the keyword rate. The rate corresponds to the speed of administration. Thus, for a given rate, the drug is administrated during a time tinf=amount/rate. The rate keyword is optional. If not defined, the rate is infinitely fast, which corresponds to a bolus administration. Instead of the administration rate, the administration duration can also be given, using the keyword tinf.  Again, either single values or a list can be given, for instance: rate=2.5, rate={7,10}, tinf=40, tinf={1,4,9,10}.
  • Target/administration identifier: The target of the administration is defined by the keyword target. It corresponds to the name of the component of the ODE system that receives the input. When using administrations on ODEs, you have to make sure the target is one of the variable into consideration. If the target does not correspond to a component, then the administration does not occur. Alternatively, the user can define an administration identifier via the keyword type. The administration is then associated with the administration macro of the model having the same identifier. One could for instance write target=Ac or type=1. Lists are not allowed for target and type, yet the treatments allow to define combinations of administrations.

Examples of the <DESIGN> section

<DESIGN>
[ADMINISTRATION]
admin1 = {time=5, amount=1, target=Ad}
admin2 = {time=0:1:10, amount=1, type=1, rate = 0.5}
admin3 = {time={0,5,7}, amount={10,15,10}, target=Ad, tinf=1}

Example of a full Mlxtran file for Mlxplore

To illustrate an administration, we propose an example of a one compartmental model with a first order absorption model (with an absorption rate ka) and a linear elimination (with a clearance Cl from the central compartment) and several types of administration (bolus and infusion). The amount of drug in the depot compartment is denoted Ad, while the amount in the central compartment of volume V is Ac. We look at the concentration Cc=Ac/V in the central compartment as an output. This model is implemented in the file singledose.mlxplore.mlxtran

<MODEL>
[LONGITUDINAL]
input = {ka, V, Cl}

EQUATION:
t0 = 0
Ad_0 = 0
Ac_0 = 0

ddt_Ad = -ka*Ad 
ddt_Ac = ka*Ad -Cl/V*Ac
Cc = Ac/V

<DESIGN>
[ADMINISTRATION]
admin_bolus    = {time=5, amount=1, target=Ad}
admin_infusion = {time=5, amount=1, target=Ad, rate = 0.5}

<PARAMETER>
ka = 1
V = 10
Cl = .5

<OUTPUT>
grid = 0:.05:20
list = {Cc}

The results of the exploration of this model are presented in the following figure. We can see the two different administrations and the impact of the rate on the output. The “admin_bolus” is displayed in orange, while the “admin_infusion” is displayed in blue.

mlxplore_singledose

Best practices

  • No computation in the definition of the administration is allowed. It is then not possible to define an amount with a sum (ex. amount=1+1 or amount=1*2). The same applies for the other keywords.
  • When defining the times as time=t1:dt:tn, dt must be strictly positive.
  • If the amount, rate or tinf is defined via a list, the length of the list must agree with the number of doses defined with the time keyword.
  • The definition of rate and tinf are mutually exclusive.
  • The definition of target and type are mutually exclusive.
  • The identifiers following the type keyword should be integers.

 

Best practices Ex. 1 : Variations on multiple dosing

Three variations of multiple dosing are used in the following example, where the same model is used. This model is implemented in the file mlxplore_multipledose.txt and the only difference with the previous example is the [ADMINISTRATION] subsection, where the previous administration is replaced by

[ADMINISTRATION]
adm_t = {time={2, 7, 12}, amount=1, target =Ad, rate=1}
adm_t_am = {time={2, 7, 12}, amount={1,1,1}, target =Ad, rate=.5}
adm_t_am_rate = {time=2:5:15, amount={1,1,1}, target =Ad, rate = {4, 2, 1}}

The three results are shown on the following figure. adm_t, adm_t_am and adm_t_am_rate are presented in blue, orange and green respectively.
mlxplore_multidose

Definition of treatments

 

Introduction

A treatment is a combination of administrations, such that administrations needs to be defined first, before treatments can be defined. Treatments must be implemented in the subsection [TREATMENT] of the section <DESIGN> of a script Mlxtran. Treatments are for instance useful if doses are administrated via different routes (iv, oral, etc) to an individual. In this case, you define first the administrations (iv and oral for instance) and then combine them in a treatment. The syntax is straighforward: treat1={adm1, adm2, ...}. The treatment section is optional.

Example

To illustrate the use of treatments, we reuse the same model as above.

In this example, three administrations are defined:

  • admAd1 : unitary amount with target Ad, each 12h,
  • admAd2 : twice the dosage of admAd1 but each 24h,
  • admAc :  amount of .25 in the central compartment for Ac each 24h,

and we combine the administrations in two treatments:

  • trtRef : simply the administration admAd1
  • trtComb : the combination of administrations admAd2 and admAc

With that definition, we are able to compare treatments that can have several dosages, timings, but more importantly targets and types. This model is implemented in the file mlxplore_treat.txt

<MODEL>
[LONGITUDINAL]
input = {ka, V, Cl}

EQUATION:
t0 = 0
Ad_0 = 0
Ac_0 = 0

ddt_Ad = -ka*Ad 
ddt_Ac = ka*Ad -Cl/V*Ac
Cc = Ac/V

<DESIGN>
[ADMINISTRATION]
admAd1 = {time=0:12:168, amount=1, target=Ad}
admAd2 = {time=0:24:168, amount=1,  target=Ad}
admAc = {time=0:12:168, amount=.5,  target=Ac}

[TREATMENT]
trtRef = {admAd1}
trtComb = {admAd2, admAc}

<PARAMETER>
ka = .1
V = 10
Cl = 1

<OUTPUT>
grid=0:.05:168
list = {Cc}

The results of the treatments are proposed in the following figure. The treatment “trtRef” is in orange, while “trtComb” is in blue.

mlxplore_treat

Best practices

  • If no dedicated subsection [TREATMENT] is defined by the user, we define in the interface as many treatments as administrations and explore all of them.
  • If a subsection [TREATMENT] is defined, and an administration is defined but not used in the treatments, this administration will not be applied.
  • We advise our users to define all the administrations they want to explore and to define the subsection [TREATMENT] with a smaller number of treatments. Like that, you can explore each treatment and make your exploration much simpler.