Block PK

Au modèle cinétique choisi dans le Block SUBROUTINE, correspond un certain nombre de paramètre cinétique qui doivent être listé dans ce Block.

paramètres PK classiques, variabilité inter-individuelle et inter-occasion, coding alternatif, paramètre additionnel (S), opérateurs logiques, paramètres contraints (entre 0 et 1) et option EXIT.

Des paramètres pharmacocinétiques classiques

Au minimum chaque paramètre cinétique est exprimé comme suit (modèle à 1 compartiment, absorption de 1er ordre):

CL = THETA(1)
V = THETA(2)
KA = THETA(3)

Theta(1), theta(2), theta(3) sont des variables dont les valeurs initiales (données dans le Block Theta) seront utilisés par l’algorythme pour trouver les valeurs estimées de CL, V et KA.

Des covariables peuvent être utilisées pour essayer d’expliquer la variabilité inter-individuelle des paramètres cinétiques.

Ex : Clairance = fc(poids) peut s’écrire:

CL = THETA(1) + THETA(2) * WT
ou
CL = THETA(1) + THETA(2) * (WT – 70)
ou
CL = THETA(1) * (WT / 70) ** THETA(2)
ou encore
CL = THETA(1) * WT / (THETA(2) + WT)

Rq : les noms des covariables utilisées doivent avoir au maximum 4 caractères!
NB: avec la méthode SAEM, il faut utiliser le MU Referencing

Variabilité inter-individuelle (Between Subject variability)

A chaque paramètre une variabilité inter-individuelle peut être estimées. Cette variabilité peut prendre le forme de plusieurs modèles d’erreur.

1. Additive

CL = THETA(1) + ETA(1)

2. Proportionnelle (constant coefficient of variation)

CL = THETA(1) * (1 + ETA(1))

3. Log normal

CL = THETA(1) * EXP(ETA(1))

NB: si vous utilisez (encore) $EST Method=FO, nonmem calculera une variabilité proportionnelle quand bien même votre code serait celui d’un modèle Log normal.

Si des covariables sont utilisées, il peut être plus lisible de découper en 2 lignes:

TVCL = THETA(1) + THETA(2) * AGE
CL = TVCL * EXP(ETA(1))

Variabilité inter-occasion:

A chaque paramètre cinétique, il est possible d’estimer une variabilité inter-occasion (IOV).

Imaginons une étude où les patients se présentent à 2 reprises. Une colonne OCC prenant la valeur 0 ou 1 permet dans la base de données de discerner les 2 périodes.

OCC2 = 1 – OCC
CL = THETA(1) * EXP(ETA(1) + ETA(2) * OCC + ETA(3)*OCC2)

ETA(1) est la variabilité inter-individuelle à quoi se rajoute la variabilité inter-occasion ETA(2) ou ETA(3) selon la période.

Dans le Block Omega, il faut entrer les valeurs initiales de ces 3 ETAs, en sachant que ETA(2) et ETA(3) ont une même variabilité (ex. 30% de CV) mais pas forcement la même valeur ce qui est précisé par la commande ‘SAME’.

$OMEGA 1.2
$OMEGA BLOCK(1) 0.5
$OMEGA BLOCK(1) SAME

Dans les résultats, ETA(2) et ETA(3) seront identiques (seul ETA(2) sera donné) et correspondent à l’IOV. Par contre, les IPRED seront différents.

Nouvelle manière de coder l’IOV:
$ABBR REPLACE ETA(OCC_CL)=ETA(2,3)

Implique que si OCC=1, eta(2) sera utilisé
et si OCC=2, eta(3) sera utilisé

$PK
CL=TVCL*EXP(ETA(1)+ETA(OCC_CL))
V =TVV*EXP(ETA(4))
KA=TVKA*EXP(ETA(5))
$OMEGA 0.1
$OMEGA BLOCK(1) 0.01
$OMEGA BLOCK(1) SAME
$OMEGA 0.1 ; eta_v
$OMEGA 0.1 ; eta_ka

Coding alternatif

Avec ADVAN1 et TRANS1, on peut coder

CL = THETA(1)
K = THETA(2)
V = CL/K
S1 = V

Sinon avec TRANS2:

CL = THETA(1)
V = THETA(2)
K=CL/V
S1 = V

Des paramètres additionnels

Fn
n: numéro du compartiment concerné
ex: F1
Si une dose est donnée en CMT 1 (voie orale) et en CMT 2 (iv) dans une étude, il est possible d’estimer la Biodisponibilité F.
F1=THETA(x)

D’une manière générale Fn est la fraction de dose du fichier de donnée qui est transférée dans le compartiment n.

Paramètre de lag time

Les quantités sont disponibles avec un délai.
ALAGn
La valeur de « n » est défini par le compartiment concerné.
ALAG1 si administration orale et retard d’apparition des concentrations plasmatiques.

Paramètres de mise à l’échelle (Scaling parameter)

Les quantités prédites dans les compartiments sont divisées par ces paramètres pour obtenir des concentrations.

Ils ne sont nécessaires que pour les compartiments où des concentrations sont directement observées (+++).

Ainsi, avec ADVAN3, le paramètre S2 du compartiment périphérique ne nécessite pas d’être analysé.

Chaque paramètre d’échelle qui n’est pas modélisé, est assumé être égal à 1 (les valeurs prédites sont des quantités).

Mise à l’échelle par une constante connue:

ex. Dose en mg et concentration ng/ml

La quantité (mg) sera divisée par S pour obtenir les concentrations (ng/ml = µg/L = mg/1000 L), d’où S s’exprime en kLitres. Pour que V soit exprimé en L et non en kL il faut diviser V par 1000.

soit S = V / 1000

ex. Dose en mg et concentration mg/L

S = V

Mise à l’échelle par un paramètre:

Si les données proviennent de 2 essais différents, avec un biais systématique, il peut être nécessaire de le modéliser

S = V si essai 1,

S = hV si essai 2.

h peut être estimé.

Input d’ordre 0 (Rn et Dn) :

Rn: paramètre permettant d’estimer le débit d’une injection dans le compartiment « n » avec un profil d’absorption d’ordre 0.

Dn: paramètre permettant d’estimer la durée d’absorption d’une administration dans le compartiment « n » avec un profil d’absorption d’ordre 0.

Voir également un exemple de base de données correspondante.

Exemple:

$PK
CL =THETA(1) * EXP(ETA(1))
V =THETA(2) * EXP(ETA(2))
D1 =THETA(3) * EXP(ETA(3))

Peut-être utilisé en alternatif à un modèle d’absorption de premier ordre.

…/…
IF, THEN, ENDIF et opérateurs logiques

AND et
OR or
NE non égal à
EQ égal à
LE inférieur ou égal (lower or equal than)
LT inférieur (lower than)
GE supérieur ou égal à (greater or equal than)
GT supérieur (greater than)

NB: ne pas inclure d’ETA dans une boucle IF-THEN-ELSE

Ex: 3 cas du plus simple au plus complexe

TYPE=1
IF (CMT.GT.1) TYPE=2

IF (CREA.GT.30) THEN TVCL=THETA(1)
ELSE TVCL=THETA(2)
ENDIF

IF (CAST.EQ.1) THEN
TVCL=THETA(1)
ENDIF
IF (CAST.EQ.2) THEN
TVCL=THETA(2)
ENDIF
IF (CAST.EQ.3) THEN
TVCL=THETA(3)
ENDIF
IF (CAST.GT.3) THEN
TVCL=THETA(4)
ENDIF

Option EXIT

Cette option oblige l’algorythme à abandonner une solution qui conduit à des valeurs spécifiées:
Exemple
IF (V1.GT.50) EXIT 1 100
IF (CL.GT.2) EXIT 2 200

Si l’algorythme passe par une valeur de V1 supérieure à 50, le message n°1 est envoyé, il s’agit du code 100
Le message suivant apparaît:
« PK SUBROUTINE: USER ERROR CODE = 100 »
Cela permet d’identifier une erreur ou une difficulté de convergence.

Paramètres contraints

Dans certaines situations nous avons besoin de contraindre un paramètre à être compris dans un intervalle de valeur.
Exemple:
un Emax doit être compris entre 0 et 100%

Une implémentation permet cette contrainte en prenant en compte la variabilité interindividuelle

si
LOGIT = THETA(1) + THETA(2)*WT + ETA(1)

ou si
LOGIT = THETA(1) + ETA(1)
IF (LOGIT.GT.100) LOGIT = 100.00
EMAX = EXP(LOGIT) / (1 + EXP(LOGIT))

Avec ce code, EMAX sera toujours entre 0 et 1 quelque soit la valeur d’ETA
Il n’est pas nécessaire de donner des limites à THETA

En revanche, il peut être utile de transformer THETA pour pouvoir l’interpréter:

THETAP(1) = EXP(THETA(1)) / (1 + EXP(THETA(1)))
ou ce qui est équivalent
THETAP(1) = 1 / (1 + EXP(-THETA(1)))