1 Introducción Se tratan a continuación los antecedentes del proyecto, dedicando un apartado a cada una de las materias fundamentales del mismo. Por un lado, una introducción al lenguaje de programación con el que se ha modelado y simulado la librerı́a, por otro, una visión actual del panorama de tecnologı́as de simulación, y por último una introducción a la farmacocinética ya que ésta impone las bases cientı́ficas sobre las que se desarrolla la librerı́a. Dentro del primer apartado se destacan tres subapartados relacionados con los lenguajes de modelado orientado a objetos, tratamiento matemático del modelo y conexiones del programa con otros softwares. Dentro del segundo apartado se hace una distinción entre los lenguajes de simulación de sistemas continuos y discretos. En el apartado sobre farmacocinética, se explican la evolución temporal de los fármacos en el organismo (procesos LADME) y las premisas del modelado cinético compartimental. 1.1. Programación en EcosimPro Ecosimpro es una herramienta de simulación de origen español, desarrollada por Empresarios Agrupados International S.A. para el modelado de procesos fı́sicos simples y complejos. Se trata de una herramienta reciente, la versión draft 3.0.3 es de Junio de 1999, y la última versión 4.8 ha salido recientemente. EcosimPro corre en las distintas plataformas de Windows y usa su propio entorno gráfico para el diseño de modelos. El modelado de componentes fı́sicos se basa en el EcosimPro Language (EL), el cual es un lenguaje especı́fico para modelado de sistemas. Tiene la ventaja de proporcionar un enfoque hı́brido, de manera que está orientado a sistemas continuos con la posibilidad de tratar las discontinuidades gobernadas por eventos discretos. EcosimPro presenta tres modos de vista para el modelador: Code view: permite introducir, leer, modificar, etc., el código de los componentes elaborados. Schematic view: permite crear componentes por agregación de otros más básicos, pero utilizando un entorno gráfico. 1 1 Introducción Simulation view: se trata de la vista de simulación, a la que se accede cuando ya se ha creado el componente mediante alguna de las opciones que el entorno permite (a partir de componentes textuales o a partir de componentes gráficos). De esta forma, EcosimPro distingue dos facetas del arte de la simulación. Por un lado se crea el modelo, de la forma que sea, y por otra se realizan experimentos con él, o lo que es lo mismo, se simula. 1.1.1. Lenguajes de modelado orientado a objetos (MOO) Los lenguajes de simulación han evolucionado desde la emulación de las calculadoras analógicas hacia la simulación digital, que dio comienzo con la resolución numérica de conjuntos de ecuaciones diferenciales, EDO1 . La mayorı́a de los algoritmos de integración numérica se diseñaron para resolver este tipo de problema de variables de estado. Posteriormente se reconoció que la misma ecuación podı́a reaparecer en varias ecuaciones de estado, y que serı́a más eficiente, desde un punto de vista computacional, reasignar estas expresiones a variables algebraicas auxiliares. Surge ası́ un nuevo grupo de ecuaciones conocidas como EDA, 2 que definen la forma natural de los sistemas de parámetros concentrados. Además, se dotó a algunos lenguajes de “ordenadores de ecuaciones”que permitı́an al usuario especificar el conjunto de ecuaciones en una secuencia arbritraria. Esto dio paso a una evolución de los entornos de simulación que trataron de incluir cierta “inteligencia”de forma que se evitara tener que escribir el modelo mediante un conunto de ecuaciones con la causalidad asignada de antemano, y de forma que dichas ecuaciones sean lo más parecidas posible al planteamiento natural del problema. De esta forma surgió el paradigma del Modelado Orientado a Objetos (MOO). Esta metodologı́a se apoyó en avances de diferentes materias: el tratamiento simbólico de ecuaciones, la resolución numérica de EDA y, cómo no, en el desarrollo de los lenguajes de programación orientados a objetos. El concepto del modelado orientado a objetos es relativamente reciente, surgiendo practicamente en la década de los noventa. Las ventajas de utilizar esta metodologı́a en la programación clásica para resolver problemas de media y alta complejidad están más que demostradas. EcosimPro es un ejemplo de herramienta de programación orientada a objetos. Los entornos orientados a objetos presentan ciertas caracterı́sticas propias, debidas a su nueva filosofı́a de trabajo que se resumen en la figura 1.1. 1 2 2 Ecuaciones Diferenciales Ordinarias Ecuaciones Diferenciales Algebraicas 1.1 Programación en EcosimPro En primer lugar, los MOO han heredado las caracterı́sticas propias de los lenguajes de programación orientados a objetos (POO), en los cuales se basan, de forma que ha impuesto una nueva visión en la creación de modelos, con una sintaxis que les permite ser más estructurados, más flexibles, estar basados en los principios de parametrización, reutilización, instanciación, encapsulación, etc. Figura 1.1: Diagrama de bloques explicativo de la filosofı́a del MOO. Una vez escrito un modelo, utilizando componentes nuevos, de librerı́as de texto, de librerı́as gráficas o heredando propiedades de otros ya implementados, es necesario obtener un conjunto de ecuaciones que representen la dinámica del sistema. Todos los apartados en que se descompone la tarea de modelado y simulación en un entorno de MOO no son independientes, por lo que cada uno de ellos debe resolver la problemática propia y además “preparar el terreno”para resolver problemas de fases posteriores. La simulación y el modelado orientados a objetos proporcionan las caracterı́sticas suficientes para aumentar la complejidad sin afectar al exteior (encapsulación), 3 1 Introducción habilitan la reutilización de modelos (herencia y agregación), y permiten crear modelos independientes que sean fáciles de mantener. Además, el desarrollo modular permite a un sistema ser modelado desde abajo hacia arriba (bottom-up), programando primero los componentes más básicos para, a partir de ellos, ir desarrollando otros más complejos. Las librerı́as básicas de componentes se pueden combinar para crear componentes cada vez más complejos utilizando dos métodos: Extensión por herencia, a partir de componentes existentes. Instanciación y conexión de componentes existentes. Estas ideas se aplican para crear componentes que representen un sistema completo. Los componentes intermedios pueden ser también simulados. Esto reduce ampliamente los tiempos de mantenimiento y desarrollo. Uno de los objetivos del modelado es encapsular la complejidad. Dicha encapsulación consiste en separar los aspectos externos de los objetos, a los cuales pueden acceder otros objetos, de los detalles internos de la implementación del mismo, que quedan ocultos a los demás. El modelado orientado a objetos hace más fácil la tarea del modelador gracias a la capacidad de abstracción y encapsulación de datos y comportamientos. Sus elementos principales son los componentes y las librerı́as. Éstas encapsulan todos los elementos implicados en una disciplina particular, y pueden ser utilizadas por otras librerı́as. Entre la terminologı́a habitual se encuentran los siguientes conceptos: Una clase o componente, es una descripción teórica de una estructura y un comportamiento de un componente fı́sico. Un objeto es una instanciación de un componente. La interfaz de un componente está compuesta por los puertos, o conexiones, los parámetros y los datos. Estos elementos son únicos y son visibles desde fuera, reforzando ası́ la idea de la encapsulación y favoreciendo la reutilización de los componentes. La herencia es lo que le da a los lenguajes de modelado orientado a bloques su capacidad para compartir interfaces y comportamientos. Los lenguajes de MOO pueden reunir datos y ecuaciones comunes en unos componentes padres, que serán heredadas por los componentes hijos. La herencia es un mecanismo de compartición de información entre componentes mediante la especialización (Fig. 1.2). Generalmente los lenguajes de MOO consideran que si los valores de los atributos de un componente entran en contradicción con los heredados de su supercomponente, prevalecen en la clase los valores locales. Esta propiedad es una forma de parametrización, ya que supone la modificación de algunas de las propiedades para adaptar el modelo a sus diferentes aplicaciones. Para facilitar este mecanismo en algunos entornos existen las denominadas ecuaciones virtuales, que pueden ser modificadas por el subcomponente sin que se produzcan conflictos. Cuando un componente sólo puede tener un único supercomponente se habla de herencia simple. En caso de que puedan heredar más de uno, se denomina herencia 4 1.1 Programación en EcosimPro múltiple. Para el caso de EcosimPro existe la herencia múltiple, lo cual permite la creación de nuevos componentes reutilizando partes de otros previamente creados. Figura 1.2: Diagrama explicativo del mecanismo de herencia. El polimorfismo es un concepto ligado estrechamente a la reutilización de modelos. Modelos polimórficos son aquellos que tienen interfaces con estructuras equivalentes y que, además, tienen los mismos grados de libertad, con lo cual pueden ser usados en el mismo contexto e intercambiados sin necesidad de alterar el resto del sistema. Frecuentemente los modelos polimórficos poseen un mismo supercomponente común: aquél en el que se define la interfaz. La agregación es una forma fuerte de asociación en la cual el objeto está formado por componentes. Un componente puede heredar de otro u otros y puede tener múltiples instancias o copias de otros internamente. Este hecho refuerza la caracterı́stica de la reutilización. Este paradigma se aplica de forma iterativa y sin lı́mites de manera que la complejidad de un componente final puede estar oculta por esta agregación de instancias internas a otros componentes ya comprobados. La abstracción consiste en centrarse en los aspectos esenciales inherentes a una entidad e ignorar sus propiedades accidentales. En el desarrollo de un modelo esto significa centrarse en sus caracterı́sticas, lo que es y lo que hace, antes de decidir cómo deberı́a implementarse. La abstracción es un modo de afrontar el problema de la complejidad de los sistemas de grandes proporciones, posibilitando que varios especialistas puedan trabajar sobre distintas partes de un mismo modelo sin tener que 5 1 Introducción conocer todos los detalles del resto del mismo. Una forma de facilitar la abstracción consiste en diferenciar, en cada parte del modelo, entre la interfaz y la descripción interna. Las librerı́as son los elementos básicos con los que los lenguajes de MOO organizan la información que manipulan. El propósito básico de una librerı́a es almacenar un conjunto de elementos relacionados entre sı́. EcosimPro incluye varias librerı́as básicas que pueden ser modificadas por el usuario. La potencia de un entorno está en el número y la calidad de sus librerı́as. Además de mantener la tarea de modelado bien organizada, las librerı́as proporcionan al entorno de modelado otros servicios como: Comprobar elementos obsoletos (componentes, puertos, datos, etc.) que deben recompilarse. Encapsular los elementos, permitiendo a diferentes librerı́as contener elementos con el mismo nombre. En referencia a las librerı́as básicas de EcosimPro, se muestra en la siguiente figura 1.3 un esquema de un circuito eléctrico básico creado a partir del modelado previo de sus elementos individuales. En concreto el circuito está compuesto por: una fuente de tensión senoidal (VAC1), un condensador (C1), una resistencia (R1), un elemento tierra (G1) y dos puertos del tipo eléctrico que permiten la conexión del modelo con otro, u otros, componentes. Figura 1.3: Diagrama EcosimPro de un circuito eléctrico básico 6 1.1 Programación en EcosimPro Ası́, en una primera fase deben modelarse y validarse los elementos individuales (fuente de tensión, resistencia, condensador, etc.), hasta llegar a la elaboración del componente final que serı́a el circuito. Los componentes pueden ser modelados a partir de sus ecuaciones constitutivas o a partir de sus curvas de comportamiento. Los lenguajes de modelado orientados a objetos deben proporcionar sentencias que permitan modelar dos mundos: el continuo y el discreto. Con el modelado continuo, el usuario expresa el modelo fı́sico con unas ecuaciones matemáticas concretas. Estas ecuaciones pueden ser algebraicas o diferenciales con respecto al tiempo. Pero los lenguajes de MOO no sólo deben permitir una formulación continua. Cualquier modelo fı́sico que se construya con ecuaciones continuas en algún instante tendrá un comportamiento discreto. Cada tipo de comportamiento continuo está asociado a una serie de eventos que se están comprobando continuamente. Cuando ocurre uno de ellos se ejecutan una serie de acciones asociadas. Esto significa que los componentes se modelan utilizando ambos métodos de modelado: continuos y discretos. Es tarea del entorno el ocuparse de que ambas partes del modelo se ejecuten de forma coordinada. Figura 1.4: Algoritmo del tratamiento de eventos. 7 1 Introducción Los lenguajes orientados a objetos permiten tres tipos de sentencias: las continuas, las discretas y las secuenciales. Las continuas son las que se repiten en cada instante de integración y sufren la mayor parte del preprocesamiento, como la ordenación de las ecuaciones, la detección de los lazos algebraicos, etc. Las discretas deberán estar en su propia sección y se ejecutan ante determinados eventos. Las secuenciales son aquellas que se ejecutan cada una a continuación de la precedente. La sintaxis de EcosimPro permite secciones para cada una de este tipo de sentencias. Finalmente se resumen a continuación las ventajas principales de la metodologı́a de MOO: El modelador encapsula los datos y el comportamiento en componentes individuales. Un componente oculta su complejidad haciendo públicas sólo parte de sus caracterı́sticas. La interfaz pública comprende parámetros, puertos y datos. Las variables locales, eventos discretos y ecuaciones son privadas. Los componentes pueden reutilizarse. Un componente puede contener ecuaciones que pueden insertarse en tiempo de simulación o no, dependiendo de los parámetros que se pasen al componente. El formato de una ecuación es declarativo: los algoritmos las transforman para resolverlas de la mejor forma posible. Además, se puede añadir una consideración más a la revolución que supone el MOO: el modelado es no-causal, o acausal. En otras palabras, cuando se modela un componente, la causalidad de las ecuaciones no está dada. Esta causalidad tendrá que ser resuelta antes de pasar a la fase de simulación. EcosimPro se encarga de esto de forma automática. Las librerı́as contienen componentes reusables y genéricos que pueden utilizarse en cualquier situación. 1.1.2. Tratamiento matemático del modelo en EcosimPro A la hora de realizar una simulación, EcosimPro no codifica las ecuaciones tal y como las escribe el usuario, sino que realiza una serie de transformaciones para escribir el sistema de una forma más conveniente. Una vez generadas las ecuaciones, el siguiente paso es decidir en qué orden se resuelven las variables del modelo. Aunque desde el punto de vista del usuario final EcosimPro es un lenguaje acausal, está claro que para realizar cualquier simulación 8 1.1 Programación en EcosimPro con un modelo es necesario convertir el conjunto de ecuaciones escritas por el usuario en otro conjunto de ecuaciones escritas de forma secuencial, donde cada lı́nea contenga variables que hayan sido previamente calculadas. EcosimPro implementa estas ecuaciones en un lenguaje causal, en este caso C++. Este proceso se denomina asignación de la causalidad. En EcosimPro se describe el sistema por medio de ecuaciones, posteriormente el compilador decide cuál es el orden adecuado para cada ecuación y la variable que resuelve. En cuanto a las variables, existen los siguientes tipos: Las variables tipo dato (DATA VAR) son aquellas que se han definido en la sección DATA de los componentes, han sido inicializadas antes de crear la partición y por tanto su valor no necesita ser calculado en tiempo de simulación debido a que permanecen constantes a lo largo del tiempo. Las variables explı́citas (EXPLICIT) necesitan obtenerse a partir de las ecuaciones de los componentes, y por tanto las ecuaciones deben ordenarse de tal forma que todas ellas sean calculadas por una y solo una ecuación. Las variables de estado (DYNAMIC) son variables que en algún momento aparecen derivadas en el modelo y su valor se obtiene integrando el mismo por un algoritmo de integración. Las variables derivadas (DERIVATIVE) son las complementarias de las variables de estado y expresan la derivada respecto a la variable independiente del sistema (normalmente el tiempo). Estas variables se calcularán de forma explı́cita. Las variables algebraicas (ALGEBRAIC) son variables que no han podido ser calculadas por métodos explı́citos y se resuelven por un resolvedor implı́cito de forma iterativa. Aparecen en todos los lazos algebraicos no lineales del modelo y se calculan de forma implı́cita. Las variables de contorno (BOUNDARY) son variables continuas (tipo REAL) que el usuario ha decidido que serán condiciones de contorno y no son calculadas iternamente. La diferencia con los datos es que pueden ser dadas como variables dependientes del tiempo y no sólo como una constante. Las variables discretas (DISCRETE) son todas las variables que no sean de tipo REAL (es decir son INTEGER, BOOLEAN, STRING O FILEPATH) y las etiquetadas como DISCR REAL. Son variables que EcosimPro no tratará de calcularlas nunca del sistema de ecuaciones y son responsabilidad del modelador cambiarlas de forma discreta en el modelo (tı́picamente en los bloques INIT y DISCRETE). 9 1 Introducción Parámetros de construcción. Son parámetros usados en componentes y puertos en el momento de su instanciación. Son usados para dimensionar arrays o conjuntos de ecuaciones y no pueden ser modificados en ningún momento después. Los datos (DATA VAR) aunque permanecen constantes durante los cálculos, pueden ser modificados entre dos cálculos, los parámetros de construcción no. Los métodos numéricos para integrar el modelo calculan los valores de las variables de estado (DYNAMIC) y algebraicas. Para que la integración numérica pueda llevarse a cabo es necesario dar al integrador el valor inicial de las variables de estado y algebraicas. Las ecuaciones de residuos que guı́an al integrador son generedas automáticamente por EcosimPro en base a transformaciones simbólicas del bloque de ecuaciones global. Cabe destacar el hecho de que no siempre se pueden despejar las variables de forma explı́cita. Cuando esto ocurre, se dice que en el sistema existe un lazo algebraico lineal o no lineal. Los lazos algebraicos no lineales son más costosos en tiempo de cómputo que los lineales y además necesitan procedimientos más complejos. A modo de resumen, se puede decir que el tratamiento matemático del modelo de EcosimPro sólo necesita despejar las variables que sean de alguno de estos dos tipos: explı́citas o derivadas, mientras que las demás o no intenta calcularlas o se calculan con un resolvedor. Por otra parte, y siguiendo con las variables en EL, éstas tienen tres tipos de alcance que se explican a continuación: 1. Alcance local: La variable se referencia usando como identificacdor su propio nombre dentro de cada componente, puerto, función o experimento. 2. Alcance global: El identificador se declara como global dentro de la librerı́a. Se referencia usando el nombre de la variable, pero si el nombre se declara más de una vez (por ejemplo, si dos librerı́as usan el mismo nombre para la variable global) se debe añadir el prefijo de la librerı́a a la variable. 3. Alcance de expresión: Un identificador usado en expresiones SUM, EXPAND o bucles FOR sólo tiene alcance en esa expresión. Una vez que la expresión ha sido evaluada el nombre ya no es válido, esto permite a expresiones sucesivas usar el mismo identificador. Si un identificador interno entra en conflicto con otro con el mismo nombre en otro componente, se usa siempre el identificador interno. Habitualmente los sistemas de simulación presentan sistemas de ecuaciones que tienen que ser resueltos en poco tiempo. Otras veces, no es posible obtener la solución exacta. La aplicación de métodos numéricos subsana estos dos problemas. 10 1.1 Programación en EcosimPro Para la resolución de sistemas lineales se emplea el método de factorización LU. Para la resolución de sistemas no lineales se emplea el método de Newton-Raphson basado en iteraciones que partiendo de un punto anterior calculan el siguiente. El punto de inicio debe darse cerca de la solución para que ésta converja. Por su parte los métodos de integración tienen como propósito, dado un problema de valor inicial, calcular una aproximación de la solución en una serie de puntos, de tal forma que la función quede suficientemente determinada para el estudio que se pretende. Un método de integración numérico devuelve una serie de tuplas que son una aproximación a la solución real de la ecuación diferencial en t= ti . A la diferencia ti+1 - ti se le denomina paso de integración y se suele representar como hi+1 . Los métodos de integración se pueden clasificar como: De paso constante, si hi siempre toma el mismo valor, en cuyo caso ti = i·h+t0 . De paso variable, si hi no es constante. El método de integración más clásico para resolver ecuaciones diferenciales ordinarias (EDO) es el Runge-Kutta. El método DASSL es más moderno y está orientado a la resolución de sistemas de ecuaciones algebraico-diferenciales (EDA). A diferencia del Runge-Kutta, en el que la derivada tenı́a que estar de forma explı́cita, en este método no es necesario. El sistema puede estar escrito de forma más general. Los métodos de integración más utilizados en EcosimPro son: Runge-Kutta de orden 4 y DASSL. Por defecto el método de integración es DASSL, pero se puede seleccionar cualquier otro por medio de la variable IMETHOD asignándole el nombre del método de integración. Los pasos en el procesado matemático de EcosimPro son: 1. Solución simbólica de ecuaciones lineales de coeficientes constantes. 2. Detección y corrección de problemas de alto ı́ndice. Estos problemas surjen cuando aparecen variables de estado (DYNAMIC) emparejadas o relacionadas entre sı́. El resolvedor matemático está diseñado, normalmente, para calcular el valor de las variables de estado integrando su derivada, asumiendo que estas variables son independientes unas de otras. Existen distintas técnicas para resolver problemas de alto ı́ndice que van desde la manipulación simbólica hasta el uso de resolvedores especiales. EcosimPro usa dos tipos diferentes de algoritmos de manipulación simbólica: solución por eliminación de los impedimentos lineales o solución por derivación de ecuaciones. 3. Selección de las variables de contorno. Para ello se clasifican primero las variables en conocidas y no conocidas. 11 1 Introducción 4. Aplicación del máximo algoritmo transversal y clasificación de las ecuaciones. El propósito de este algoritmo consiste en encontrar una variable que pueda ser calculada en cada ecuación. En el campo de las matrices, el problema es conocido como “encuentra el máximo número de no-nulos en la diagonal de la matriz”, mientras que en la teorı́a de grafos bipartitos se conoce como “perfect matching.” El objetivo de la clasificación de ecuaciones es permitir a EcosimPro calcular las variables de forma secuencial. 5. Solución de lazos algebraicos, lineales y no lineales. 6. Resolución numérica de sistemas diferenciales y algebraicos. Finalmente, después de todos los pasos preliminares, el problema se formula como un sistema de ecuaciones algébrico-diferenciales o EDA. La mayorı́a de las aplicaciones de simulación formulan el problema como un sistema de ecuaciones diferenciales ordinarias o EDO. La ventajas de usar EDAs es que las ecuaciones originadas de forma natural cuando se modela un sistema fı́sico son EDAs y no EDOs. Las ecuaciones diferenciales ordinarias y los sistemas de ecuaciones algebraicos pueden ser considerados como casos especiales de EDAs. Por lo tanto una EDO puede ser escrita de forma explı́cita como una EDA de la siguiente forma: y 0 (t)–f [t, y(t)] = 0 Como ya se ha mencionado, EcosimPro utiliza el método DASSL para esta resolución. 1.1.3. Conexión con otro software Se describen a continuación las posibilidades que EcosimPro pone al alcance del usuario para su conexión con lenguajes de programación de propósito general o aplicaciones externas. Esto permite que pueda usarse toda la potencia que proporciona la herramienta sin necesidad de emplear el entorno de simulación y que pueda incluirse su funcionalidad en aplicaciones independientes desarrolladas por el usuario. Se detallan los siguientes ejemplos: Aplicaciones DECK. Un DECK es una aplicación ejecutable independiente que puede ser lanzada fuera del entorno de simulación y que puede disponer o no de entorno gráfico (Fig.1.5). Se trata de un programa que permite al diseñador distribuir simulaciones a clientes de forma rápida e independiente del entorno principal. 12 1.1 Programación en EcosimPro Conexión con C++. Dado que el entorno de simulación de EcosimPro traduce de lenguaje EL a lenguaje C++, es evidente que la integración con este lenguaje se lleve a cabo de forma natural. De este modo, el usuario puede diseñar una aplicación a medida usando toda la potencia que proporciona EcosimPro. Las aplicaciones de esta posibilidad son numerosas, por resaltar algunas: - Creación de un interfaz gráfico para visualizar las variables de simulación. - Reducción de fallos de los modelos C++. - Conexión con otras clases C++. - Conexión con un entorno de simulación en tiempo real. - Conexión del modelo con programas de ordenador escritos por el usuario. - Conexión con otras herramientas de simulación. Figura 1.5: DECK generation wizard que basado en un experimento dado ayuda al desarrollador a crear una aplicación independiente. Conexión con Microsoft Excel. EcosimPro proporciona dos maneras diferentes de Interactuar con Microsoft Excel: usando VBA (Visual Basic for Applications) o empleando una barra de herramientas especı́ficamente diseñada para la conexión con esta aplicación (SimulationAddIn Toolbar ). La primera de las alternativas se explicará en el siguiente punto. La segunda requiere la adición de una nueva barra de herramientas a Excel. Esta barra permite ejecutar la simulación de un experimento (con la posibilidad de crear una representación gráfica del modelo) cargando los valores de las variables en una nueva hoja de 13 1 Introducción cálculo dentro del mismo libro. A partir de esta hoja se puede obtener una representación gráfica de las variables que se consideren oportunas. Conexión con Microsoft Visual Basic. El procedimiento de conexión es válido para cualquier aplicación que soporte VBA, como puede ser Microsoft Excel. De este modo , supone un procedimiento alternativo a la barra de herramientas SimulationAddIn. Conexión con Matlab/Simulink. EcosimPro proporciona una librerı́a de funciones para interactuar con Matlab y Simulink (llamada ecoToolBox ). Los únicos requisitos de partida son que exista la DLL ya compilada del experimento que se desea simular y que la versión de Matlab que se emplee sea posterior a la R13 con el Service Pack 1 instalado. 1.2. Estado del Arte de las tecnologı́as de simulación A continuación se describen los entornos de simulación de sistemas (simples o complejos) más relevantes en la actualidad. Se puede hacer una primera división de estos entornos según su capacidad de simulación de sistemas continuos y discretos, aunque la mayorı́a de entornos de simulación continua también tiene capacidad de simulación de eventos discretos. 1.2.1. Simulación de sistemas continuos Dentro de este aparatado se explican algunas de las tecnologı́as de simulación de sistemas continuos más significativas en la actualidad. EcosimPro Se trata de un entorno de simulación multidisciplinar, con una metodologı́a modelado orientado a objetos. Permite un desarrollo modular de sistemas, lo que facilita la reusabilidad, garantizando a la vez el mantenimiento de la dinámica propia del sistema completo. Además, permite cierta abstracción en la descripción del modelo, por ejemplo, no se requiere establecer cuáles son las entradas y cuáles las salidas. Ecosim es una herramienta de simulación general y flexible directamente aplicable a la simulación de Environment Control and Life Support Systems (ECLSS) and Thermal Control Systems (TCS), los cuales han sido desarrollados por la Agencia Espacial Europea (ESA. Tiene una serie de ventajas sobre otros sistemas, tales como soporte para simulaciones multidisciplinares de TCS y ECLSS, extensas librerı́as de componentes reusables para construcción de modelos que pueden ser ampliadas por los usuarios 14 1.2 Estado del Arte de las tecnologı́as de simulación y un potente motor de simulación basado en una mezcla de procesado simbólico y análisis numérico. Estas caracterı́sticas ponen de manifiesto la gran potencia de EcosimPro, por la cual, ésta ha sido escogida como la herramienta para el desarrollo de la librerı́a farmacocinética. ACSL ACSL es el predecesor del actual acslX, el cual, es un lenguaje de modelado y simulación de sistemas y procesos dinámicos continuos, basado en el estándar CSSL. Ha sido mejorado mediante el desarrollo de paquetes auxiliares, que se explicarán a continuación, que lo convierten en un verdadero entorno de simulación. Es un lenguaje fácil de aprender y de usar, que ofrece un entorno intuitivo para usuarios de todos los niveles lo suficientemente potente como para resolver problemas de determinada complejidad. Se trata de un lenguaje de modelado no orientado a objetos, en el que las secciones de descripción del modelo y de experimentación están claramente separadas. La sección de descripción del modelo se divide en varias zonas principales, encabezadas por las palabras claves: INITIAL, DYNAMIC, DERIVATIVE y DISCRETE. El resolvedor de ACSL es capaz de ordenar las ecuaciones del modelo de manera que permite su correcta resolución. El compilador, traduce el modelo a Fortran, lo que permite enlazar tanto con Fortran como con otros lenguajes de simulación. Es importante destacar los siguientes paquetes adicionales: 1. Graphic Modeller. Interfaz gráfico para la construcción de modelos mediante FlowChart. 2. API. Se desarrolla un interfaz de programa que permite acceder al núcleo de la simulación a través de un programa externo desarrollado por el usuario. Para ello, el modelo es convertido en una librerı́a dinámica (DLL) a la que se puede acceder de distintas maneras. 3. Conversor a lenguaje C. 4. Real Time. Incluido para dotar al sistema de posibilidad de ejecución en tiempo real. 5. acslX-PK/PK. Paquete farmacéutico que permite llevar a cabo un modelado farmacocinético clásico (PK), con base fisiológica (PBPK) y farmacodinámico (PD), ofreciendo la herramienta adecuada en cada etapa del proceso de evolución del fármaco. 15 1 Introducción Por la relación del punto cinco con este proyecto, parece relevante explicar de forma más detallada el alcance del paquete farmacéutico. Éste ofrece una herramienta de modelado farmacocinético flexible que predice la dispersión del fármaco y los niveles residuales del mismo para análisis de toxicidad y de umbral terapéutico. acslX se basa tanto en modelos clásicos como compartimentales de manera que no hay lı́mite en la simplicidad o complejidad del mismo. Los estudios son rápidos y fiables porque la herramienta ofrece un interfaz intuitivo para el usuario junto con un desarrollo robusto del modelo y capacidades de análisis y ejecución. Además permite a los usuarios añadir o aplicar continuamente nueva información para reestablecer modelos o crear otros nuevos para nuevos productos farmacéuticos. El software acslX’s Optimum, permite a los investigadores llevar el modelado y simulación a un nivel superior. Optimum está completamente integrado con acslX y proporciona potentes capacidades analı́ticas que incluyen: estimación de parámetros, optimización de modelos, análisis de sensibilidad y análisis Montecarlo. También existen wizards que simplifican la programación y eliminan la necesidad de declarar comandos. Un ejemplo del modelado con esta herramienta se muestra en la figura 1.6. Figura 1.6: Apariencia gráfica del modelado con el paquete PK/PD. El alcance del paquete acslX PK/PD comprende: 1. Modelos PBPK lineales y no lineales de varios órganos. 16 1.2 Estado del Arte de las tecnologı́as de simulación 2. Modelos estándar de flujo sanguı́neo basados en el peso corporal y la respuesta cardı́aca. 3. Modelos de exposición por inhalación ası́ como exposición oral y dérmica. 4. Funciones matemáticas para estudios de sensibilidad de parámetros. 5. Modelos PD para una respuesta de tejidos debida a una exposición quı́mica concentrada. 6. Ejemplos de modelos: modelos con uno y dos compartimentos y multicompartimentales; clásico PBPK de cloroformo en humanos; modelo PBPK/PBPD de dioxina en hembras de rata. Modelica Modelica es un lenguaje para el modelado de sistemas fı́sicos orientado a objetos, con estructura jerárquica, capacidad de reuso y evolución. Las ecuaciones en Modelica no describen una asignación a las variables, sino una igualdad. Se trata por tanto de un lenguaje de modelado libre de causalidad matemática. Existen gran cantidad de publicaciones y documentación disponibles sobre este lenguaje. Un ejemplo de ello es [?] en el que se hace referencia al gran problema de la interoperabilidad entre modelos y entornos de simulación, aclarando que los entornos gráficos, aún cuando facilitan la labor, no son precisamente la solución a este problema y en la práctica suelen especializarse cada vez más a un determinado entorno. Se destacan dos conceptos importantes en relación al problema de la interoperabilidad: 1. Lenguajes de modelado orientados a objetos, los cuales han dado resultados muy satisfactorios en la implementación de estructuras jerárquicas y evolución, independientemente de su dominio de aplicación. 2. Modelado acausal, demuestra que la tradicional abstracción empleada en simulación (el bloque con entradas/salidas) puede ser generalizada relajando las restricciones de causalidad, es decir, no dando a cada puerto una definición de entrada o salida. En términos estrictos Modelica es una especificación que arranca en el proyecto ESPRIT : Simulation in Europe Basic Research Working Group SiE-WG, el cual operaba en 1999 como el comité tecnico 1 de EuroSim y un area técnica de Modelica en la SCS International. 17 1 Introducción El lenguaje está orientado para trabajar en múltiples dominios (eléctrico, hidráulico, termodinámico, multi-body, etc) y con varios formalismos, por ejemplo, para trabajar con sistemas representados por ODE, DAE, bond graphs (diagramas causales), autómata de estados finitos y redes de Petri. La versión 1.1 de Modelica (Diciembre 1998) corresponde a un lenguaje de modelado de propósito general, multidominio y multi-formalismo, con capacidad para modelar sistemas continuos y que incluye además el tratamiento de eventos discretos, como las discontinuidades. Modelica aprovecha la experiencia obtenida con muchos lenguajes de simulación anteriores. La gran mayorı́a de los lenguajes previos, están orientados a bloques con entradas y salidas. De esta forma, los modelos matemáticos hay que orientarlos a algoritmos preparados para su cómputo (necesitan de la transformación de las ecuaciones fı́sicas, en este sentido). Normalmente los lenguajes han considerado la existencia de conectores entre modelos, pero a un nivel de jerarquı́a mayor. Ejemplos representativos de herramientas que soportan Modelica son: MathModelica (de MathCore); Scicos, cuya versión 4.4.1 ha sido lanzada en abril de 2011 o Dymola, el cual es un entorno de modelado y simulación basado en el lenguaje de modelado Modelica que está disponible como producto autónomo, ası́ como integrado en CATIA Systems V6. Matlab/ Simulink Matlab3 es un entorno de computación integrado para cálculo numérico y un lenguaje de programación de cuarta generación 4 . Tuvo su origen como software de acceso a las librerı́as de cálculo numérico y matricial: LINPACK y ESIPACK (actualmente muy importantes), de ello, que el elemento básico de trabajo sean las matrices. Básicamente se puede entender Matlab como un entorno de computación numérica procedimental e interactivo, con un lenguaje de programación propio. Con él se pueden crear scripts y funciones (ficheros .M) que pueden ser llamados desde la ventana de Matlab. Este esquema de trabajo ha permitido el desarrollo de toolboxes especializados en diferentes áreas. Matlab se compone de 5 partes: 1. Lenguaje de programación, orientado a objetos. 2. Entorno de trabajo, con debugger y profiler. En la versión 6 (noviembre del 2000) se mejora el entorno, pasando al estilo de entornos de desarrollo tales 3 4 Matrix Laboratory. Lenguaje de programación diseñado con un propósito especı́fico siguiendo al 3GL en una tendencia hacia una mayor abstracción. 18 1.2 Estado del Arte de las tecnologı́as de simulación como Visual Basic o Delphi. El lenguaje Matlab se ejecuta mediante interprete de manera natural, aunque puede compilarse para producir un Matlab Executable (MEX), conocido normalmente como fichero MEX, para incrementar la velocidad. Las rutinas C y Fortran se pueden acoplar con Matlab en runtime, mediante los ficheros MEX. 3. Sistema gráfico, para visualización 2D y 3D, permitiendo la programación de un GUI5 . 4. Librerı́a de funciones matemáticas. Se incorpora en la versión 6 la librerı́a LAPACK (que reenplaza a LINPACK Y EISPACK). 5. API que permite llamar a rutinas C y Fortran desde código Matlab y usar Matlab como un motor de computación Simulink es un entorno gráfico de simulación basado en Matlab. Un modelo en Simulink se describe mediante blocks caracterizados básicamente por unas entradas, unas salidas y unas variables de estado (continuas y discretas). Es decir un modelo se describe mediante diagramas de bloques. Entre sus ventajas: Definición de subsistemas para poder ser usados como nuevos bloques, permitiendo una descripción jerárquica sin lı́mites. Librerı́as de bloques built-in. Bloques personalizables, no solo en su comportamiento, sino también en sus cuadros de diálogo, de parametrización, etc. Éstos pueden ser añadidos a las librerı́as. S-Functions o funciones del sistema. Código creado para describir el comportamiento de un bloque Simulink. Puede desarrollarse en Fortran, C, Ada o Matlab. Simulink suministra modelos de funciones para su preparación. Sobre C y Matlab es posible que estos bloques creados sean multipuerto y multimuestreo (multirate) o intervalos de muestreo diferentes en diferentes bloques discretos. El editor de mascaras permite preparar un diálogo para cualquier bloque de S-function. La fundamental limitación de Simulink es su orientación a la simulación de sistemas de control, lo que le lleva a la descripción de los modelos sólo como diagramas de bloques que son ejecutados según un modelo secuencial. Esta estructura secuencial sigue el paradigma de modelado causal, vigente en la mayorı́a de los sistemas comerciales y académicos, y ha obtenido muy buenos resultados. Sin embargo el 5 Graphic User Interface. 19 1 Introducción modelado no causal que rige la nueva especificación en Modelica, aporta ventajas a la hora de modelar sistemas fı́sicos permitiendo una discretización del espacio de simulación que realmente consigue los objetivos de reusabilidad e interoperabilidad. Una buena descripción de la forma de trabajo de Simulink se puede ver en [?]. 1.2.2. Simulación de eventos discretos Al igual que el apartado anterior, muchos de los entornos de simulación discreta tienen ciertas capacidades para modelar sistemas continuos, aunque su objetivo no sea ese. Como se puede comprobar a continuación, el área de simulación de eventos discretos sı́ ha desarrollado una gran cantidad de entornos basados en Web, especialmente sobre Java. Asimismo, las arquitecturas distribuidas, como HLA6 , parecen mejor preparadas para este tipo de sistemas. Esto puede ser debido en principio, al tipo de simulaciones en las que el DoD7 está interesado, lo que ha supuesto un ”tirón” en las tecnologı́as en ese campo, pero no en los simuladores basados en modelos de sistemas continuos. JSIM Es un entorno de simulación y animación de sistemas de eventos discretos (Colas) basado en Java. Es un entorno de simulación para pruebas e investigación de acceso libre (incluyendo a su fuente, etc). Los aspectos principales en los que se centra JSim son fisiologı́a y biomedicina, aunque su motor computacional es bastante general y aplicable a un amplio rango de dominios cientı́ficos. Los modelos de Jsim mezclan ODEs, PDEs, ecuaciones implı́citas, integrales, sumatorios, eventos discretos y código de procedimiento apropiado. Permite la construcción de un modelo mediante: Un paquete de eventos: paradigma de conducción por eventos. Un paquete de procesos: paradigma de interacción entre procesos. Además cuenta con un paquete jmodel que permite construir de manera gráfica modelos basados en procesos. El paquete qds (query driven simulation) permite controlar la ejecución de modelos de simulación como Java beans. Es importante comentar que en las lı́neas de investigación futura sobre entornos de simulación basados en componentes, se encuentra el uso de los nuevos API de Java, Java 3D y Enterprise Java Beans (EJB), Java IDL (CORBA). Ha sido considerado en el Proyecto de investigación de Mitre-DoD y en el proyecto Physiome. 6 7 High Level Assembly, ensambladores de alto nivel. Departamento de defensa de los Estados Unidos. 20 1.3 Introducción a la Farmacocinética 1.3. Introducción a la Farmacocinética A lo largo de muchos siglos, la terapéutica se basó en la prescripción de medicamentos a dosis empı́ricas hasta que, a principios del Positivismo8 , toma cuerpo el concepto de interacción fármaco-organismo. Si la interacción del fármaco sobre el organismo constituı́a el objetivo de la Farmacodinámica, ciencia ya antigua, precursora de la Farmacologı́a actual, su referente pasivo, es decir, la acción del organismo sobre el fármaco, ha constituido en época mucho más reciente el objetivo de la Farmacocinética, que surge hace alrededor de 75 años, pero cuya aplicación práctica data de algo menos de 50. Esta nueva disciplina podrı́a definirse, en términos generales, como el estudio de la evolución temporal de los niveles de fármaco en el organismo tras la admisnistración de una dosis determinada, lo que incluye su absorción o entrada en el torrente circulatorio, su distribución a los diferentes tejidos y órganos -en algún punto de los cuales se encuentra en biofase o lugar de acción- y su eliminación del organismo, sea por excreción directa o por metabolismo, que da origen a derivados más polares y más fácilmente excretables que su precursor. Las relaciones entre ambas disciplinas son obvias: todos los procesos farmacocinéticos influyen en el comienzo, la intensidad y la duración de las respuestas farmacodinámicas e incluso pueden actuar como factores limitantes de las mismas. Hoy en dı́a la Farmacocinética constituye una herramienta imprescindible para el uso eficaz y seguro de los fármacos en determinados grupos de pacientes a través de la Farmacocinética Clı́nica 9 . La monitorización de fármacos con escaso margen de seguridad constituye un magnı́fico ejemplo de la aplicación de los principios farmacocinéticos a la práctica rutinaria de la terapéutica. Paralelamente la Farmacocinética se proyecta con fuerza sobre el diseño de fármacos y profármacos, ası́ como en el desarrollo de nuevas formulaciones tecnológicas a través de la Biofarmacia, lo que permite asegurar a nivel básico, fisicoquı́mico o, más frecuentemente, tecnológico, la biodisponibilidad óptima de un fármaco en sus respectivas formas farmacéuticas o, si se quiere, obtener de él el máximo rendimiento terapéutico. Las bases farmacocinéticas aplicables a los campos de la Farmacocinética Clı́nica y de la Biofarmacia son análogas, pero la forma en que se aplican es muy distinta. De los nuevos contextos cientı́ficos, la Biofarmacia podrı́a considerarse como el motivador, la Farmacocinética como el dinamizador, y la moderna Tecnologı́a Farmacéutica como la concreción práctica. 8 El Positivismo es una corriente o escuela filosófica que afirma que el único conocimiento auténtico es el conocimiento cientı́fico. Deriva de la epistemologı́a que surge en Francia a principios del siglo XIX. 9 La Farmacocinética Clı́nica se ocupa principalmente del ajustado individual de la posologı́a en distintos grupos poblacionales. 21 1 Introducción Los conceptos de “biodisponibilidad” y “bioequivalencia” dieron origen al nacimiento y desarrollo de la nueva ciencia farmacéutica que se conoce con el nombre de Biofarmacia. Dicha ciencia ha sido definida como la ciencia que estudia la biodisponibilidad de los fármacos en sus formas farmacéuticas y el modo de alcanzar su óptimo a través del estudio de las interacciones fármaco-forma farmacéutica-sustrato biológico. Para el desarrollo de la Biofarmacia, es necesario un conocimiento profundo de las propiedades fisicoquı́micas y biológicas del fármaco objeto de estudio y de las caracterı́sticas de la forma farmacéutica que constituye su soporte. Todos estos factores deberı́an encauzarse hacia la liberación del fármaco en el lugar preciso para su óptimo aprovechamiento, garantizando ası́ su correcta absorción, tras la cual, el fármaco sufrirá el proceso de distribución a los diferentes fluidos, tejidos y órganos (en algún punto de los cuales accederá a su biofase o lugar de acción) y, simultáneamente, será eliminado por metabolismo y/o excreción directa. El problema de la liberación del fármaco y de su modulación puede resolverse a nivel fı́sico, quı́mico o tecnológico. Los restantes procesos constituyen, en cambio, el objeto de la Farmacocinética general o básica, que se define como el estudio y caracterización de la evolución temporal de los fármacos y de sus metabolitos en el organismo, a través del análisis cinético de las curvas concentración/tiempo o cantidad/tiempo obtenidas a partir de muestras de fluidos orgánicos. La Farmacocinética, que habı́a iniciado su andadura a finales del primer cuarto de nuestro siglo, se consideraba poco menos que una curiosidad de labortorio hasta la irrupción en escena de la Biofarmacia. A partir de ese momento deja de ser pura especulación y encuentra su primera aplicación práctica importante al resolver, matemáticamente, el problema de la evaluación de la biodisponibilidad mediante la integración de todos los procesos de evolución temporal del fármaco en una magnitud concreta que se identifica, en muchos casos, con el área bajo las curvas concentración/tiempo y con su velocidad de incorporación expresada por una constante cinética fundamental. 1.3.1. Evolución temporal de los fármacos en el organismo La administración de un fármaco en una forma farmacéutica a un organismo humano o animal somete a las moléculas del fármaco a una serie de procesos que se pueden sintetizar en: liberación (L), absorción (A), distribución (D), metabolismo (M) y excreción (E). Esta evolución temporal de los fármacos en el organismo se conoce como procesos LADME y se muestra en la figura 1.7. Tomando como ejemplo la administración por vı́a oral de una forma agregada, la liberación es el primer proceso que debe sufrir el fármaco o principio activo, finalizando dicho proceso con la disolución del mismo. En el caso de la administración de una solución, este proceso no existe. Posteriormente a la liberación, tiene lugar la absorción, proceso mediante el cual las moléculas del fármaco alcanzan la circulación sanguı́nea. Este proceso no existe 22 1.3 Introducción a la Farmacocinética Figura 1.7: Secuencia de procesos LADME, [?] en el caso de la admininistración parenteral intravenosa, aunque sı́ cuando se trata de una administración parenteral extravasal, como la intramuscular o la subcutánea. Una vez que las moléculas del fármaco han alcanzado la circulación sanguı́nea tiene lugar su distribución por el organismo, llegando a un estado de equilibrio en la distribución. El tiempo necesario para que se logre dicho equilibrio es muy variable para los distintos fármacos, de modo que su mayor o menor rapidez va a condicionar el modelo cinético. Desde el momento de su llegada a la circulación sanguı́nea, y al mismo tiempo que la distribución, tiene lugar la eliminación del fármaco, que puede ser mediante metabolismo y/o excreción como fármaco inalterado por orina o bilis mayoritariamente. Como ya se ha indicado, el metabolismo y la excreción constituyen la eliminación. Por otra parte, la distribución y la eliminación componen, en su conjunto, la disposición del fármaco. Los procesos LADME se pueden describir mediante tres posibles cinéticas caracterizadas por el orden de reacción: orden uno, orden cero y orden mixto, también conocida como cinética de Michaelis-Menten. La cinética de orden uno (o primer orden) presenta la siguiente ecuación de velocidad: dQ = −k · Q dt (1.1) 23 1 Introducción donde Q representa la cantidad (en unidades de masa) de fármaco en un momento determinado, k es la constante de primer orden (tiempo) y dQ/dt representa la velocidad de desaparición del fármaco desde el lugar considerado. Resolviendo la ecuación diferencial anterior se obtiene una expresión de Q en función del tiempo: Q = Q0 · e−k·t (1.2) expresión en la que Q0 es la cantidad inicial de fármaco (a tiempo cero) y t es el tiempo transcurrido. La ecuación 1.2 puede transformarse en la ecuación de una recta si se toman logaritmos neperianos en ambos miembros de la igualdad: lnQ = lnQ0 − k · t (1.3) De esta forma, para procesos con cinética de primer orden la representación de la curva cantidad de fármaco (en logaritmo neperiano) frente al tiempo da lugar a una recta. La cinética de orden cero tiene ecuaciones equivalente a las anteriores, tal y como se muestra a continuación: dQ = −k0 dt (1.4) Q = Q0 − k0 · t (1.5) en las que k0 es la constante de orden cero, en unidades de masa/tiempo. En este caso, a diferencia de la cinética de orden 1, la representación de la ecuación 1.5 da como resultado una recta sin necesidad de transformación alguna de la ecuación. La cinética de Michaelis-Menten, o de orden mixto, presenta la siguiente ecuación de velocidad: Vm · Q dQ =− dt Km + Q (1.6) en la que Vm representa la velocidad máxima del proceso y Km se corresponde con la cantidad de fármaco relativa a una velocidad que es la mitad de la velocidad máxima (Vm /2). La forma integrada de la ecuación 1.6 se corresponde con: t= 24 1 Q0 (Q0 − Q + Km · ln ) Vm Q (1.7) 1.3 Introducción a la Farmacocinética No se ha encontrado una solución integrada de la ecuación de Michaelis-Menten en la que Q aparezca de forma explı́cita. Se toman por tanto dos situaciones lı́mite que permiten la simplificación y resolución de la ecuación anterior. Situación 1: Cantidad de fármaco muy inferior al valor de Km . Q Km En este caso puede despreciarse Q frente a Km en la ecuación 1.6, con lo que se obtiene: Vm · Q dQ ≈− = −k · Q dt Km (1.8) Esta ecuación se asemeja a una cinética de primer orden en la que k es igual al cociente de Vm y Km . Situación 2: Cantidad de fármaco muy superior al valor de Km . Q Km En este caso puede despreciarse Km frente a Q en la ecuación 1.6, con lo que se obtiene: dQ Vm · Q ≈− = −k0 dt Q (1.9) Esta ecuación se asemeja a una cinética de orden cero, siendo el valor de k0 igual al valor de Vm . Los procesos de liberación-absorción suelen presentarse, en su conjunto como un proceso de orden uno o pseudoorden uno, por lo que la cinética con la que el fármaco accede a la sangre puede representarse mediante la ecuación 1.8. Aunque esta ecuación puede emplearse para describir la velocidad de absorción de la mayorı́a de los fármacos, en ocasiones la absorción propiamente dicha puede tener lugar de acuerdo con una cinética de Michaelis- Menten, ecuación 1.6. Por otra parte, las caracterı́sticas de la forma farmacéutica pueden ocasionar que la desaparición del fármaco desde el lugar de absorción discurra según una cinética aparente de orden cero, como sucede frecuentemente cuando se utilizan sistemas de liberación sostenida, ecuación 1.9. La distribución de los fármacos responde, en general, a una cinética de primer orden. El metabolismo es un proceso que intrı́nsicamente se corresponde a una cinética de Michaelis-Menten. No obstante, si las concentraciones de fármaco en plasma no 25 1 Introducción son muy elevadas, dicho proceso puede aproximarse mediante una cinética de orden uno, como se ha indicado anteriormente. La excreción por vı́a renal puede tener lugar a través de diversos mecanismos. Ası́, la filtración glomerular y reabsorción tubular son procesos de primer orden, mientras que la secreción tubular activa es un proceso con cinética de MichaelisMenten, aunque al igual que se ha indicado para el metabolismo, si la concentración del fármaco no es muy elevada, puede presentarse como un proceso de primer orden aparente. En los procesos del LADME se aprecia la existencia de una interdependencia entre ellos, presentándose algunos de estos procesos de modo consecutivo. En el caso de procesos consecutivos, como pueden ser los de liberación y absorción, si el primero (liberación) es más lento que el segundo (absorción), la velocidad, e incluso el orden del segundo, quedan supeditados a los del primero. Se dice, en este caso, que la liberación es factor limitativo de la absorción. El estudio del LADME en humanos, más limitado que en animales de experimentación, se lleva a cabo mediante muestras de orina y sangre. Por ello, dicho estudio se aborda mediante dos tipos de datos: las concentraciones plasmáticas y las cantidades excretadas en la orina de fármaco inalterado, obtenidas a distintos tiempos tras la administración. La representación frente al tiempo de los datos anteriores configura: Las curvas de nivel plasmático. Las curvas de excreción urinaria: distributivas o acumulativas. 1.3.2. Modelado farmacocinético compartimental La Farmacocinética posee una base matemática clara, ya que describe los fenómenos de transferencia de las concentraciones de fármaco, regidos por constantes cinéticas de velocidad, sea desde el lugar de absorción hacia el plasma, de intercambio entre los distintos sectores o compartimentos orgánicos, o de eliminación y acumulación en los lugares de excreción del fármaco. Esencialmente, para instaurar una terapeútica racional, es tan importante conocer las caracterı́sticas farmacodinámicas de un medicamento como su comportamiento farmacocinético. Un sistema farmacocinético está orientado a la descripción de los procesos LADME en los organismos y no considera la biofase o lugar y mecanismos fisicoquı́micos que provocan el efecto terapéutico. Con el fin de lograr una adecuada descripción de la evolución temporal de los niveles del fármaco, se recurre a modelos en los que se expresan matemáticamente las velocidades de los procesos de absorción, distribución y eliminación, que finalmente llevan a ecuaciones que permiten describir y predecir las cantidades o concentraciones 26 1.3 Introducción a la Farmacocinética del fármaco en el cuerpo en función del tiempo. La comparación de las predicciones del modelo con los datos que pueden obtenerse experimentalmente permite constrastar las hipótesis de partida utilizadas en la elaboración del mismo, ası́ como nuevas hipótesis. Una de las caracterı́sticas más interesantes de los sistemas farmacocinéticos es que pueden ser considerados modelos fisiológicos simplificados. La adición de caracterı́sticas anatómicas y de transporte mecánico (presiones hidráulicas, rutas metabólicas, etc.) permite su extensión para considerar dominios fisiológicos, aprovechando las ventajas y éxito demostrado de la farmacocinética. Este éxito parte de los principales componentes que describen un modelo farmacocinético compartimental: pools bien agitados y membranas. Ambos componentes están distribuidos siguiendo una primera división anatómica, para sustituir en una fase posterior varios de los subsistemas farmacocinéticos por modelos fisiológicos acoplados, con niveles de descripción diferentes. Los modelos compartimentales son los más utilizados en farmacocinética. Un compartimento representa una fracción de material biológico en el que el fármaco se supone uniformemente distribuido y en el que presenta las mismas propiedades cinéticas. Ası́ pues, un compartimento tiende a agrupar zonas orgánicas afines, pero en realidad se trata de un concepto meramente cinético, cuya entidad no es necesariamente fisiológica en sentido estricto, aunque sı́ abarca zonas con constantes cinéticas semejantes. Un compartimento viene definido por sectores acuosos que ocupan un volumen determinado (V) y que contienen una cantidad determinada de fármaco (Q). Por tanto, la concentración de fármaco (C) en el compartimento vendrá dada por el cociente entre Q y V. El organismo es muy complejo y teóricamente podrı́a dividirse en un gran número de compartimentos (uno por cada tejido diferente, por ejemplo). Sin embargo, ello llevarı́a a un tratamiento matemático muy complejo de los procesos cinéticos a los que se halları́a sometido el fármaco en cada uno de dichos compartimentos. En la práctica se recurre a una simplificación drástica y se considera al organismo constituido por el mı́nimo número posible de compartimentos, siempre que con ello se pueda lograr una adecuada descripción farmacocinética. Otro aspecto importante a tener en cuenta en la elaboración de un modelo farmacocinético es si se trata de un modelo cinético lineal o no lineal. Definiéndose la linealidad cinética como una proporcionalidad directa entre velocidades de transferencia y concentraciones. Por tanto, un modelo farmacocinético lineal es aquél en el que los procesos responden a una cinética de primer orden (proporcionalidad directa entre velocidad y concentración, o velocidad y cantidad si no hay variación de volumen). 27