Enzyme Kinetics
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
SIMULADOR DE CINÉTICA ENZIMÁTICA
¿DE QUÉ SE TRATA?
Este simulador sirve para estudiar la cinética enzimática de un sistema michaeliano de sustrato único, con una cantidad de enzima fija, en condiciones constantes de pH y temperatura. El desarrollo de las actividades que te proponemos está estructurado de la misma manera que el práctico de laboratorio.
El simulador incluye una representación gráfica para ayudar a visualizar las interacciones entre enzimas (rojas) y sustratos (verdes) y la formación de producto (rosa).
En este tipo de sistemas, para una dada concentración de sustrato, la velocidad, expresada como formación de producto en función del tiempo, se mantiene constante durante un cierto período y se la denomina velocidad inicial (V). Se calcula como la pendiente de P vs t en ese tiempo. Luego, puede disminuir por diferentes motivos (consumo de sustrato, inhibición por producto, degradación de la enzima, etc.), como se ve en el siguiente gráfico:
A mayores concentraciones de sustrato, la velocidad de formación de producto también es mayor, hasta llegar a una concentración de sustrato a partir de la cual la velocidad inicial no sigue aumentando. Esa es la velocidad máxima (Vm), para esa enzima en esas condiciones.
Para determinar Vm se realizan corridas en las mismas condiciones, pero variando la concentración de sustrato, y se registra la velocidad inicial. Se grafica V vs S, la curva de Michaelis-Menten. La curva se puede linealizar por el método de Lineweaver-Burk si se calculan las inversas, es decir, si se grafica 1/V vs 1/S. En este gráfico, Vm es igual a 1/(ordenada al origen).
Además, se define Km como la concentración de sustrato a la cual se alcanza la mitad de la velocidad máxima. Se puede obtener experimentalmente como el cociente entre la pendiente y la ordenada al origen de la recta del gráfico de Lineweaver-Burk.
Tanto Vm como Km son parámetros que caracterizan la cinética de una enzima. En presencia de inhibidores, estos parámetros se ven afectados de distintas maneras.
El objetivo de este trabajo práctico virtual es que realices las actividades de los recuadros grises y elabores un informe con tus conclusiones.
PRIMERA ACTIVIDAD
Te proponemos simular un ensayo en donde podrás determinar la formación de producto en función del tiempo a una determinada concentración de sustrato. Luego, vas a poder realizar nuevos ensayos con distintas concentraciones de sustrato para observar cómo cambia la velocidad.
Para cada ensayo, establecé la concentración de sustrato con el deslizador, luego apretá el botón de Armar y, finalmente, el de Empezar. Para que el simulador corra más rápido, se puede destildar la opción de "Actualizar la vista" en la barra de herramientas. También podés deshabilitar la terminal de instrucciones desde el menú Herramientas > Ocultar Entrada de Comandos.
Para cada ensayo de P vs t, copiá o exportá los datos obtenidos a una hoja de cálculos.
Notas acerca de la exportación a una hoja de cálculos: -Es posible que el programa te indique que el formato del archivo es distinto al especificado por su extensión. Esto no debería causarte problemas. Presioná OK y seguí adelante. -Cuando abras el archivo exportado en la hoja de cálculos, puede que se abra el asistente para convertir texto en columnas. Si es así, elegí el tipo de datos "Delimitados", con separadores "Tabulación" y formato "General".
Dado que la cuantificación de producto se realiza mediante una reacción colorimétrica, se debe considerar su límite de detección y sensibilidad. Es por ello que, en este sistema experimental, la detección de producto por debajo de 5 µmoles tiene un error inaceptable en mediciones por simplificado.
Para cada concentración de sustrato es importante evaluar por cuánto tiempo se mantiene la linealidad ya que, en la segunda actividad, el programa calcula la velocidad inicial según el tiempo de corrida que especifiques.
Para cada concentración de sustrato, establecé por cuántos minutos se mantiene la linealidad mediante un gráfico y su regresión lineal (considerá un R2 mayor o igual a 0.99). ¿Cuál es el tiempo mínimo que debe durar cada ensayo para que se mantenga la linealidad y la concentración de producto sea detectable?
Una vez que determinaste el tiempo mínimo que debe durar cada ensayo, podés utilizar ese tiempo para construir la curva de Michaelis-Menten y calcular Vm y Km, como te proponemos en la segunda actividad.
SEGUNDA ACTIVIDAD
Utilizando como tiempo de corrida (Minutos-por-corrida) el que se determinó en la primera actividad, se pueden realizar ensayos a punto final para diferentes concentraciones de sustrato con el fin de construir un gráfico de Michaelis-Menten y otro de Lineweaver-Burk.
Utilizá como mínima concentración de sustrato (Sustrato-inicial-min) una de las concentraciones que utilizaste en la primera actividad que sea lo suficientemente alta como para detectar producto sin error y lo suficientemente baja como para barrer un rango amplio de concentraciones. Tené en cuenta que el programa corre hasta una concentración inicial de sustrato de 1.5 M.
Recordá primero establecer las condiciones experimentales, luego Armar y, finalmente, Empezar. El programa te avisará cuando haya terminado el experimento.
Copiá o exportá los datos obtenidos para Lineweaver-Burk y utilizá una hoja de cálculos para calcular Vm y Km mediante una regresión lineal. ¿Qué valor de los parámetros cinéticos obtuviste?
Resulta interesante estudiar la acción de inhibidores sobre la cinética enzimática. Existen distintos tipos de inhibición reversible, como los que se muestran a continuación:
¿Cómo esperarías que varíe Vm y Km con cada tipo de inhibidor?
Ahora, realizá otro experimento para construir la curva de Michaelis-Menten, pero en presencia de alguno de los inhibidores a concentración fija. Utilizá el mismo tiempo de corrida y la misma concentración de sustrato mínima que utilizaste antes.
Realizá el mismo análisis que antes. ¿Qué valor de Vm' y Km' obtenés?
Superponé los datos en el gráfico sin inhibidor y corroborá visualmente de qué tipo de inhibidor se trata.
Una de las características de un inhibidor es su Ki, que da idea de cuánto se disocia el complejo enzima-inhibidor y tiene unidades de concentración.
El Ki se puede calcular a partir de rectas de Lineweaver-Burk que se obtienen para distintas concentraciones de inhibidor. Para ello, se debe graficar el valor de cada pendiente en función de la concentración de inhibidor utilizada, realizar una regresión lineal, prolongar la recta resultante hasta intersectar el eje x y determinar Ki como el módulo del valor que toma esta intersección.
Construí la curva de Lineweaver-Burk para distintas concentraciones del inhibidor que utilizaste antes.
Determiná la pendiente de cada curva y graficalas en función de cada concentración de inhibidor. ¿Cuál es el valor de Ki?
ACERCA DE LA DISTRIBUCIÓN
Este simulador está constituido por un archivo principal .netlogo y una serie de imágenes que deben encontrarse en el mismo directorio que el archivo principal.
Se utilizó la coma como separador decimal para adecuarse al idioma de los usuarios. Para utilizar los datos con un punto como separador decimal, se pueden hacer los cambios en el código que se indican en la solapa Código (tres instancias).
Esta versión de este simulador también se encuentra subida al NetLogo User Community Models en http://ccl.northwestern.edu/netlogo/models/community/ y al Modeling Commons de NetLogo en http://modelingcommons.org/ para su utilización como un applet que utiliza Java.
DERECHOS DE AUTOR Y LICENCIA
Desarrollado por Cecilia T. Herbert y Roberto G. Pozner
Basado en el modelo de Stieff, M. and Wilensky, U. (2001). NetLogo Enzyme Kinetics model. http://ccl.northwestern.edu/netlogo/models/EnzymeKinetics. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Software: Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Comments and Questions
;; First English version of simulator breed [ enzimas enzima] ;; agentes rojos que se unen y catalizan el sustrato breed [ sustratos sustrato ] ;; agentes verdes que se unen a la enzima y pueden reaccionar breed [ inhibidores inhibidor ] ;; agentes amarillos que se unen a la enzima pero no pueden reaccionar breed [ productos producto ] ;; agentes azules que se generan a partir de la interaccion sustrato-enzima turtles-own [ companiero ;;correposnde al nombre del otro agente del complejo o a "nobody" si no esta acomplejado ] ;;definicion de variables, se incluyen las variables globales definidas por interfaz globals [ sustrato-inicial ;; guarda la concentracion de sustrato inicial de cada corrida (para grafico de MM) v ;; tasa de formacion de producto K1 ;; constante de asociacion de enzima y sustrato K2 ;; constante de disociacion de complejo ES en enzima y sustrato K3 ;; constante de disociacion de complejo ES en enzima y producto Kia ;; constante de asociacion del inhibidor Ki ;; constante de disociacion del inhibidor n ;; cantidad de repeticiones de cada corrida para una concentracion de sustrato ind ;; indice para contar la cantidad de iteraciones del ciclo de repeticiones que lleva hechas ;Conc-sustrato ;; concentracion de sustrato para PvsT sustrato-conv ;; concentracion de sustrato para PvsT convertido a cantidad de moleculas ;Tipo-inhibidor ;; Ninguno, Inhibidor A o Inhibidor B (reversibles) cantidad-enzimas ;; cantidad de enzimas Sustrato-inicial-min-conv ;; concentracion de sustrato inicial para MM convertido a cantidad de moleculas escalon-orden1 ;; cantidad de concentraciones de sustrato que se toman para la primera parte de MM sustrato-inicial-ordenm ;; cantidad de sustrato a partir de la cual se hace el segundo escalonado escalon-ordenm ;; cantidad de concentraciones de sustrato que se toman para la parte media de MM sustrato-inicial-orden0 ;; cantidad de sustrato a partir de la cual se hace el tercer escalonado escalon-orden0 ;; cantidad de concentraciones de sustrato que se toman para la ultima parte de MM sustrato-inicial-max-conv ;; concentracion de sustrato final para MM convertido de concentracion a cantidad de moleculas ;Conc-inhibidor ;; concentracion de sustrato para MM inhibidor-conv ;; concentracion de sustrato para MM convertida a cantidad de moleculas ;Minutos-por-corrida ;; cantidad maxima de ticks para una corrida de MM max-minutos ;; cantidad maxima de ticks para una corrida de PvsT ] ;;seteo de variables FIJO para una enzima y dos inhibidores determinados to set-variables set cantidad-enzimas 10000 set K1 40 set K2 90 set K3 15 set Kia 5 if Tipo-inhibidor = "Inhibidor A"[ set Ki 90 set inhibidor-conv Conc-inhibidor * 1E5] if Tipo-inhibidor = "Inhibidor B"[ set Ki 5 set inhibidor-conv Conc-inhibidor * 1E5] set n 1 ;; FIJO para hacer solo una repeticion de cada corrida set sustrato-conv Conc-sustrato * 1E5 set Sustrato-inicial-min-conv Sustrato-inicial-min * 1E5 set escalon-orden1 8 ;; puntos en el orden 1, antes de Km set sustrato-inicial-ordenm 0.2 * 1E5 ;; tomamos orden1 hasta este valor FIJO set escalon-ordenm 6 ;; puntos en el orden mixto set sustrato-inicial-orden0 0.6 * 1E5 ;; tomamos orden mixto hasta este valor FIJO set escalon-orden0 3 ;; puntos en el orden 0 set sustrato-inicial-max-conv 1.5 * 1E5 ;; FIJO asi no son demasiadas moleculas set max-minutos 30 ;; FIJO asi no no dejan correr por demasiado tiempo end ;; procedimiento del observador para agregar moleculas a la reaccion to add [tipo cantidad] crt cantidad [ set breed tipo setxy random-xcor random-ycor set companiero nobody setshape ] end ;; procedimiento para asignar formas, colores y comportamiento (escondido o no) a los agentes, ;; segun corresponde segun su estado. to setshape ifelse breed = enzimas [ set color red ifelse companiero = nobody [ set shape "enzyme" ] [ ifelse ([breed] of (companiero) = sustratos) [ set shape "complex" ] [if Tipo-inhibidor != "Ninguno" [set shape "inhib complex rev"] ] ]] [ ifelse breed = sustratos [ set color green set shape "substrate" set hidden? (companiero != nobody) ] [ ifelse breed = inhibidores [ set color yellow set shape "inhibitor rev" set hidden? (companiero != nobody) ] [ if breed = productos [ set color pink + 4 set shape "substrate" set hidden? false ] ] ] ] end ;; procedimiento base del modelo to go ask turtles [ move ] ask enzimas [ form-complex ] ;; las enzimas pueden formar complejo con un sustrato o un inhibidor ask sustratos [ react-forward ] ;; los sustratos acomplejados pueden convertirse en producto ask enzimas [ dissociate ] ;; o los complejos pueden simplementerte desacomplejarse end ;; procedimiento del observador para setear PvsT to setearPvsT set-patch-size 13.56 ;; garantiza que se corra siempre con el mismo tamano, sin importar si el usario modifico el mundo resize-world -12 12 -12 12 ;; garantiza que se corra siempre con el mismo tamano, sin importar si el usario modifico el mundo clear-all set-variables set sustrato-inicial sustrato-conv set v 0 add enzimas cantidad-enzimas add sustratos sustrato-conv ;; corre con concentracion de sustrato segun slider reset-ticks output-print (word "[S] = " (sustrato-inicial * 1E-5) " M") ;; esta seccion saca por terminal las condiciones experimentales output-type "\n" output-type "t" ;; esta seccion le pone titulos a las columnas de la terminal de salida output-type "\t" output-type "[P]" output-type "\n" output-type "(min)" output-type "\t" output-type "(µmoles)" output-type "\n" end ;; procedimiento principal para PvsT to correrPvst if ticks > max-minutos [ user-message ("Terminó de correr P(t). Podés copiar los resultados de la Terminal de salida o exportarlos con el botón \"Exportar datos\". La primera columna corresponde a t (min) y la segunda, a [P] (µmoles).") clear-ticks stop ] go do-Pvst-plot output-type ticks ;; esta seccion imprime a la terminal de salida output-type "\t" let numeroSinComa precision ((count productos) * 1E-2) 2 ;; esta seccion cambia numeros con punto decimal a coma decimal ;; output-type numeroSinComa ;; descomentar esta linea y comentar la linea de abajo para pasar los números a punto decimal output-type (word int(numeroSinComa) "," precision (((numeroSinComa - int(numeroSinComa)) * 100)) 2) output-type "\n" tick end ;; procedimiento de agentes para moverse to move fd 1 rt random-float 360 end ;; procedimiento de enzimas para formar complejos cuando se encuentra en ;; la misma parcela que un sustrato o un inhibidor. Cuando se encuentra con un ;; sustrato, se acompleja con porcentaje K1 y, con un inhibidor, con Kia. to form-complex if companiero != nobody [ stop ] set companiero one-of (other turtles-here with [companiero = nobody]) if companiero = nobody [ stop ] if [companiero] of companiero != nobody [ set companiero nobody stop ] ;; por las dudas que dos enzimas elijan el mismo companiero ifelse ((([breed] of companiero) = sustratos) and ((random-float 100) < K1)) or (([breed] of companiero) = inhibidores and (Tipo-inhibidor = "rev-comp") and ((random-float 100) < Kia)) or (([breed] of companiero) = inhibidores and (Tipo-inhibidor = "irrev")) [ ask companiero [ set companiero myself ] setshape ask companiero [ setshape ] ] [ set companiero nobody ] end ;; procedimiento de sustratos acomplejados para formar producto ;; y que este sea liberado de la enzima, con porcenaje K3 to react-forward if (companiero != nobody) and (random-float 100 < K3) [ set breed productos ask companiero [ set companiero nobody ] let companiero-anterior companiero set companiero nobody setshape ask companiero-anterior [ setshape ] ] end ;; procedimiento de enzimas para disociar complejos: ;; ocurre con pocentaje K2 si el companiero es sustrato o con Ki si es inhibidor to dissociate if companiero != nobody [ if (([breed] of companiero = sustratos) and (random-float 100 < K2)) or (([breed] of companiero) = inhibidores and (Tipo-inhibidor = "rev-comp") and ((random-float 100) < Ki)) [ ask companiero [ set companiero nobody ] let companiero-anterior companiero set companiero nobody setshape ask companiero-anterior [ setshape ] ] ] end ;; procedimiento para calcular la velocidad tomando la cantidad de productos desacomplejados ;; (asume que al comienzo de cada corrida la cantidad de productos es cero) to calculate-velocity let current-conc count productos with [companiero = nobody] if ticks > 0 [ set v (current-conc * 1E-5) / ticks ] end ;; procedimientos para graficar ;; grafica concentracion de productos en funcion del tiempo para curva de PvsT to do-Pvst-plot set-current-plot "P(t)" plot (count productos) * 1E-2 end ;; grafica concentracion de sustrato inicial en funcion de velocidad para curva de MM to do-mm-plot set-current-plot "Curva Michaelis-Menten" plotxy (sustrato-inicial * 1E-5) (v * 1E3) end ;; grafica las inversas de MM to do-imm-plot set-current-plot "Lineweaver-Burk" if (sustrato-inicial > 0 and v > 0) [ plotxy (1 / (sustrato-inicial * 1E-5)) (1 / (v * 1E3)) ] end ;; procedimiento del observador para setear MM to setearExperimento no-display ;; logra que corra mas rapido el modelo set-patch-size 13.56 ;; garantiza que se corra siempre con el mismo tamano, sin importar si el usario modifico el mundo resize-world -12 12 -12 12 ;; garantiza que se corra siempre con el mismo tamano, sin importar si el usario modifico el mundo clear-all set-variables if (Sustrato-inicial-min <= 0.0 or Sustrato-inicial-min > 1.6 or Minutos-por-corrida <= 0.0 or Minutos-por-corrida > 20)[ user-message ("Verificá la concentración de sustrato inicial mínima y los minutos por corrida: no pueden ser cero y, además, deben estar en un rango aceptable (para las concentraciones, hasta 1.6 M y para el tiempo, 20 minutos).") stop] set sustrato-inicial Sustrato-inicial-min-conv reset-ticks output-print (word "Mínima conc. de sustrato inicial = " sustrato-inicial-min " M") ;; esta seccion saca por terminal las condiciones experimentales output-print (word "Tiempo de cada corrida = " minutos-por-corrida " min") output-print word "Tipo de inhibidor: " tipo-inhibidor if tipo-inhibidor != "Ninguno" [ output-print (word "Conc. de inhibidor = " conc-inhibidor " M")] output-type "\n" output-type "1/[S]" ;; esta seccion le pone titulos a las columnas de la terminal de salida output-type "\t" output-type "1/V" output-type "\n" output-type "(1/M)" output-type "\t" output-type "(min/nmoles)" output-type "\n" end ;; procedimiento principal para MM to correrExperimento if (Sustrato-inicial-min <= 0.0 or Sustrato-inicial-min > 1.6 or Minutos-por-corrida <= 0.0 or Minutos-por-corrida > 20)[ user-message ("Verificá la concentración de sustrato inicial mínima y los minutos por corrida y volvé a armar MM.") clear-ticks stop] if sustrato-inicial > sustrato-inicial-max-conv [ user-message ("Terminó de correr el experimento de MM. Podés copiar los resultados de la Terminal de salida o exportarlos con el botón \"Exportar datos\". La primera columna corresponde a 1/[S] (1/M) y la segunda, a 1/V (min/nmoles).") clear-ticks stop] clear-turtles ;; borra la vista pero mantiene los graficos de MM set-current-plot "P(t)" ;; reinicia grafico de Pvst para cada corrida clear-plot set v 0 add enzimas cantidad-enzimas add sustratos sustrato-inicial ;; agrega sustrato segun "sustrato-inicial" (la primera vez vale "Sustrato-inicial-min-conv") add inhibidores inhibidor-conv ;; agrega una concentracion constante de inhibidor while [ticks < Minutos-por-corrida] [ ;; corrida de P(t) tal como el procedimiento go go calculate-velocity do-Pvst-plot ;; grafica Pvst en cada tick de cada corrida de MM tick] do-mm-plot ;; grafica MM en cada corrida do-imm-plot ;; grafica inversas de MM en cada corrida ;; a partir de aca, esta seccion imprime a la terminal de salida let xSinComa precision (1 / (sustrato-inicial * 1E-5)) 2 ;; esta seccion cambia numeros con punto decimal a coma decimal ;; output-type xSinComa ;; descomentar esta linea y comentar la linea de abajo para pasar los números a punto decimal output-type (word int(xSinComa) "," precision (((xSinComa - int(xSinComa)) * 100)) 2) output-type "\t" let ySinComa precision (1 / (v * 1E3)) 2 ;;esta sección cambia numeros con punto decimal a coma decimal ;; output-type ySinComa ;; descomentar esta linea y comentar la linea de abajo para pasar los números a punto decimal output-type (word int(ySinComa) "," precision (((ySinComa - int(ySinComa)) * 100)) 2) output-type "\n" reset-ticks ;; incremento escalonado de concentracion inicial de sustrato ;; para orden1, primera parte de la curva (hasta el inicio de ordenm), tomamos escalon-orden1 escalones ifelse sustrato-inicial < sustrato-inicial-ordenm [set sustrato-inicial sustrato-inicial + ((sustrato-inicial-ordenm - Sustrato-inicial-min-conv) / escalon-orden1)] [ifelse sustrato-inicial > sustrato-inicial-orden0 [ ;; para orden0, ultima parte de la curva (a partir de sustrato-inicial-max), tomamos escalon-orden0 escalones set sustrato-inicial sustrato-inicial + ((sustrato-inicial-max-conv - sustrato-inicial-orden0) / escalon-orden0)][ ;; para orden mixto, parte media de la curva (hasta el inicio de orden0), tomamos escalon-ordenm escalones set sustrato-inicial sustrato-inicial + ((sustrato-inicial-orden0 - sustrato-inicial-ordenm) / escalon-ordenm)]] end to export-data user-message ("Elegí una ubicación y un nombre de archivo. Si en el directorio ya existe un archivo con ese nombre, se sobrescribirá.") let direccion user-new-file if is-string? direccion ;; verifica que se obtuvo un string, en caso de que el usuario haya cancelado [if file-exists? direccion [ file-delete direccion ] ;; elimina el archivo si este ya existe en la ubicación elegida export-output word direccion ".xls" user-message (word "Se generó el archivo en " direccion ".xls. Podés abrirlo con una hoja de cálculo.\nLos datos de la primera columna corresponden a las x y los de la segunda, a las y.") ] end ; Copyright 2001 Uri Wilensky. ; See Info tab for full copyright and license.
There is only one version of this model, created over 11 years ago by George Dombi.
Attached files
No files