Difference between revisions of "Models"

From Popix
Jump to navigation Jump to search
 
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
==''Introduction''==
+
=='''Introduction'''==
  
==''Modelling the individual parameters''==
+
=='''Modelling the individual parameters'''==
  
====''Introduction''====
+
===''Introduction''===
====''Covariates''====
+
===''Covariates''===
====''Levels of variability''====
+
===''Levels of variability''===
  
  
==''Modelling the observations''==
 
====''Introduction''====
 
====''Continuous data''====
 
====''Categorical data''====
 
====''Count data''====
 
====''Survival data''====
 
====''Joint models''====
 
  
\newpage
 
\section{Dynamical systems driven by ODEs}
 
\subsection{Autonomous dynamical systems}
 
\input{models/dynamicalSystem/dynamicalSystem1}
 
\subsection{Dynamical systems with source terms}
 
\input{models/dynamicalSystem/dynamicalSystem2}
 
  
\newpage
+
=='''Modelling the observations'''==
\section{Extensions}
+
 
\subsection{Mixture models}
+
===''Introduction''===
\subsection{Hidden Markov models}
+
===''Continuous data''===
\subsection{SDE based models}
+
===''Categorical data''===
\subsection{Modelling the population parameters}
+
===''Count data''===
\subsection{Modelling the covariates}
+
===''Survival data''===
 +
===''Joint models''===
 +
 
 +
 
 +
 
 +
==''Dynamical systems driven by ODEs''==
 +
 
 +
==='''Autonomous dynamical systems'''===
 +
 
 +
Consider a time-varying system $A(t)=(A_1(t),A_2(t),\ldots A_J(t))$ defined by a system of Ordinary Differential Equations (ODE)
 +
 
 +
\begin{equation}
 +
\label{ode1_model}
 +
\dot{A} = F(A(t))
 +
\end{equation}
 +
 
 +
where $\dot{A}(t)$ denotes the vector of derivatives of $A(t)$ with respect to $t$:
 +
\begin{equation}
 +
\label{ode2_model}
 +
\left\{
 +
\begin{array}{lll}
 +
  \dot{A}_1(t) & = & F_1(A(t)) \\
 +
  \dot{A}_2(t) & = & F_2(A(t)) \\
 +
  \vdots & \vdots & \vdots \\
 +
  \dot{A}_L(t) & = & F_L(A(t))
 +
\end{array}
 +
\right.
 +
\end{equation}
 +
 
 +
Notations:
 +
# let $A_0 = A(t_0)$ be the initial condition of the system defined at the initial time $t_0$,
 +
#  let $A^{\star}$ be the solution of the system at equilibrium: $F(A^{\star}) =0$
 +
 
 +
 
 +
====''A basic model''====
 +
 
 +
We assume here that there is no input:
 +
\begin{eqnarray*}
 +
A(t_0) &= &A_0  \\
 +
\dot{A}(t) &= &F(A(t)) \ , \ t \geq t_0
 +
\end{eqnarray*}
 +
 
 +
 
 +
{| align=center
 +
| <u>Example:</u>  A viral kinetic (VK) model.
 +
 
 +
In this example, the data file contains the viral load:   
 +
 
 +
 
 +
 
 +
||
 +
      {|                                                         
 +
      ! align="left"| ID
 +
      ! TIME
 +
      ! VL
 +
      |-
 +
      |1
 +
      | -5
 +
      |6.5
 +
      |-
 +
      |1
 +
      | -2
 +
      |7.1
 +
      |-
 +
      |1
 +
      |1
 +
      |6.3
 +
      |-
 +
      |1
 +
      |5
 +
      |4.2
 +
      |-
 +
      |1
 +
      |12
 +
      |2.1
 +
      |-
 +
      |1
 +
      |20
 +
      |0.9
 +
      |-
 +
      |$\vdots$
 +
      |$\vdots$
 +
      |$\vdots$
 +
      |}
 +
    |}
 +
 +
 
 +
 
 +
 
 +
Consider a basic VK model with $A=(\it{N},\it{I},\it{V})$ where $N$ is the number of non infected target cells, $C$ the number of infected target cells and $V$ the number of virus.
 +
 
 +
After infection  and before treatment, the  dynamics of the system is described by this ODE system:
 +
\begin{equation}
 +
\label{vk1}
 +
\left\{
 +
\begin{array}{lll}
 +
  \dot{N}(t) & = & s - \beta \it{N}(t) \it{V}(t) - d\it{N}(t)  \\
 +
  \dot{I}(t) & = & \beta \it{N}(t)\it{V}(t) - \delta \it{I}(t) \\
 +
  \dot{V}(t) & = & p \it{I}(t) - c \it{V}(t)
 +
\end{array}
 +
\right.
 +
\end{equation}
 +
The  equilibrium state of this system is $\A^{\star} = $(N^^{\star} , \I^{\star} , \V^{\star})$.
 +
where
 +
\begin{equation}
 +
\label{eq1}
 +
\nitc^\star = \frac{\delta \, c}{ \beta \, p}  \quad ; \quad
 +
\itc^\star = \frac{s - d\,\nitc^\star}{ \delta} \quad ; \quad
 +
\vl^\star = \frac{ p \, \itc^\star }{c}.
 +
\end{equation}
 +
 
 +
Assume that the system has reached the equilibrium state $\As$ when the treatment starts at time $t_0=0$.
 +
The treatment  inhibits the infection of the target cells and blocks the production of virus. The dynamics of the new system is described with this new ODE system:
 +
\begin{equation}
 +
\label{vk2}
 +
\left\{
 +
\begin{array}{lll}
 +
  \dA{\nitc}{} & = & s - \beta(1-\eta) \, \nitc(t) \, \vl(t) - d\,\nitc(t)  \\
 +
  \dA{\itc}{} & = & \beta(1-\eta) \, \nitc(t) \, \vl(t) - \delta \, \itc(t) \\
 +
  \dA{\vl}{} & = & p(1-\varepsilon) \, \itc(t) - c \, \vl(t)
 +
\end{array}
 +
\right.
 +
\end{equation}
 +
where $0<\varepsilon <1$ and $0 < \eta < 1$.
 +
 
 +
The initial condition and the dynamical system are described in the MDL (in a block \verb"$EQUATION" with MLXTRAN):
 +
 
 +
\hspace*{4cm}
 +
\begin{minipage}[b]{10cm}
 +
\begin{verbatim}
 +
$EQUATION
 +
T_0 = 0
 +
N_0 = delta*c/(beta*p);
 +
I_0 = (s-d*N)/delta
 +
V_0 = p*I/c
 +
DDT_N = s - beta*(1-eta)*N*V - d*N
 +
DDT_I = beta*(1-eta)*N*V - delta*I
 +
DDT_V = p*(1-epsilon)*I - c*V
 +
\end{verbatim}
 +
\end{minipage}
 +
 
 +
\noindent{\bf Remark1:} Here,  \verb"T_0 = 0" means that the system is constant and is $\As$, defined in the script by  \verb"(N_0, I_0, V_0)", for any $t<0$.
 +
 
 +
\noindent{\bf Remark2:} If the initial condition is not given in the model, it is assumed to be 0.
 +
 
 +
\subsubsection{Piecewise defined dynamical systems}
 +
 
 +
 
 +
More generally, we can consider input-less systems which are piecewise defined: there exists a sequence of times $t_0< t_1< ...<t_K$ and functions $F^{(1)}, F^{(2)},\ldots,F^{(K)}$ such that
 +
\begin{eqnarray*}
 +
A(t_0) &= &A_0  \\
 +
\dA{A}{} &= &F_k(A(t)) \ , \ t_{k-1} \leq t \leq t_{k}
 +
\end{eqnarray*}
 +
 
 +
\noindent \underline{Example}:  viral kinetic model. We assume here that a first treatment which blocks the production of virus starts first at time $T_{Start1}$, then a second treatment which inhibits the infection of the target cells starts at time $T_{Start2}$. Both treatments stop at time $T_{Stop}$.
 +
 
 +
The values of the switching times $(T_{Start1},T_{Start2},T_{Stop})$ are part of the data and then should be contained in the datafile itself. Using the NONMEM format for example, a column \texttt{EVENT} is necessary in the dataset to describe this information (\texttt{EVENT} is an extension of the \texttt{EVID} (Event Identification) column used by NONMEM and which is limited to some very specific events). In the following example, $T_{Start1}=0$ is used as the reference time, $T_{Start2}=20$ and $T_{Stop}=200$:
 +
 
 +
\hspace*{4cm}
 +
\texttt{
 +
\begin{tabular}{cccc}
 +
  ID & TIME & VL & EVENT  \\
 +
  1 & -5 & 6.5 & . \\
 +
  1 & -2 & 7.1 & . \\
 +
1 & 0 & . & Start1 \\
 +
1 & 5 & 5.2 & . \\
 +
  \vdots & \vdots & \vdots & \vdots \\
 +
  1 & 18 & 4.6 & . \\
 +
  1 & 20 & . & Start2 \\
 +
  1 & 25 & 2.3 & . \\
 +
  \vdots & \vdots & \vdots & \vdots \\
 +
  1 & 175 & 1.4 & . \\
 +
  1 & 200 & . & Stop \\
 +
  1 & 250 & 2.8 & . \\
 +
  \vdots & \vdots & \vdots & \vdots
 +
\end{tabular}
 +
}
 +
 
 +
We will consider the same viral kinetics model defined above. This system is now piecewise defined:
 +
 
 +
\begin{itemize}
 +
\item  before $T_{Start1}$, $A(t) = \As$, where $\As$ is the equilibrium state defined in (\ref{eq1})
 +
\item between $T_{Start1}$ and $T_{Start2}$,
 +
\begin{equation}
 +
\label{vk3}
 +
\left\{
 +
\begin{array}{lll}
 +
  \dA{\nitc}{} & = & s - \beta \, \nitc(t) \, \vl(t) - d\,\nitc(t)  \\
 +
  \dA{\itc}{} & = & \beta \, \nitc(t) \, \vl(t) - \delta \, \itc(t) \\
 +
  \dA{\vl}{} & = & p(1-\varepsilon) \, \itc(t) - c \, \vl(t)
 +
\end{array}
 +
\right.
 +
\end{equation}
 +
\item between $T_{Start2}$ and $T_{Stop}$,  the system is governed by the ODES described in (\ref{vk2})
 +
$$
 +
\left\{
 +
\begin{array}{lll}
 +
  \dA{\nitc}{} & = & s - \beta(1-\eta) \, \nitc(t) \, \vl(t) - d\,\nitc(t)  \\
 +
  \dA{\itc}{} & = & \beta(1-\eta) \, \nitc(t) \, \vl(t) - \delta \, \itc(t) \\
 +
  \dA{\vl}{} & = & p(1-\varepsilon) \, \itc(t) - c \, \vl(t)
 +
\end{array}
 +
\right.
 +
$$
 +
\item after $T_{Stop}$, the system smoothly returns to its original state governed by the ODES described in (\ref{vk1})
 +
\begin{equation}
 +
\label{vk4}
 +
\left\{
 +
\begin{array}{lll}
 +
  \dA{\nitc}{} & = & s - \beta (1-\eta \, e^{-k_1 (t-T_{Stop})})\, \nitc(t) \, \vl(t) - d\,\nitc(t)  \\
 +
  \dA{\itc}{} & = & \beta (1-\eta \, e^{-k_1 (t-T_{Stop})}) \, \nitc(t) \, \vl(t) - \delta \, \itc(t) \\
 +
  \dA{\vl}{} & = & p(1-\varepsilon\, e^{-k_2 (t-T_{Stop})}) \, \itc(t) - c \, \vl(t)
 +
\end{array}
 +
\right.
 +
\end{equation}
 +
\end{itemize}
 +
We have seen that the information about switching times is given in the data set.
 +
The different dynamical systems are described in the MDL (in a block \verb"$EQUATION" and using the statement \verb"SWITCH" with MLXTRAN).
 +
We only show the blocks \verb"$VARIABLES" and \verb"$EQUATION" of the code:
 +
 
 +
\hspace*{2cm}
 +
\begin{minipage}[b]{10cm}
 +
\begin{verbatim}
 +
$VARIABLES  ID, TIME, VL use=DV, EVENT list=(Start1, Start2, Stop)
 +
 
 +
$EQUATION
 +
 
 +
SWITCH
 +
  CASE T < T_Start1
 +
    N = delta*c/(beta*p);
 +
    I = (s-d*N)/delta
 +
    V = p*I/c
 +
 
 +
 
 +
  CASE T_Start1 < T < T_Start2
 +
    DDT_N = s - beta*N*V - d*N
 +
    DDT_I = beta*N*V - delta*I
 +
    DDT_V = p*(1-epsilon)*I - c*V
 +
 
 +
  CASE T_Start2 < T < T_Stop
 +
    DDT_N = s - beta*(1-eta)*N*V - d*N
 +
    DDT_I = beta*(1-eta)*N*V - delta*I
 +
    DDT_V = p*(1-epsilon)*I - c*V
 +
 
 +
  CASE T > T_Stop
 +
    DDT_N = s - beta*(1-eta*exp(-k1*(T-T_Stop)))*N*V - d*N
 +
    DDT_I = beta*(1-eta*exp(-k1*(T-T_Stop)))*N*V - delta*I
 +
    DDT_V = p*(1-epsilon*exp(-k2*(T-T_Stop)))*I - c*V
 +
END
 +
\end{verbatim}
 +
\end{minipage}
 +
 
 +
\noindent{\bf Remark 1:} Here, \verb"EVENT" is a reserved variable name. Then, the information in the column \verb"EVENT" is recognized as a succession of events. Furthermore, the times of the events \verb"Start1", \verb"Start2" and \verb"Stop" are automatically created as \verb"T_Start1", \verb"T_Start2" and \verb"T_Stop".
 +
 
 +
\noindent{\bf Remark 2:} In this particular example, the dynamical system is described by  parameters $\beta$ and $p$ whose definition switches. Then, the same model could be encoded as follows:
 +
 
 +
\hspace*{2cm}
 +
\begin{minipage}[b]{10cm}
 +
\begin{verbatim}
 +
$EQUATION
 +
 
 +
T_0 = T_Start1
 +
N_0 = delta*c/(beta*p);
 +
I_0 = (s-d*N)/delta
 +
V_0 = p*I/c
 +
 
 +
SWITCH
 +
  CASE T_Start1 < T < T_Start2
 +
    be = beta
 +
    pe = p*(1-epsilon)
 +
 
 +
  CASE T_Start2 < T < T_Stop
 +
    be = beta*(1-eta)
 +
    pe = p*(1-epsilon)
 +
 
 +
  CASE T > T_Stop
 +
    be = beta*(1-eta*exp(-k1*(T-T_Stop)))
 +
    pe = p*(1-epsilon*exp(-k2*(T-T_Stop)))
 +
END
 +
 
 +
DDT_N = s - be*N*V - d*N
 +
DDT_I = be*N*V - delta*I
 +
DDT_V = pe*I - c*V
 +
\end{verbatim}
 +
\end{minipage}
 +
 
 +
==='''Dynamical systems with source terms'''===
 +
 
 +
 
 +
==''Extensions''==
 +
==='''Mixture models'''===
 +
==='''Hidden Markov models'''===
 +
==='''SDE based models'''===
 +
==='''Modelling the population parameters'''===
 +
==='''Modelling the covariates'''===

Latest revision as of 17:09, 21 January 2013

Introduction

Modelling the individual parameters

Introduction

Covariates

Levels of variability

Modelling the observations

Introduction

Continuous data

Categorical data

Count data

Survival data

Joint models

Dynamical systems driven by ODEs

Autonomous dynamical systems

Consider a time-varying system $A(t)=(A_1(t),A_2(t),\ldots A_J(t))$ defined by a system of Ordinary Differential Equations (ODE)

\begin{equation} \label{ode1_model} \dot{A} = F(A(t)) \end{equation}

where $\dot{A}(t)$ denotes the vector of derivatives of $A(t)$ with respect to $t$: \begin{equation} \label{ode2_model} \left\{ \begin{array}{lll} \dot{A}_1(t) & = & F_1(A(t)) \\ \dot{A}_2(t) & = & F_2(A(t)) \\ \vdots & \vdots & \vdots \\ \dot{A}_L(t) & = & F_L(A(t)) \end{array} \right. \end{equation}

Notations:

  1. let $A_0 = A(t_0)$ be the initial condition of the system defined at the initial time $t_0$,
  2. let $A^{\star}$ be the solution of the system at equilibrium: $F(A^{\star}) =0$


A basic model

We assume here that there is no input: \begin{eqnarray*} A(t_0) &= &A_0 \\ \dot{A}(t) &= &F(A(t)) \ , \ t \geq t_0 \end{eqnarray*}


Example: A viral kinetic (VK) model.

In this example, the data file contains the viral load:


ID TIME VL
1 -5 6.5
1 -2 7.1
1 1 6.3
1 5 4.2
1 12 2.1
1 20 0.9
$\vdots$ $\vdots$ $\vdots$



Consider a basic VK model with $A=(\it{N},\it{I},\it{V})$ where $N$ is the number of non infected target cells, $C$ the number of infected target cells and $V$ the number of virus.

After infection and before treatment, the dynamics of the system is described by this ODE system: \begin{equation} \label{vk1} \left\{ \begin{array}{lll} \dot{N}(t) & = & s - \beta \it{N}(t) \it{V}(t) - d\it{N}(t) \\ \dot{I}(t) & = & \beta \it{N}(t)\it{V}(t) - \delta \it{I}(t) \\ \dot{V}(t) & = & p \it{I}(t) - c \it{V}(t) \end{array} \right. \end{equation} The equilibrium state of this system is $\A^{\star} = $(N^^{\star} , \I^{\star} , \V^{\star})$. where \begin{equation} \label{eq1} \nitc^\star = \frac{\delta \, c}{ \beta \, p} \quad ; \quad \itc^\star = \frac{s - d\,\nitc^\star}{ \delta} \quad ; \quad \vl^\star = \frac{ p \, \itc^\star }{c}. \end{equation} Assume that the system has reached the equilibrium state $\As$ when the treatment starts at time $t_0=0$. The treatment inhibits the infection of the target cells and blocks the production of virus. The dynamics of the new system is described with this new ODE system: \begin{equation} \label{vk2} \left\{ \begin{array}{lll} \dA{\nitc}{} & = & s - \beta(1-\eta) \, \nitc(t) \, \vl(t) - d\,\nitc(t) \\ \dA{\itc}{} & = & \beta(1-\eta) \, \nitc(t) \, \vl(t) - \delta \, \itc(t) \\ \dA{\vl}{} & = & p(1-\varepsilon) \, \itc(t) - c \, \vl(t) \end{array} \right. \end{equation} where $0<\varepsilon <1$ and $0 < \eta < 1$. The initial condition and the dynamical system are described in the MDL (in a block \verb"$EQUATION" with MLXTRAN):

\hspace*{4cm} \begin{minipage}[b]{10cm} \begin{verbatim} '"`UNIQ-MathJax24-QINU`"'\As'"`UNIQ-MathJax25-QINU`"'t<0'"`UNIQ-MathJax26-QINU`"'t_0< t_1< ...<t_K'"`UNIQ-MathJax27-QINU`"'F^{(1)}, F^{(2)},\ldots,F^{(K)}'"`UNIQ-MathJax28-QINU`"'T_{Start1}'"`UNIQ-MathJax29-QINU`"'T_{Start2}'"`UNIQ-MathJax30-QINU`"'T_{Stop}'"`UNIQ-MathJax31-QINU`"'(T_{Start1},T_{Start2},T_{Stop})'"`UNIQ-MathJax32-QINU`"'T_{Start1}=0'"`UNIQ-MathJax33-QINU`"'T_{Start2}=20'"`UNIQ-MathJax34-QINU`"'T_{Stop}=200'"`UNIQ-MathJax35-QINU`"'T_{Start1}'"`UNIQ-MathJax36-QINU`"'A(t) = \As'"`UNIQ-MathJax37-QINU`"'\As'"`UNIQ-MathJax38-QINU`"'T_{Start1}'"`UNIQ-MathJax39-QINU`"'T_{Start2}'"`UNIQ-MathJax40-QINU`"'T_{Start2}'"`UNIQ-MathJax41-QINU`"'T_{Stop}'"`UNIQ-MathJax42-QINU`"'T_{Stop}'"`UNIQ-MathJax43-QINU`"'EQUATION" and using the statement \verb"SWITCH" with MLXTRAN). We only show the blocks \verb"'"`UNIQ-MathJax44-QINU`"'EQUATION" of the code: \hspace*{2cm} \begin{minipage}[b]{10cm} \begin{verbatim} '"`UNIQ-MathJax45-QINU`"'EQUATION SWITCH CASE T < T_Start1 N = delta*c/(beta*p); I = (s-d*N)/delta V = p*I/c CASE T_Start1 < T < T_Start2 DDT_N = s - beta*N*V - d*N DDT_I = beta*N*V - delta*I DDT_V = p*(1-epsilon)*I - c*V CASE T_Start2 < T < T_Stop DDT_N = s - beta*(1-eta)*N*V - d*N DDT_I = beta*(1-eta)*N*V - delta*I DDT_V = p*(1-epsilon)*I - c*V CASE T > T_Stop DDT_N = s - beta*(1-eta*exp(-k1*(T-T_Stop)))*N*V - d*N DDT_I = beta*(1-eta*exp(-k1*(T-T_Stop)))*N*V - delta*I DDT_V = p*(1-epsilon*exp(-k2*(T-T_Stop)))*I - c*V END \end{verbatim} \end{minipage}

\noindent{\bf Remark 1:} Here, \verb"EVENT" is a reserved variable name. Then, the information in the column \verb"EVENT" is recognized as a succession of events. Furthermore, the times of the events \verb"Start1", \verb"Start2" and \verb"Stop" are automatically created as \verb"T_Start1", \verb"T_Start2" and \verb"T_Stop".

\noindent{\bf Remark 2:} In this particular example, the dynamical system is described by parameters $\beta$ and $p$ whose definition switches. Then, the same model could be encoded as follows:

\hspace*{2cm} \begin{minipage}[b]{10cm} \begin{verbatim} $EQUATION T_0 = T_Start1 N_0 = delta*c/(beta*p); I_0 = (s-d*N)/delta V_0 = p*I/c SWITCH CASE T_Start1 < T < T_Start2 be = beta pe = p*(1-epsilon) CASE T_Start2 < T < T_Stop be = beta*(1-eta) pe = p*(1-epsilon) CASE T > T_Stop be = beta*(1-eta*exp(-k1*(T-T_Stop))) pe = p*(1-epsilon*exp(-k2*(T-T_Stop))) END DDT_N = s - be*N*V - d*N DDT_I = be*N*V - delta*I DDT_V = pe*I - c*V \end{verbatim} \end{minipage}

Dynamical systems with source terms

Extensions

Mixture models

Hidden Markov models

SDE based models

Modelling the population parameters

Modelling the covariates