Indicaciones:

Ejercicio 1

Este fichero contiene los datos de la velocidad V a la que tiene lugar cierta reacción enzimática para distintas concentraciones S.

En el contexto de la cinética enzimática hay dos constantes (parámetros) importantes que caracterizan cada reacción:

  • La velocidad máxima de reacción Vmax
  • La constante de Michaelis KM, que es una combinación de varias constantes cinéticas propia de cada reacción.

La gráfica te permite visualizar Vmax y KM. La curva es una hipérbola rectangulas, cuya expresión es

\[V = \frac{b_0·S}{1+b1·S}\]

En el leguaje de las funciones:

  • Vmax es la asíntota de la hipérbola
  • KM es la concentración a la que se alcanza la mitad de la velocidad máxima

Guarda el contenido del fichero de datos en la variable enzimas. Determina los coeficientes de la curva que mejor ajusta esta nube de puntos.

En primer lugar, hay que visualizar la nube de puntos. La segunda pregunta sugiere considerar S como variable explicativa y V como la variable respuesta

plot(enzimas$S, enzimas$V, cex = 0.5, pch = 19, col = "red")

La forma del gráfico sugiere o bien un modelo logarítmico

\[V = b_0+b_1·\ln(S) \]

o bien una hiperbóla rectangular (puede que ya sepas que las reacciones enzimáticas de tipo Michaelis-Menten siguen una hipérbola).

La estrategia pasa por hacer una transformación en los datos (un cambio de variable) que los “linealice”, porque lo que sabemos ajustar es datos que etén dispuestos como una recta.

Por ejemplo, para el logaritmo, fíjate en que si llamas \(W=\ln(S)\) la expresión de arriba queda como

\[V = b_0+b_1·W \]

Es decir, si los datos se parecen a un logaritmo al representar \((\ln(S), V)\) (dcha) en lugar de \((S,V)\) (izq) deberías ver los datos alineados

par(mfrow=c(1,2))
plot(enzimas$S, enzimas$V, cex = 0.5, pch = 19, col = "red", main = "(S,V)")
plot(log(enzimas$S), enzimas$V, cex = 0.5, pch = 19, col = "red", main = "(ln(S), V)")

par(mfrow=c(1,1))

como efectivamente ocurre.

En el caso de la hiperbola rectangular el cambio de variable que transforma \[ V = \frac{b_0 S}{1 + b_1S} \] en una recta es \(S = 1/S_{inv}\), \(V = 1/V_{inv}\), y se llama doble recíproco. Si haces ese cambio, tienes

\[ \frac{1}{V_{inv}} = \frac{b_0 \frac{1}{S_{inv}}}{1 + b_1\frac{1}{S_{inv}}} \] multiplica el numerador y el denominador de la fracción de la derecha por \(S_{inv}\) para obtener

\[ \frac{1}{V_{inv}} = \frac{b_0 }{S_{inv} + b_1} \] lo que equivale a

\[ S_{inv} + b_1 = b_0 V_{inv} \] es decir, resordenando sumandos

\[ V_{inv} = \frac{b_1}{b_0} + \frac{1}{b_0}·S_{inv} \] que es la ecuación de una recta. Podemos visualizar esta transformación

par(mfrow=c(1,2))
plot(enzimas$S, enzimas$V, cex = 0.5, pch = 19, col = "red", main = "(S,V)")
plot(1/enzimas$S, 1/enzimas$V, cex = 0.5, pch = 19, col = "red", main = "(1/S,1/V)")

par(mfrow=c(1,1))

Tenemso que elegir, pués, entre dos candidatos a modelo. Y para ponernos de acuerdo recurrimos a los coeficientes de detarminación, que indican en qué proporción explica cada modelo la variación conjunta de los datos

Para el logaritmo

cor(log(enzimas$S), enzimas$V)^2
## [1] 0.8409003

Para el cambio a una hipérbola rectangular

cor(1/enzimas$S, 1/enzimas$V)^2
## [1] 0.8815699

La hipérbola explica en mayor proporción el comportamiento de los datos.

Para determinar los coeficientes \(b_0\) y \(b_1\) de la hipérbola, vamos a ajustar los datos transformados. Define

V_inv = 1/enzimas$V
S_inv = 1/enzimas$S

calcula el modelo lineal y obten los coeficientes

modelo = lm(V_inv ~ S_inv)
(modelo$coefficients)
## (Intercept)       S_inv 
##  0.20303861  0.06416347

para usarlos más tarde, vamos aguardarlos en sendas variables

Esto proporciona da la fórmula

\[V_{inv} = 0.2030386 + 0.0641635 · S_{inv} \]

Para obtener los valores de \(b_0\) y \(b_1\), recuerda que \[ V_{inv} = \frac{b_1}{b_0} + \frac{1}{b_0}·S_{inv} \] Para que ds rectas sean iguales tienen que tener el mismo término independiente y la misma pendiente, es decir, \[\frac{1}{b_0}=0.0641635 = \text{pendiente de la recta $S_{inv}$, $V_{inv}$}\] \[\frac{b_1}{b_0}=0.2030386 = \text{término independiente de la recta $S_{inv}$, $V_{inv}$}\]

Puedes despejar los coeficientes

\[b_0=\frac{1}{0.0641635}=15.5851927\]

y

\[b_1=0.2030386b_0 =3.1643958\]

de donde la fórmula de la hipérbola es

\[ V = \frac{15.5851927 * S}{1 + 3.1643958* S}\]

Si defines

termIndpte = unname(modelo$coefficients[1])
pendiente  = unname(modelo$coefficients[2])

b0 = 1/pendiente
b1 = b0*termIndpte

puedes representar la nube de puntos original, y la curva que la aproxima

plot(enzimas$S, enzimas$V, cex = 0.5, pch = 19, col = "red", 
     xlim = c(0,5), ylim = c(0, 6))
par(new = TRUE)
x = seq(from = 0, to = 5, by = 0.001)
plot(x, b0*x/(1+b1*x), cex = 0.25, pch = 19, col = "blue", 
     xlim = c(0,5), ylim = c(0, 6), xlab = "", ylab = "")

Determina ahora Vmax y KM para los datos que tienes

Por un lado, la asíntota de la hipérbola se calcula como un límite:

\[\lim_{S\to\infty}\frac{15.5851927 * S}{1 + 3.1643958* S} = \frac{15.5851927}{3.1643958} =4.9251716\]

Por otro lado, KM cumple la condición:

\[Vmax/2 = \frac{b_0*KM}{1+b_1*KM}\] Despejando KM se tiene \[KM=\frac{Vmax}{b_0+b_1Vmax}= 0.158008\]

Calcula la velocidad que predice el modelo para una concentración de sustrato S = 3.

Hay dos alternativas:

O bien sustituyes en la ecuación de la hipérbola

b0*3/(1+b1*3)
## [1] 4.455803

O bien, puedes sustituir directamente en la recta de regresión obtenida \[ V_{inv} = \frac{S_{inv}}{b_0} + \frac{b_1}{b_0} \]

es decir,

\[\frac{1}{V} = 0.0641635 \frac{1}{3} + 0.2030386 = 0.2244264\]

y despejar

\[V = \frac{1}{0.2244264} = 4.4558031\]