In plant pathology we are often interested in studying disease progress over time, where time (t) is modeled as a continuous variable rather than as a discrete variable. Many different population growth models have been used for modeling disease progress curves (Gilligan 1990; Madden et al. 2007). Five common growth curve models are discussed below along with their assumptions. For the illustration of some of these models in R, we refer to Table 1 from Gottwald et al. (1989) which compared different models for disease progress, based on nonlinear regression analysis. In this table, the initial disease incidence for orange and grapefruit is y_{0} = 1/(13*45) = 0.0017 and for swingle is y_{0} = 1/(15*67) = 0.001.
The exponential model assumes that the absolute rate of disease increase (dy/dt) is proportional to the disease intensity (y). The following R code creates a function, plotexp, that plots an exponential relationship between disease incidence and time. After you create the plotexp function, you can apply it using different values of the parameters to better understand how the parameters affect the shape of the curve. In the illustration, the parameter y_{0} is set to 0.0017, the parameter r is set to 0.01579, and the maximum time for the illustration is set to 100. Try changing those values when applying the plotexp function.
plotexp
## Exponential Model Example plotexp <- function(y0,r,maxt){ curve( y0*exp(r*x), from=0, to=maxt, xlab='Time', ylab='Disease Incidence', col='mediumblue') } plotexp(0.0017, 0.01579, 100)
Click on the image for larger version.
The monomolecular model assumes a carrying capacity of one, that is, the maximum level of disease is one, so disease severity or incidence is measured as a proportion. Diseased plant tissue may only lie between zero (healthy) and one (complete disease). It also assumes the absolute rate of change is proportional to the healthy tissue i.e., (1-y). After creating the plotmono function and trying the example set of parameter values, try replacing the parameter values with others to see how the shape of the relationship changes.
plotmono
## Monomolecular Model Example plotmono <- function(y0,r,maxt){ curve( 1-(1-y0)*exp(-r*x), from=0, to=maxt, xlab='Time', ylab='Disease Incidence', col='mediumblue') } plotmono(0.0017, 0.00242, 2000)
The logistic model assumes that the absolute rate of change in disease level depends on both healthy tissue (y) and diseased tissue (1-y) present at the time. The curve is perfectly symmetric with an inflection point at t = 1/rln y_{0}/(1- y_{0}) when y = 1/2. That is, dy/dt increases up until y = 1/2 and decreases thereafter. After creating the plotlog function, try applying it with different parameter values.
plotlog
## Logistic Model Example plotlog <- function(y0,r,maxt){ curve( 1/(1+(1-y0)/y0*exp(-r*x)), from=0, to=maxt, xlab='Time', ylab='Disease Incidence', col='mediumblue' ) } plotlog(0.001, 0.01636, 1000)
The Gompertz model assumes that the absolute rate of change depends on y and ln(1/y) and is very similar to the logistic model. However, the Gompertz model is more asymmetric, with an inflection point attained at 0.37(1/e) instead. After creating the plotgomp function and comparing it to the other models before, try changing the parameter values to see the effect on the shape of the curve.
plotgomp
## Gompertz Model Example plotgomp <- function(y0,r,maxt){ curve( exp(log(y0)*exp(-r*x)), from=0, to=maxt, xlab='Time', ylab='Disease Incidence', col='mediumblue' ) } plotgomp(0.0017,0.02922, 250)
The Weibull model includes a larger number of parameters, and so can describe more complicated curves. The parameters are:
If c = 1, this model is identical to the monomolecular model with the rate parameter r = 1/b and the initial disease level y_{0} = 1-exp(a/b). With suitable values of parameters 1, 2, and 3, other models can be approximated by the Weibull model.
## Weibull Model Example plotweib <- function(a,b,c,maxt){ curve( 1-exp(-((x-a)/b)^c), from=0, to=maxt, xlab='Time', ylab='Disease Incidence', col='mediumblue' ) } plotweib(1, 331.10, 10.04, 500)
Note that for some parameter combinations, these different models may produce very similar curves. For this reason, when the fit of these curves is being compared for a real data set, more than one of the models may give a good fit. In that case, it may be best to go with the simplest model. On the other hand, if many different data sets are being compared, a more complicated model such as the Weibull may make it easier to obtain reasonable fits to all the data sets being considered. For an in-depth comparison of the different uses of growth models in plant pathology we refer the reader to Gilligan (1990) and Madden et al. (2007).
Next, modeling citrus canker using growth curves