Predict the variables, final viability, storage period, storage temperature and storage period from the improved seed viability equation (Ellis and Roberts 1980) .
FinalViability
Compute the final viability after a period of storage at a set of storage conditions (seed moisture content and temperature).
StoragePeriod
Compute the storage period from the final viability and the storage conditions (seed moisture content and temperature).
StorageMC
Compute the storage moisture content to give final viability at a particular storage temperature.
StorageTemp
Compute the storage temperature to give final viability at a particular storage temperature.
FinalViability(initial, period, vcindex, vcdirect, mc, temp, years = FALSE) StorageMC(initial, final, period, vcindex, vcdirect, temp, years = FALSE) StorageTemp(initial, final, period, vcindex, vcdirect, mc, years = FALSE, unit = c("celsius", "fahrenheit")) StoragePeriod(initial, final, vcindex, vcdirect, mc, temp, years = FALSE)
initial | The initial viability (%). |
---|---|
period | The time period of storage in days or years according to the
argument |
vcindex | An integer value indicating the index of seed viability.
constants to be used from the |
vcdirect | A numeric vector of length 4 with the four viability constants viz.: KE, CW, CH and CQ. |
mc | Moisture content. |
temp | Temperature in °C. |
years | If |
final | The final viability (%). |
unit | The unit of temperature. |
For FinalViability
, the final viability (%).
For StorageMC
, the storage moisture content (%).
For StorageTemp
, the storage temperature (°C).
For StoragePeriod
, the duration of storage (according to argument
years
).
The improved seed viability equation of (Ellis and Roberts 1980) describes the relationship between final viability, storage period and storage environment conditions as follows.
v = Ki − [ p ⁄ σ ]
or
v = Ki − (1 ⁄ σ)⋅p
Where, v is the probit percentage viability at storage time p (final viability), Ki is the probit percentage viability of the seedlot at the beginning of storage (seedlot constant) and 1⁄σ is the slope.
Germination percentages plotted against storage times yield a sigmoid seed survival curve which is converted to a linear relationship by the probit transformation with slope 1 ⁄ σ.
The slope is determined as follows.
σ = 10 KE − CW logm − CHt − CQt2
Where, m is the moisture content (fresh weight basis), t is the temperature and KE, CW, CH and CQ are the species-specific seed viability constants.
On the basis of the the improved seed viability equation, v, p, m and t can be estimated as follows.
v = Ki − [ p ⁄ σ ]
p = σ(Ki-v)
m = 10[[KE − CHt − CQt2 − log( p ⁄ (Ki − v))] ⁄ CW]
t = [−CH ± √[CH2 − 4CQ(CWlogm − KE + log(p ⁄ (Ki − v)))]] ⁄ 2CQ
The value of the species-specific seed viability constants can be specified
either directly in the arguement vcdirect
or as the index value of
the required seed viability constants from the
viabilityconstants
dataset through the argument vcindex
.
The value of this prediction is appropriate for temperature between -20 to 90 °C and seed moisture content between 5 to 25%. For values beyond this range, a warning will be displayed.
For initial and/or final viability percentage values of 0% and 100%,
adjust it according to sample size using the
PercentAdjust
function to
avoid infinity or extreme values in output.
Ellis RH, Roberts EH (1980). “Improved equations for the prediction of seed longevity.” Annals of Botany, 45(1), 13--30.
# Fetch the index from viabilityconstants dataset viabilityconstants[grepl("oryza", x = viabilityconstants$Species, ignore.case = TRUE),]#> # A tibble: 8 x 7 #> Index Species Ke Cw Ch Cq Reference #> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <chr> #> 1 85 Oryza glaberrima 9.41 5.04 0.0375 4.71e-4 Ellis et al., 2007 #> 2 86 Oryza glaberrima* 6.87 5.51 0.0329 4.78e-4 Bam, Hong, Ellis, Kumaga,~ #> 3 87 Oryza sativa 8.24 4.34 0.0307 5.01e-4 Ellis et al., 2007 #> 4 88 Oryza sativa* 8.67 5.03 0.0329 4.78e-4 Ellis et al., 1989 #> 5 89 Oryza sativa ssp.~ 8.81 4.90 0.0329 4.78e-4 Ellis, Hong, and Roberts,~ #> 6 90 Oryza sativa ssp.~ 8.42 4.90 0.0329 4.78e-4 Ellis et al., 1992 #> 7 91 Oryza sativa ssp.~ 6.63 5.51 0.0329 4.78e-4 Bam et al., 2008 #> 8 92 Oryza sativa ssp.~ 8.74 4.90 0.0329 4.78e-4 Ellis et al., 1992#---------------------------------------------------------------------------- # Final viability #---------------------------------------------------------------------------- # Use index 87 FinalViability(initial = 98, period = 365, vcindex = 87, mc = 10, temp = 5, years = FALSE)#> [1] 97.64797FinalViability(initial = 98, period = 1, vcindex = 87, mc = 10, temp = 5, years = TRUE)#> [1] 97.64797# Input the viability constants directly FinalViability(initial = 98, period = 365, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), mc = 10, temp = 5, years = FALSE)#> [1] 97.64797FinalViability(initial = 98, period = 1, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), mc = 10, temp = 5, years = TRUE)#> [1] 97.64797# \dontrun{ # Error if initial viability is beyond limits (0-100 %) FinalViability(initial = 110, period = 365, vcindex = 87, mc = 10, temp = 5)#> Error in FinalViability(initial = 110, period = 365, vcindex = 87, mc = 10, temp = 5): "initial" is beyond limits (0 < "initial" < 100).# } # Warning if moisture content is beyond limits (0-100 %) FinalViability(initial = 98, period = 365, vcindex = 87, mc = 110, temp = 5)#> Warning: "mc" is beyond limits (0 < "mc" < 100).#> [1] 0# Warning if temperature is beyond limits (-20 to 90 degree C) FinalViability(initial = 98, period = 365, vcindex = 87, mc = 10, temp = 95)#> Warning: "temp" is beyond limits (-20 < "temp" < 90).#> [1] 0# With initial viability 100 FinalViability(initial = 100, period = 365, vcindex = 87, mc = 10, temp = 5, years = FALSE)#> [1] 100FinalViability(initial = 100, period = 1, vcindex = 87, mc = 10, temp = 5, years = TRUE)#> [1] 100# With intial viability of 100%, use of PercentAdjust() to avoid extremes FinalViability(initial = PercentAdjust(100, n = 50), period = 365, vcindex = 87, mc = 10, temp = 5, years = FALSE)#> [1] 99.39294FinalViability(initial = PercentAdjust(100, n = 50), period = 1, vcindex = 87, mc = 10, temp = 5, years = TRUE)#> [1] 99.39294#---------------------------------------------------------------------------- # Storage moisture content #---------------------------------------------------------------------------- # Use index 87 StorageMC(initial = 98, final = 95, period = 3650, vcindex = 87, temp = 5, years = FALSE)#> [1] 8.900918StorageMC(initial = 98, final = 95, period = 10, vcindex = 87, temp = 5, years = TRUE)#> [1] 8.900918# Input the viability constants directly StorageMC(initial = 98, final = 95, period = 3650, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), temp = 5, years = FALSE)#> [1] 8.900918StorageMC(initial = 98, final = 95, period = 10, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), temp = 5, years = TRUE)#> [1] 8.900918# \dontrun{ # Error if initial viability is beyond limits (0-100 %) StorageMC(initial = 110, final = 95, period = 3650, vcindex = 87, temp = 5)#> Error in StorageMC(initial = 110, final = 95, period = 3650, vcindex = 87, temp = 5): "initial" is beyond limits (0 < "initial" < 100).# Error if final viability is beyond limits (0-100 %) StorageMC(initial = 98, final = -10, period = 3650, vcindex = 87, temp = 5)#> Error in StorageMC(initial = 98, final = -10, period = 3650, vcindex = 87, temp = 5): "final" is beyond limits (0 < "final" < 100).# } # Warning if temperature is beyond limits (-20 to 90 degree C) StorageMC(initial = 98, final = 95, period = 3650, vcindex = 87, temp = 95)#> Warning: "temp" is beyond limits (-20 < "temp" < 90).#> [1] 0.1887065#---------------------------------------------------------------------------- # Storage temperature #---------------------------------------------------------------------------- # Use index 87 # In Celsius StorageTemp(initial = 98, final = 95, period = 3650, vcindex = 87, mc = 8, years = FALSE)#> [1] 10.252StorageTemp(initial = 98, final = 95, period = 10, vcindex = 87, mc = 8, years = TRUE)#> [1] 10.252# In Fahrenheit StorageTemp(initial = 98, final = 95, period = 3650, vcindex = 87, mc = 8, years = FALSE, unit = "fahrenheit")#> [1] 50.4536StorageTemp(initial = 98, final = 95, period = 10, vcindex = 87, mc = 8, years = TRUE, unit = "fahrenheit")#> [1] 50.4536# Input the viability constants directly StorageTemp(initial = 98, final = 95, period = 3650, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), mc = 8, years = FALSE)#> [1] 10.252StorageTemp(initial = 98, final = 95, period = 10, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), mc = 8, years = TRUE)#> [1] 10.252# \dontrun{ # Error if initial viability is beyond limits (0-100 %) StorageTemp(initial = 110, final = 95, period = 3650, vcindex = 87, mc = 8)#> Error in StorageTemp(initial = 110, final = 95, period = 3650, vcindex = 87, mc = 8): "initial" is beyond limits (0 < "initial" < 100).# Error if final viability is beyond limits (0-100 %) StorageTemp(initial = 98, final = -10, period = 3650, vcindex = 87, mc = 8)#> Error in StorageTemp(initial = 98, final = -10, period = 3650, vcindex = 87, mc = 8): "final" is beyond limits (0 < "final" < 100).# } # Warning if moisture content is beyond limits (0-100 %) StorageTemp(initial = 98, final = 95, period = 3650, vcindex = 87, mc = 110)#> Warning: "mc" is beyond limits (0 < "mc" < 100).#> Warning: NaNs produced#> [1] NaN#---------------------------------------------------------------------------- # Storage period #---------------------------------------------------------------------------- # Use index 87 StoragePeriod(initial = 98, final = 95, vcindex = 87, mc = 10, temp = 5, years = FALSE)#> [1] 2200.833StoragePeriod(initial = 98, final = 95, vcindex = 87, mc = 10, temp = 5, years = TRUE)#> [1] 6.02968# Input the viability constants directly StoragePeriod(initial = 98, final = 95, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), mc = 10, temp = 5, years = FALSE)#> [1] 2200.833StoragePeriod(initial = 98, final = 95, vcdirect = c(8.242, 4.345, 0.0307, 0.000501), mc = 10, temp = 5, years = TRUE)#> [1] 6.02968# \dontrun{ # Error if initial viability is beyond limits (0-100 %) StoragePeriod(initial = 110, final = 95, vcindex = 87, mc = 10, temp = 5)#> Error in StoragePeriod(initial = 110, final = 95, vcindex = 87, mc = 10, temp = 5): "initial" is beyond limits (0 < "initial" < 100).# Error if final viability is beyond limits (0-100 %) StoragePeriod(initial = 98, final = -5, vcindex = 87, mc = 10, temp = 5)#> Error in StoragePeriod(initial = 98, final = -5, vcindex = 87, mc = 10, temp = 5): "final" is beyond limits (0 < "final" < 100).# } # Warning if moisture content is beyond limits (0-100 %) StoragePeriod(initial = 98, final = 95, vcindex = 87, mc = 110, temp = 5)#> Warning: "mc" is beyond limits (0 < "mc" < 100).#> Warning: Negative storage period computed.#> [1] 0.0657258# Warning if temperature is beyond limits (-20 to 90 degree C) StoragePeriod(initial = 98, final = 95, vcindex = 87, mc = 10, temp = 95)#> Warning: "temp" is beyond limits (-20 < "temp" < 90).#> Warning: Negative storage period computed.#> [1] 0.0001176487# With initial viability 100 StoragePeriod(initial = 100, final = 95, vcindex = 87, mc = 10, temp = 5, years = FALSE)#> [1] InfStoragePeriod(initial = 100, final = 95, vcindex = 87, mc = 10, temp = 5, years = TRUE)#> [1] Inf# With intial viability of 100%, use of PercentAdjust() to avoid extremes StoragePeriod(initial = PercentAdjust(100, n = 50), final = 95, vcindex = 87, mc = 10, temp = 5, years = FALSE)#> [1] 5010.872StoragePeriod(initial = PercentAdjust(100, n = 50), final = 95, vcindex = 87, mc = 10, temp = 5, years = TRUE)#> [1] 13.72842