Para cierta enzima, se ha medido en laboratorio la velocidad de reaciónV en función de la concentración de sustrato [S]. Puedes descargar los datos de aquí El siguiente gráfico muestra la distribución de esos datos

La forma de esa nube de puntos recuerda poderosamente a la gráfica de una hipérbola, que se corresponde con una curva de forma genérica \[\begin{equation}\label{fun} V = \dfrac{a[S]}{1+b[S]} \end{equation}\]

y cuya gráfica para, por ejemplo, a = 20 y b = 5 es

hiperb = function(x, a, b){
  a*x/(1+b*x)  
}
x = seq(from = 0, to = 5, by = 0.001)
y = hiperb(x, 20, 5)
plot(x,y,pch = 19, cex = .4, xlim = c(0,5), ylim =c(0,5))

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

En el lenguaje de las funciones \(V_{max}\) es la asíntota horizontal de la función \(V([S])=a[S]/(1+b[S])\), es decir, \[V_{max}=\lim_{[S]\to\infty} \dfrac{a[S]}{1+b[S]}=\dfrac{a}{b}\] La constante cinética \(K_M\) se obtiene resolviendo la ecuación \[V_{max}/2=\dfrac{a[S]}{1+b[S]}\] que, gráficamente, se visualiza como

Como \(V_{max}=a/b\), si resuelves la ecuación anterior obtendrás que \(K_M=1/b\).

Es decir, si, conseguimos estimar valores apropiados a y bpara obtener una hipérbola que proxime bien los valores de [S] y V obtenidos experimentalmente podremos obtener (de forma aproximada) los valores que caracterizan la reacción enzimática: \(V_{max}\) y \(K_M\).

Transformar los datos para que se dispongan conforme a una recta:

Hay varias transformaciones (ver página de Angel Herráenz), aquí se explica una de ellas.

Resulta que si en la expresión \[\begin{equation} V = \dfrac{a[S]}{1+b[S]} \end{equation}\] sustituimos las variables \([S]\) y \(V\) por las nuevas variables \(1/[S]_{inv}\) y \(1/V_{inv}\) (este cambio de variable se llama doble recíproco) es decir, \[\begin{equation} \frac{1}{V_{inv}} = \dfrac{a\frac{1}{[S]_{inv}}}{1+b\frac{1}{[S]_{inv}}} \end{equation}\] y simplicamos la expresión (te animamos a reordenar los términos en el castillo de fracciones), se obtiene \[\begin{equation} V_{inv} = \dfrac{1}{a}[S]_{inv} + \frac{b}{a} \end{equation}\]

Este hecho sugiere que si en lugar de trabajar con
[S] y V lo hacemos con 1/[S] y 1/V, la nueva serie de datos estará distribuida aproximadamente como una recta, y podremos usar las técnicas de recta de regresión para calcular la reca \(y = b_1x+b_0\) que mejor aproxima los datos transformados. Vamos a ello:

Partimos de los valores experimentales:

df = data.frame(S, V)
library(knitr)
## Warning: package 'knitr' was built under R version 4.1.3
kable(head(df))
S V
4.636364 4.683321
2.778447 4.347691
2.452139 4.592657
1.585406 3.871038
3.896423 4.635586
3.909290 4.402209

invertimos esos datos

S_inv = 1/S
V_inv =  1/V
df_inv = data.frame(S_inv, V_inv)
kable(head(df_inv))
S_inv V_inv
0.2156862 0.2135237
0.3599133 0.2300071
0.4078072 0.2177389
0.6307534 0.2583286
0.2566456 0.2157224
0.2558009 0.2271587

Visualizamos la nube de puntos de los datos transformados

plot(S_inv, V_inv, pch=19, cex = .7)

que, efectivamente, parecen estar dispuestos conforme a una linea recta. Pordemos calular los coeficientes delarecta de regresión de los datos transformados

lmInv = lm(V_inv ~ S_inv)
lmInv$coefficients
## (Intercept)       S_inv 
##  0.19891571  0.06735554
plot(S_inv, V_inv, pch=19, cex = .7)
abline(a = lmInv$coefficients[1], b = lmInv$coefficients[2], col = "red")

Finalmente, como \[ K_M = \frac{1}{b} = 0.1989157 \] y \[ V_{max} = \frac{a}{b} = 5.027255 \]

se despeja y se obtiene que

(a = 1/lmInv$coefficients[2])
##    S_inv 
## 14.84659
(b = a*lmInv$coefficients[1])
##   S_inv 
## 2.95322
Vmax = a/b
Km = 1/b

A continuación representamos la nube de puntos obtenidos experimentalmente y gráfica de la hipérbola cuyos coeficientes hemos aproximado mediante la técnica de regresión.

# puntos de la hiperbola
x = seq(from = 0, to = 5, by = 0.001)
y = hiperb(x, a, b)

plot(S, V, xlim = c(0,5), ylim =c(0,6), pch = 19, col = "red", xlab="[S]", ylab = "V")
par(new=TRUE)
plot(x,y, pch = 19, cex = .4, xlim = c(0,5), ylim =c(0,6), xlab = "", ylab = "")

Otros ajustes

La técnica que hemos usado se llama transformación linealizante porque el cambio de variable (doble) lleva la hipérbola a una recta, sobre la que podemos hacer regresión lineal.

Hay otros métodos estadísticos más avanzados, llamados no lineales, que resuelven de forma más eficiente este problema. Puedes obtener algo más de información en estas páginas, cortasía de Angel Herráez: