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)

Arguments

initial

The initial viability (%).

period

The time period of storage in days or years according to the argument years).

vcindex

An integer value indicating the index of seed viability. constants to be used from the viabilityconstants dataset in the package.

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 TRUE, returns the output period in years instead of days.

final

The final viability (%).

unit

The unit of temperature.

Value

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).

Details

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.

Note

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.

References

Ellis RH, Roberts EH (1980). “Improved equations for the prediction of seed longevity.” Annals of Botany, 45(1), 13--30.

See also

Examples

# 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.64797
FinalViability(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.64797
FinalViability(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] 100
FinalViability(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.39294
FinalViability(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.900918
StorageMC(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.900918
StorageMC(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.252
StorageTemp(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.4536
StorageTemp(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.252
StorageTemp(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.833
StoragePeriod(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.833
StoragePeriod(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] Inf
StoragePeriod(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.872
StoragePeriod(initial = PercentAdjust(100, n = 50), final = 95, vcindex = 87, mc = 10, temp = 5, years = TRUE)
#> [1] 13.72842