Crecimiento LogĂ­stico

Esta es la forma general de la ecuaciĂ³n difrencial de crecimiento logĂ­stico:

\[\frac{dN}{dt} = rN(1 - \frac{N}{K})\] Y una forma de la soluciĂ³n integrada:

\[N_t = \frac{K}{1 + (\frac{K - N_0}{N_0})e^{-rt}}\]

Datos

Utilizaremos los datos de crecimiento de un cultivo de Staphylococcus aureus sp. (ver proyecto de modelo no-lineal).

library(readxl)
gbac <- read.csv("data/mecobi datos crecimiento bacterias SaBook48_147_03.csv")

GrĂ¡fica inicial de los datos

library(ggplot2)
ggplot(gbac, aes(x = Time, y = c10.6)) +
  geom_point(alpha=0.7, color="steelblue", size=2) +
  ylim(0,20) +
  xlab("Horas") +
  ylab("CFU x10^6")

Paquete especializado para curvas de crecimiento bacteriano con modelo logĂ­stico

library(growthcurver)

CĂ¡lculo de los parĂ¡metros del modelo y del anĂ¡lisis de crecimiento bacteriano.

Con este método no es necesario estimar valores iniciales, y se puede aplicar a muchas curvas de crecimiento a la vez.

library(gt)
model.bac <- SummarizeGrowth(gbac$Time, gbac$c10.6, bg_correct = "none")
# summary table of results for K, N0, r
summary(model.bac$model)
## 
## Formula: n ~ k/(1 + ((k - n0)/n0) * exp(-r * t))
## 
## Parameters:
##     Estimate Std. Error t value Pr(>|t|)    
## k  1.643e+01  1.464e+00  11.221 9.96e-06 ***
## n0 6.050e-09  4.727e-08   0.128    0.902    
## r  4.697e-02  1.701e-02   2.762    0.028 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.682 on 7 degrees of freedom
## 
## Number of iterations to convergence: 54 
## Achieved convergence tolerance: 1.49e-08
# table of model values
model.bac[["vals"]]
## k    k_se    k_p n0  n0_se   n0_p
## 16.429   1.464   1e-05   0   0   9e-01
## 
## r    r_se    r_p sigma   df  t_mid
## 0.047    0.017   3e-02   1.682   7   462.485
## 
## t_gen    auc_l   auc_e
## 14.758   1866.591    1943.232

Significado e interpretaciĂ³n de los parĂ¡metros

A continuaciĂ³n la lista de parĂ¡metros poblacionales que se extraen con el paquete growthcurver y que tienen un significado en el anĂ¡lisis del crecimiento de microorganismos:

  • k es la capacidad de acarreo (\(K\)) de la poblaciĂ³n en el medio y condiciones de crecimiento. k_se es el error estĂ¡ndar y k_p el nivel de significancia del parĂ¡metro (la probabilidad de error al rechazar que el parĂ¡metro es igual a 0).
  • n0 es el tamaño de la poblaciĂ³n inicial de bacterias (\(N_0\)). n0_se es el error estĂ¡ndar y n0_p el nivel de significancia del parĂ¡metro (la probabilidad de error al rechazar que el parĂ¡metro es igual a 0).
  • r es la tasa de crecimiento poblacional (\(r\)). r_se es el error estĂ¡ndar y r_p el nivel de significancia del parĂ¡metro (la probabilidad de error al rechazar que el parĂ¡metro es igual a 0). No necesariamente igual a la k del modelo Gompertz.
  • sigma es el error estĂ¡ndar residual, una medida de la bondad de ajuste de los parĂ¡metros del modelo a los datos (mejor cuanto mĂ¡s pequeño sea).
  • df son los grados de libertad, calculados como el nĂºmero de datos (\(n\)) menos el nĂºmero de parĂ¡metros del modelo (\(n - 3\)).
  • t_mid es el tiempo cuando la poblaciĂ³n alcanza la mitad de la capacidad de acarreo (\(\frac{1}{2}K\)).
  • t_gen es el tiempo de generaciĂ³n mĂ¡s rĂ¡pida o tiempo de duplicaciĂ³n de la poblaciĂ³n. Se puede calcular como \(\frac{ln2}{r}\).
  • auc_l es el Ă¡rea bajo la curva del modelo logĂ­stico y sirve de medida integradora de \(K, r\) y \(N_0\).
  • auc_e es el Ă¡rea bajo la curva empĂ­rica, es decir usando los datos medidos del crecimiento bacteriano.

GrĂ¡fica de puntos y del modelo

# data frame con valores con la funciĂ³n predict usando modelo logĂ­stico
df <- data.frame(Time = gbac$Time, c10.6 = gbac$c10.6, c10.6_fit = predict(model.bac$model, gbac$Time))
# grĂ¡fica ggplot con puntos "steelblue" y modelo logĂ­stico con "smooth line" en "red"
ggplot(df, aes(x = Time, y = c10.6)) +
  geom_point(alpha=0.7, color="steelblue", size=2) +
  geom_line(aes(y = c10.6_fit), color = "red") +
  ylim(0,20) +
  xlab("Horas") +
  ylab("CFU x10^6")