Title: | Seed Germination Indices and Curve Fitting |
---|---|
Description: | Provides functions to compute various germination indices such as germinability, median germination time, mean germination time, mean germination rate, speed of germination, Timson's index, germination value, coefficient of uniformity of germination, uncertainty of germination process, synchrony of germination etc. from germination count data. Includes functions for fitting cumulative seed germination curves using four-parameter hill function and computation of associated parameters. See the vignette for more, including full list of citations for the methods implemented. |
Authors: | J. Aravind [aut, cre] , S. Vimala Devi [aut], J. Radhamani [aut], Sherry Rachel Jacob [aut], Kalyani Srinivasan [aut], ICAR-NBGPR [cph] (www.nbpgr.ernet.in) |
Maintainer: | J. Aravind <[email protected]> |
License: | GPL-2 | GPL-3 |
Version: | 0.1.8.9000 |
Built: | 2024-11-16 02:47:38 UTC |
Source: | https://github.com/aravind-j/germinationmetrics |
Compute the Coefficient of uniformity of germination (CUG).
CUGerm(germ.counts, intervals, partial = TRUE)
CUGerm(germ.counts, intervals, partial = TRUE)
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
CUG is computed as follows (Heydecker 1972; Bewley and Black 1994).
\[CUG = \frac{\sum_{i=1}^{k}N_{i}}{\sum_{i=1}^{k}(\overline{T}-T_{i})^{2}N_{i}}\]Where, \(\overline{T}\) is the the mean germination time, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
The value of the coefficient of uniformity of germination as \(\mathrm{time^{-2}}\).
Bewley JD, Black M (1994).
Physiology of Development and Germination.
Plenum Publishing Corporation, New York, USA.
ISBN 0-306-44748-7, tex.ids= bewley_ seeds:_1994, bewley_ seeds:_1994-1, bewley_ seeds:_1994-2 googlebooksid: W6EbrewcpDwC.
Heydecker W (1972).
Seed Ecology. Proceedings of the Nineteenth Easter School in Agricultural Science, University of Nottingham, 1972.
Pennsylvania State University Press, University Park, USA.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- CUGerm(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- CUGerm(germ.counts = y, intervals = int, partial = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- CUGerm(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- CUGerm(germ.counts = y, intervals = int, partial = FALSE)
Compute the Emergence rate index or Germination rate index according to
Shmueli and Goldberg (1971) and it's modification by de Santana and Ranal (2004) (Ranal and de Santana 2006);
Bilbro and Wanjura (1982); and
Fakorede and Ayoola (1980), Fakorede and Ojo (1981), and Fakorede and Agbana (1983).
EmergenceRateIndex( germ.counts, intervals, partial = TRUE, total.seeds = NULL, method = c("shmueligoldberg", "sgsantanaranal", "bilbrowanjura", "fakorede") )
EmergenceRateIndex( germ.counts, intervals, partial = TRUE, total.seeds = NULL, method = c("shmueligoldberg", "sgsantanaranal", "bilbrowanjura", "fakorede") )
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
total.seeds |
Total number of seeds. |
method |
The method to be used. Either |
The value of the Emergence rate index with the units according to
method
as follows.
shmueligoldberg |
\(\mathrm{count}\) |
sgsantanaranal |
\(\mathrm{no \, unit}\) |
bilbrowanjura |
\(\mathrm{count} \, time^{-1}\) |
fakorede |
\(time \, \mathrm{count}^{-1}\) |
Several germination indices are referred to as Emergence rate Index (\(ERI\)).
With argument method
specified as "shmueligoldberg"
\(ERI\) is estimated as follows.
Where, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), \(i_{0}\) is the time interval when emergence/germination started, and \(k\) is the total number of time intervals.
A modification for the same was suggested by
de Santana and Ranal (2004)
(Ranal and de Santana 2006) and is estimated by
dividing Emergence rate index (\(ERI\)) by total number of emerged
seedlings (or germinated seeds) as follows with argument method
specified as "sgsantanaranal"
).
Where, \(N_{g}\) is the total number of germinated seeds at the end of the test, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), \(i_{0}\) is the time interval when emergence/germination started, and \(k\) is the total number of time intervals.
With argument method
specified as "bilbrowanjura"
\(ERI\) is the estimated as follows.
Where, \(N_{g}\) is the total number of germinated seeds at the end of the test, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(\overline{T}\) is the mean germination time or mean emergence time.
With argument method
specified as "fakorede"
\(ERI\) is
the estimated as follows.
Where, \(\overline{T}\) is the Mean germination time and \(FGP\) is the final germination time.
Apart from the above the above, the name Emergence
rate index (\(ERI\)) has also been used to for the mathematical
expressions for Speed of germination
(GermSpeed
)
(Allan et al. 1962; Erbach 1982),
Timson's index (TimsonsIndex
)
(Chaudhary and Ghildyal 1970),
and George's index
(GermRateGeorge
)
(Chopra and Chaudhary 1980).
Allan RE, Vogel OA, Peterson CJ (1962).
“Seedling emergence rate of fall-sown wheat and its association with plant height and coleoptile length.”
Agronomy Journal, 54(4), 347.
Bilbro JD, Wanjura DF (1982).
“Soil crusts and cotton emergence relationships.”
Transactions of the ASAE, 25(6), 1484–1487.
Chaudhary TN, Ghildyal BP (1970).
“Effect of temperature associated with levels of bulk density on rice seedling emergence.”
Plant and Soil, 33(1), 87–90.
Chopra UK, Chaudhary TN (1980).
“Effect of soil temperature alteration by soil covers on seedling emergence of wheat (Triticum aestivum L.) sown on two dates.”
Plant and Soil, 57(1), 125–129.
Erbach DC (1982).
“Tillage for continuous corn and corn-soybean rotation.”
Transactions of the ASAE, 25(4), 906–0911.
Fakorede MAB, Agbana SB (1983).
“Heterotic effects and association of seedling vigour with mature characteristics and grain yield in some tropical maize cultivars.”
Maydica, 28, 327–338.
Fakorede MAB, Ayoola AO (1980).
“Relation between seedling vigor and selection for yield improvement in maize.”
Maydica, 25(3), 135–147.
Fakorede MAB, Ojo DK (1981).
“Variability for seedling vigour in maize.”
Experimental Agriculture, 17(2), 195–201.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
Shmueli M, Goldberg D (1971).
“Emergence, early growth, and salinity of five vegetable crops germinated by sprinkle and trickle irrigation in an arid zone.”
HortScience, 6, 563–565.
de Santana DG, Ranal MA (2004).
Analise Da Germinacao: Um Enfoque Estatistico.
Universidade de Brasilia, Brasilia.
GermSpeed
,
TimsonsIndex
,
GermRateGeorge
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- EmergenceRateIndex(germ.counts = x, intervals = int) EmergenceRateIndex(germ.counts = x, intervals = int, method = "shmueligoldberg") EmergenceRateIndex(germ.counts = x, intervals = int, method = "sgsantanaranal") EmergenceRateIndex(germ.counts = x, intervals = int, method = "bilbrowanjura") EmergenceRateIndex(germ.counts = x, intervals = int, total.seeds = 50, method = "fakorede") # From cumulative germination counts #---------------------------------------------------------------------------- EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE) EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, method = "shmueligoldberg") EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, method = "sgsantanaranal") EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, method = "bilbrowanjura") EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, method = "fakorede")
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- EmergenceRateIndex(germ.counts = x, intervals = int) EmergenceRateIndex(germ.counts = x, intervals = int, method = "shmueligoldberg") EmergenceRateIndex(germ.counts = x, intervals = int, method = "sgsantanaranal") EmergenceRateIndex(germ.counts = x, intervals = int, method = "bilbrowanjura") EmergenceRateIndex(germ.counts = x, intervals = int, total.seeds = 50, method = "fakorede") # From cumulative germination counts #---------------------------------------------------------------------------- EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE) EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, method = "shmueligoldberg") EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, method = "sgsantanaranal") EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, method = "bilbrowanjura") EmergenceRateIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, method = "fakorede")
Compute the following metrics:
FirstGermTime
Time of first germination or Germination time lag (\(t_{0}\)) (Edwards 1932; Czabator 1962; Goloff and Bazzaz 1975; Labouriau 1983; Ranal 1999; Quintanilla et al. 2000).
LastGermTime
Time of last germination (\(t_{g}\)) (Edwards 1932; Labouriau 1983; Ranal and de Santana 2006).
TimeSpreadGerm
Time spread of germination (Al-Mudaris 1998; Kader 2005) or Germination distribution (Schrader and Graves 2000).
PeakGermTime
Peak time of germination or Modal time of germination (\(t_{peak}\)) (Ranal and de Santana 2006).
FirstGermTime(germ.counts, intervals, partial = TRUE) LastGermTime(germ.counts, intervals, partial = TRUE) PeakGermTime(germ.counts, intervals, partial = TRUE) TimeSpreadGerm(germ.counts, intervals, partial = TRUE)
FirstGermTime(germ.counts, intervals, partial = TRUE) LastGermTime(germ.counts, intervals, partial = TRUE) PeakGermTime(germ.counts, intervals, partial = TRUE) TimeSpreadGerm(germ.counts, intervals, partial = TRUE)
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
Time of first germination indicates time of germination of the faster seeds in a seedlot.
Lower value of time of first germination indicates faster initiation of germination and lower value of time of last germination indicates faster termination of germination.
\[t_{0} = \min \lbrace T_{i} : N_{i} \neq 0 \rbrace\] \[t_{g} = \max \lbrace T_{i} : N_{i} \neq 0 \rbrace\]Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval and \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval).
Time spread of germination (\(t_{g}-t_{0}\)) indicates difference between faster and slower germinating members of a sample.
Peak time of germination is the time in which highest frequency of germinated seeds are observed. Multiple peak times of germination are possible and if detected are indicated by a warning message.
\[t_{peak} = \lbrace T_{i} : N_{i} = N_{max} \rbrace\]Where, \(N_{max}\) is the maximum number of seeds germinated per interval.
For FirstGermTime
, the time of first germination value in the
same unit of time as specified in the argument intervals
.
For LastGermTime
, the time of last germination value in the same
unit of time as specified in the argument intervals
.
For TimeSpreadGerm
, the time spread of germination value in the same
unit of time as specified in the argument intervals
.
For PeakGermTime
, the time(s) of peak germination value(s) as a
numeric vector in the same unit of time as specified in the argument
intervals
.
Al-Mudaris MA (1998).
“Notes on various parameters recording the speed of seed germination.”
Der Tropenlandwirt - Journal of Agriculture in the Tropics and Subtropics, 99(2), 147–154.
Czabator FJ (1962).
“Germination value: An index combining speed and completeness of pine seed germination.”
Forest Science, 8(4), 386–396.
Edwards TI (1932).
“Temperature relations of seed germination.”
The Quarterly Review of Biology, 7(4), 428–443.
Goloff AA, Bazzaz FA (1975).
“A germination model for natural seed populations.”
Journal of Theoretical Biology, 52(2), 259–283.
Kader MA (2005).
“A comparison of seed germination calculation formulae and the associated interpretation of resulting data.”
Journal and Proceedings of the Royal Society of New South Wales, 138, 65–75.
Labouriau LG (1983).
A Germinacao Das Sementes.
Organizacao dos Estados Americanos. Programa Regional de Desenvolvimento Cientifico e Tecnologico. Serie de Biologia. Monografia 24.
Quintanilla LG, Pajaron S, Pangua E, Amigo J (2000).
“Effect of temperature on germination in northernmost populations of Culcita macrocarpa and Woodwardia radicans.”
Plant Biology, 2(6), 612–617.
Ranal MA (1999).
“Effects of temperature on spore germination in some fern species from semideciduous mesophytic forest.”
American Fern Journal, 89(2), 149.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
Schrader JA, Graves WR (2000).
“Seed germination and seedling growth of Alnus maritima from its three disjunct populations.”
Journal of the American Society for Horticultural Science, 125(1), 128–134.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) z <- c(0, 0, 0, 0, 11, 11, 9, 7, 1, 0, 1, 0, 0, 0) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- FirstGermTime(germ.counts = x, intervals = int) LastGermTime(germ.counts = x, intervals = int) TimeSpreadGerm(germ.counts = x, intervals = int) PeakGermTime(germ.counts = x, intervals = int) # For multiple peak germination times PeakGermTime(germ.counts = z, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- FirstGermTime(germ.counts = y, intervals = int, partial = FALSE) LastGermTime(germ.counts = y, intervals = int, partial = FALSE) TimeSpreadGerm(germ.counts = y, intervals = int, partial = FALSE) PeakGermTime(germ.counts = y, intervals = int, partial = FALSE) # For multiple peak germination time PeakGermTime(germ.counts = cumsum(z), intervals = int, partial = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) z <- c(0, 0, 0, 0, 11, 11, 9, 7, 1, 0, 1, 0, 0, 0) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- FirstGermTime(germ.counts = x, intervals = int) LastGermTime(germ.counts = x, intervals = int) TimeSpreadGerm(germ.counts = x, intervals = int) PeakGermTime(germ.counts = x, intervals = int) # For multiple peak germination times PeakGermTime(germ.counts = z, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- FirstGermTime(germ.counts = y, intervals = int, partial = FALSE) LastGermTime(germ.counts = y, intervals = int, partial = FALSE) TimeSpreadGerm(germ.counts = y, intervals = int, partial = FALSE) PeakGermTime(germ.counts = y, intervals = int, partial = FALSE) # For multiple peak germination time PeakGermTime(germ.counts = cumsum(z), intervals = int, partial = FALSE)
To be used by
FourPHFfit
.
FourPHF(x, a, bta, c, y0) FourPHF_fixa(x, a = 100, bta, c, y0) FourPHF_fixy0(x, a, bta, c) FourPHF_fixa_fixy0(x, a = 100, bta, c) RateofGerm(x, a, b, c)
FourPHF(x, a, bta, c, y0) FourPHF_fixa(x, a = 100, bta, c, y0) FourPHF_fixy0(x, a, bta, c) FourPHF_fixa_fixy0(x, a = 100, bta, c) RateofGerm(x, a, b, c)
x |
The explanatory/independent variable value. |
a |
Parameter \(a\). |
bta |
Parameter \(e^{\beta}\). |
c |
Parameter \(c\). |
y0 |
Parameter \(y_{0}\). |
b |
Parameter \(b\). |
The calculated response/dependent value value.
Fit a four-parameter hill function (El-Kassaby et al. 2008) to cumulative germination count data and compute the associated parameters.
FourPHFfit( germ.counts, intervals, total.seeds, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, tmax, xp = c(10, 60), umin = 10, umax = 90, tries = 3 )
FourPHFfit( germ.counts, intervals, total.seeds, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, tmax, xp = c(10, 60), umin = 10, umax = 90, tries = 3 )
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
total.seeds |
Total number of seeds. |
partial |
logical. If |
fix.y0 |
Force the intercept of the y axis through 0. |
fix.a |
Fix a as the actual maximum germination percentage at the end of the experiment. |
tmax |
The time up to which AUC is to be computed. |
xp |
Germination percentage value(s) for which the corresponding time is
to be computed as a numeric vector. Default is |
umin |
The minimum germination percentage value for computing
uniformity. Default is |
umax |
The maximum germination percentage value for computing
uniformity. Default is |
tries |
The number of tries to be attempted to fit the curve. Default is 3. |
The cumulative germination count data of a seed lot can be modelled to fit a four-parameter hill function defined as follows (El-Kassaby et al. 2008).
\[y = y_{0}+\frac{ax^{b}}{c^{b}+x^{b}}\]Where, \(y\) is the cumulative germination percentage at time \(x\), \(y_{0}\) is the intercept on the y axis, \(a\) is the asymptote, or maximum cumulative germination percentage, which is equivalent to germination capacity, \(b\) is a mathematical parameter controlling the shape and steepness of the germination curve (the larger the \(b\) parameter, the steeper the rise toward the asymptote \(a\), and the shorter the time between germination onset and maximum germination), and \(c\) is the "half-maximal activation level" which represents the time required for 50% of viable seeds to germinate (\(c\) is equivalent to the germination speed).
In FourPHFfit
, this model has be reparameterized by substituting
\(b\) with \(e^{\beta}\) to constraint \(b\) to positive
values only.
Where, \(b = e^{\beta}\) and \(\beta = \log_{e}(b)\).
The curve fitting is performed with nonlinear
gslnls
package, a R interface to the
least-squares optimization with the GNU Scientific Library (GSL) with the
Levenberg-Marquardt algorithm
(Chau 2023).
Once this function is fitted to the curve, FourPHFfit
computes the
time to 50% germination of total seeds (t50.total
) or viable seeds
(t50.Germinated
). Similarly the time at any percentage of germination
(in terms of both total and viable seeds) as specified in argument xp
can be computed.
The time at germination onset (\(lag\)) can be computed as follows.
\[lag = b\sqrt{\frac{-y_{0}c^{b}}{a + y_{0}}}\]The value \(D_{lag-50}\) is defined as the duration between the time at germination onset (lag) and that at 50% germination (\(c\)).
The time interval between the percentages of viable seeds specified in the
arguments umin
and umin
to germinate is computed as uniformity
(\(U_{t_{max}-t_{min}}\)).
The partial derivative of the four-parameter hill function gives the instantaneous rate of germination (\(s\)) as follows.
\[s = \frac{\partial y}{\partial x} = \frac{abc^{b}x^{b-1}}{(c^{b}+x^{b})^{2}}\]From this function for instantaneous rate of germination, the time at maximum germination rate (\(TMGR\)) can be estimated as follows.
\[TMGR = b \sqrt{\frac{c^{b}(b-1)}{b+1}}\]TMGR represents the point in time when the instantaneous rate of germination starts to decline.
The area under the curve (\(AUC\)) is obined by integration of the fitted curve between time 0 and time specified in the argument 'tmax'.
Integration of the fitted curve gives the value of mean germination time (\(MGT\)) and the skewness of the germination curve is computed as the ratio of \(MGT\) and the time for 50% of viable seeds to germinate (\(t_{50}\)).
\[Skewness = \frac{MGT}{t_{50}}\]If final germination percentage is less than 10%, a warning is given, as the results may not be informative.
A list with the following components:
data |
A data frame with the data used for computing the model. |
Parameters |
A data frame of parameter estimates, standard errors and p value. |
Fit |
A one-row data frame with estimates of model fitness such as log likelyhoods, Akaike Information Criterion, Bayesian Information Criterion, deviance and residual degrees of freedom. |
a |
The asymptote or the maximum cumulative germination percentage. |
b |
The mathematical parameter controlling the shape and steepness of the germination curve. |
c |
The half-maximal activation level. |
y0 |
The intercept on the y axis. |
lag |
Time at germination onset. |
Dlag50 |
duration between the time at germination onset (lag) and that at 50% germination. |
t50.total |
Time required for 50% of total seeds to germinate. Will
be |
txp.total |
Time required for x% (as specified in argument |
t50.Germinated |
Time required for 50% of viable/germinated seeds to germinate. |
txp.Germinated |
Time
required for x% (as specified in argument |
Uniformity |
Time interval between |
TMGR |
Time at maximum germination rate. |
AUC |
The estimate of area under the curve. |
MGT |
Mean germination time. |
Skewness |
Skewness of mean germination time. |
msg |
The message from
|
isConv |
Logical value indicating whether convergence was achieved. |
model |
The raw fitted model output as a list of class
|
Chau J (2023).
“gslnls: GSL Nonlinear Least-Squares Fitting.”
El-Kassaby YA, Moss I, Kolotelo D, Stoehr M (2008).
“Seed germination: Mathematical representation and parameters extraction.”
Forest Science, 54(2), 220–227.
Galassi M (ed.) (2009).
GNU Scientific Library Reference Manual: For GSL Version 1.12, 3. ed edition.
Network Theory, Bristol.
ISBN 978-0-9546120-7-8.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) total.seeds = 50 # From partial germination counts #---------------------------------------------------------------------------- FourPHFfit(germ.counts = x, intervals = int, total.seeds = 50, tmax = 20) # From cumulative germination counts #---------------------------------------------------------------------------- FourPHFfit(germ.counts = y, intervals = int, total.seeds = 50, tmax = 20, partial = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) total.seeds = 50 # From partial germination counts #---------------------------------------------------------------------------- FourPHFfit(germ.counts = x, intervals = int, total.seeds = 50, tmax = 20) # From cumulative germination counts #---------------------------------------------------------------------------- FourPHFfit(germ.counts = y, intervals = int, total.seeds = 50, tmax = 20, partial = FALSE)
Fit four-parameter hill function from a data frame of germination counts recorded at specific time intervals for multiple samples in batch.
FourPHFfit.bulk( data, total.seeds.col, counts.intervals.cols, intervals, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, tmax, xp = c(10, 60), umin = 10, umax = 90, tries = 3 )
FourPHFfit.bulk( data, total.seeds.col, counts.intervals.cols, intervals, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, tmax, xp = c(10, 60), umin = 10, umax = 90, tries = 3 )
data |
A data frame with the germination count data. It should possess columns with
|
total.seeds.col |
The name of the column in |
counts.intervals.cols |
The names of columns in |
intervals |
The time intervals. |
partial |
logical. If |
fix.y0 |
Force the intercept of the y axis through 0. |
fix.a |
Fix a as the actual maximum germination percentage at the end of the experiment. |
tmax |
The time up to which AUC is to be computed. |
xp |
Germination percentage value(s) for which the corresponding time is
to be computed as a numeric vector. Default is |
umin |
The minimum germination percentage value for computing
uniformity. Default is |
umax |
The maximum germination percentage value for computing
uniformity. Default is |
tries |
The number of tries to be attempted to fit the curve. Default is 3. |
A data frame with the original data along with the various parameters of the respective fitted four-parameter hill function.
El-Kassaby YA, Moss I, Kolotelo D, Stoehr M (2008). “Seed germination: Mathematical representation and parameters extraction.” Forest Science, 54(2), 220–227.
This function is a wrapper around the
FourPHFfit
function for fitting
four-parameter hill curve.
data(gcdata) counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") FourPHFfit.bulk(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, xp = c(10, 60), tmax = 20, tries = 3, umax = 90, umin = 10)
data(gcdata) counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") FourPHFfit.bulk(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, xp = c(10, 60), tmax = 20, tries = 3, umax = 90, umin = 10)
An example germination count dataset. It includes germination count data over 14 days from five genotypes (G1 to G5) in three replications
gcdata
gcdata
A data frame with 17 columns:
The genotype.
Replication.
Number of seeds that germinated (germination counts) on Day 1.
Number of seeds that germinated (germination counts) on Day 2.
Number of seeds that germinated (germination counts) on Day 3.
Number of seeds that germinated (germination counts) on Day 4.
Number of seeds that germinated (germination counts) on Day 5.
Number of seeds that germinated (germination counts) on Day 6.
Number of seeds that germinated (germination counts) on Day 7.
Number of seeds that germinated (germination counts) on Day 8.
Number of seeds that germinated (germination counts) on Day 9.
Number of seeds that germinated (germination counts) on Day 10.
Number of seeds that germinated (germination counts) on Day 11.
Number of seeds that germinated (germination counts) on Day 12.
Number of seeds that germinated (germination counts) on Day 13.
Number of seeds that germinated (germination counts) on Day 14.
Total number of seeds tested.
data(gcdata) library(ggplot2) library(reshape2) # Plot partial germination counts over time #---------------------------------------------------------------------------- # Convert wide-from to long-form gcdatamelt <- melt(gcdata[, !names(gcdata) %in% c("Total Seeds")], id.vars = c("Genotype", "Rep")) ggplot(gcdatamelt, aes(x = variable, y = value, group = interaction(Genotype, Rep), colour = Genotype)) + geom_point(alpha = 0.7) + geom_line(alpha = 0.7) + ylab("Germination count (Partial)") + xlab("Intervals") + theme_bw() # Plot partial germination counts over time #---------------------------------------------------------------------------- # Convert wide-from to long-form # Compute cumulative germination counts gcdata2 <- gcdata gcdata2[, !names(gcdata2) %in% c("Genotype", "Rep", "Total Seeds")] <- t(apply(gcdata2[, !names(gcdata2) %in% c("Genotype", "Rep", "Total Seeds")], 1, cumsum)) gcdatamelt2 <- melt(gcdata2[, !names(gcdata2) %in% c("Total Seeds")], id.vars = c("Genotype", "Rep")) ggplot(gcdatamelt2, aes(x = variable, y = value, group = interaction(Genotype, Rep), colour = Genotype)) + geom_point(alpha = 0.7) + geom_line(alpha = 0.7) + ylab("Germination count (Cumulative)") + xlab("Intervals") + theme_bw() # Compute germination indices #---------------------------------------------------------------------------- counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") germination.indices(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, max.int = 5)
data(gcdata) library(ggplot2) library(reshape2) # Plot partial germination counts over time #---------------------------------------------------------------------------- # Convert wide-from to long-form gcdatamelt <- melt(gcdata[, !names(gcdata) %in% c("Total Seeds")], id.vars = c("Genotype", "Rep")) ggplot(gcdatamelt, aes(x = variable, y = value, group = interaction(Genotype, Rep), colour = Genotype)) + geom_point(alpha = 0.7) + geom_line(alpha = 0.7) + ylab("Germination count (Partial)") + xlab("Intervals") + theme_bw() # Plot partial germination counts over time #---------------------------------------------------------------------------- # Convert wide-from to long-form # Compute cumulative germination counts gcdata2 <- gcdata gcdata2[, !names(gcdata2) %in% c("Genotype", "Rep", "Total Seeds")] <- t(apply(gcdata2[, !names(gcdata2) %in% c("Genotype", "Rep", "Total Seeds")], 1, cumsum)) gcdatamelt2 <- melt(gcdata2[, !names(gcdata2) %in% c("Total Seeds")], id.vars = c("Genotype", "Rep")) ggplot(gcdatamelt2, aes(x = variable, y = value, group = interaction(Genotype, Rep), colour = Genotype)) + geom_point(alpha = 0.7) + geom_line(alpha = 0.7) + ylab("Germination count (Cumulative)") + xlab("Intervals") + theme_bw() # Compute germination indices #---------------------------------------------------------------------------- counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") germination.indices(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, max.int = 5)
Compute germination indices from a data frame of germination counts recorded at specific time intervals for multiple samples in batch.
germination.indices( data, total.seeds.col, counts.intervals.cols, intervals, partial = TRUE, PeakGermPercent = TRUE, FirstGermTime = TRUE, LastGermTime = TRUE, PeakGermTime = TRUE, TimeSpreadGerm = TRUE, t50 = TRUE, MeanGermTime = TRUE, VarGermTime = TRUE, SEGermTime = TRUE, CVGermTime = TRUE, MeanGermRate = TRUE, CVG = TRUE, VarGermRate = TRUE, SEGermRate = TRUE, GermRateRecip = TRUE, GermSpeed = TRUE, GermSpeedAccumulated = TRUE, GermSpeedCorrected = TRUE, WeightGermPercent = TRUE, MeanGermPercent = TRUE, MeanGermNumber = TRUE, TimsonsIndex = TRUE, GermRateGeorge = TRUE, max.int, GermIndex = TRUE, EmergenceRateIndex = TRUE, PeakValue = TRUE, GermValue = TRUE, gv.k = 10, CUGerm = TRUE, GermSynchrony = TRUE, GermUncertainty = TRUE )
germination.indices( data, total.seeds.col, counts.intervals.cols, intervals, partial = TRUE, PeakGermPercent = TRUE, FirstGermTime = TRUE, LastGermTime = TRUE, PeakGermTime = TRUE, TimeSpreadGerm = TRUE, t50 = TRUE, MeanGermTime = TRUE, VarGermTime = TRUE, SEGermTime = TRUE, CVGermTime = TRUE, MeanGermRate = TRUE, CVG = TRUE, VarGermRate = TRUE, SEGermRate = TRUE, GermRateRecip = TRUE, GermSpeed = TRUE, GermSpeedAccumulated = TRUE, GermSpeedCorrected = TRUE, WeightGermPercent = TRUE, MeanGermPercent = TRUE, MeanGermNumber = TRUE, TimsonsIndex = TRUE, GermRateGeorge = TRUE, max.int, GermIndex = TRUE, EmergenceRateIndex = TRUE, PeakValue = TRUE, GermValue = TRUE, gv.k = 10, CUGerm = TRUE, GermSynchrony = TRUE, GermUncertainty = TRUE )
data |
A data frame with the germination count data. It should possess columns with
|
total.seeds.col |
The name of the column in |
counts.intervals.cols |
The names of columns in |
intervals |
The time intervals at which germination counts (in the
columns specified in argument |
partial |
logical. If |
PeakGermPercent |
logical. If |
FirstGermTime |
logical. If |
LastGermTime |
logical. If |
PeakGermTime |
logical. If |
TimeSpreadGerm |
logical. If |
t50 |
logical. If |
MeanGermTime |
logical. If |
VarGermTime |
logical. If |
SEGermTime |
logical. If |
CVGermTime |
logical. If |
MeanGermRate |
logical. If |
CVG |
logical. If |
VarGermRate |
logical. If |
SEGermRate |
logical. If |
GermRateRecip |
logical. If |
GermSpeed |
logical. If |
GermSpeedAccumulated |
logical. If |
GermSpeedCorrected |
logical. If |
WeightGermPercent |
logical. If |
MeanGermPercent |
logical. If |
MeanGermNumber |
logical. If |
TimsonsIndex |
logical. If |
GermRateGeorge |
logical. If |
max.int |
The maximum interval value up to which Timson's index/George's germination rate is to be computed. |
GermIndex |
logical. If |
EmergenceRateIndex |
logical. If
|
PeakValue |
logical. If |
GermValue |
logical. If |
gv.k |
The k Constant for computation of germination value. Default is 10. |
CUGerm |
logical. If |
GermSynchrony |
logical. If |
GermUncertainty |
logical. If |
A data frame with the original data along with the various single-value germination indices specified in the function arguments.
AOSA (1983).
Seed Vigor Testing Handbook.
Association of Official Seed Analysts, Ithaca, NY, USA.
Al-Mudaris MA (1998).
“Notes on various parameters recording the speed of seed germination.”
Der Tropenlandwirt - Journal of Agriculture in the Tropics and Subtropics, 99(2), 147–154.
Allan RE, Vogel OA, Peterson CJ (1962).
“Seedling emergence rate of fall-sown wheat and its association with plant height and coleoptile length.”
Agronomy Journal, 54(4), 347.
Baskin CC, Baskin JM (1998).
Seeds: Ecology, Biogeography, and Evolution of Dormancy and Germination.
Academic Press, San Diego.
ISBN 0-12-080260-0.
Bewley JD, Black M (1994).
Physiology of Development and Germination.
Plenum Publishing Corporation, New York, USA.
ISBN 0-306-44748-7, tex.ids= bewley_ seeds:_1994, bewley_ seeds:_1994-1, bewley_ seeds:_1994-2 googlebooksid: W6EbrewcpDwC.
Bilbro JD, Wanjura DF (1982).
“Soil crusts and cotton emergence relationships.”
Transactions of the ASAE, 25(6), 1484–1487.
Bonner FT (1967).
“Ideal sowing depth for sweetgum seed.”
Tree Planters' Notes, 18(1), 1–1.
Bouton JH, Dudeck AE, Smith RL (1976).
“Germination in freshly harvested seed of centipedegrass.”
Agronomy Journal, 68(6), 991.
Bradbeer JW (1988).
Seed Dormancy and Germination.
Blackie, Glasgow and London.
Brown RF, Mayer DG (1988).
“Representing cumulative germination. 1. A critical analysis of single-value germination indices.”
Annals of Botany, 61(2), 117–125.
Coolbear P, Francis A, Grierson D (1984).
“The effect of low temperature pre-sowing treatment on the germination performance and membrane integrity of artificially aged tomato seeds.”
Journal of Experimental Botany, 35(11), 1609–1617.
Czabator FJ (1962).
“Germination value: An index combining speed and completeness of pine seed germination.”
Forest Science, 8(4), 386–396.
Djavanshir K, Pourbeik H (1976).
“Germination value-A new formula.”
Silvae Genetica, 25(2), 79–83.
Edmond JB, Drapala WJ (1958).
“The effects of temperature, sand and soil, and acetone on germination of okra seed.”
Proceedings of the American Society for Horticultural Science, 71, 428–434.
Edwards TI (1932).
“Temperature relations of seed germination.”
The Quarterly Review of Biology, 7(4), 428–443.
Ellis RH, Roberts EH (1980).
“Improved equations for the prediction of seed longevity.”
Annals of Botany, 45(1), 13–30.
Evetts LL, Burnside OC (1972).
“Germination and seedling development of common milkweed and other species.”
Weed Science, 20(4), 371–378.
Fakorede MAB, Agbana SB (1983).
“Heterotic effects and association of seedling vigour with mature characteristics and grain yield in some tropical maize cultivars.”
Maydica, 28, 327–338.
Fakorede MAB, Ayoola AO (1980).
“Relation between seedling vigor and selection for yield improvement in maize.”
Maydica, 25(3), 135–147.
Fakorede MAB, Ojo DK (1981).
“Variability for seedling vigour in maize.”
Experimental Agriculture, 17(2), 195–201.
Farooq M, Basra SMA, Ahmad N, Hafeez K (2005).
“Thermal hardening: A new seed vigor enhancement tool in rice.”
Journal of Integrative Plant Biology, 47(2), 187–193.
George DW (1961).
“Influence of germination temperature on the expression of post-harvest dormancy in wheat.”
In Crop Science Abstracts; Western Society of Crop Science Annual Meeting, 1961, 15.
Goloff AA, Bazzaz FA (1975).
“A germination model for natural seed populations.”
Journal of Theoretical Biology, 52(2), 259–283.
Gordon AG (1969).
“Some observations on the germination energy tests for cereals.”
Proceedings of the Association of Official Seed Analysts, 59, 58–72.
Gordon AG (1971).
“The germination resistance test - A new test for measuring germination quality of cereals.”
Canadian Journal of Plant Science, 51(2), 181–183.
Grose RJ, Zimmer WJ (1958).
“Some laboratory germination responses of the seeds of river red gum, Eucalyptus camaldulensis Dehn. Syn. Eucalyptus rostrata Schlecht.”
Australian Journal of Botany, 6(2), 129.
Haugland E, Brandsaeter LO (1996).
“Experiments on bioassay sensitivity in the study of allelopathy.”
Journal of Chemical Ecology, 22(10), 1845–1859.
Heydecker W (1972).
Seed Ecology. Proceedings of the Nineteenth Easter School in Agricultural Science, University of Nottingham, 1972.
Pennsylvania State University Press, University Park, USA.
Kader MA (2005).
“A comparison of seed germination calculation formulae and the associated interpretation of resulting data.”
Journal and Proceedings of the Royal Society of New South Wales, 138, 65–75.
Kendrick RE, Frankland B (1969).
“Photocontrol of germination in Amaranthus caudatus.”
Planta, 85(4), 326–339.
Khamassi K, Harbaoui K, Jaime ATdS, Jeddi FB (2013).
“Optimal germination temperature assessed by indices and models in field bean (Vicia faba L. var. minor).”
Agriculturae Conspectus Scientificus, 78(2), 131–136.
Khan MA, Ungar IA (1984).
“The effect of salinity and temperature on the germination of polymorphic seeds and growth of Atriplex triangularis Willd.”
American Journal of Botany, 71(4), 481–489.
Khandakar AL, Bradbeer JW (1983).
Jute seed quality.
Bangladesh Agricultural Research Council, Dhaka.
Kotowski F (1926).
“Temperature relations to germination of vegetable seeds.”
Proceedings of the American Society for Horticultural Science, 23, 176–184.
Labouriau LG (1983).
A Germinacao Das Sementes.
Organizacao dos Estados Americanos. Programa Regional de Desenvolvimento Cientifico e Tecnologico. Serie de Biologia. Monografia 24.
Labouriau LG (1983).
“Uma nova linha de pesquisa na fisiologia da germinacao das sementes.”
In Anais do XXXIV Congresso Nacional de Botanica. SBB, Porto Alegre, 11–50.
Labouriau LG, Valadares MEB (1976).
“On the germination of seeds of Calotropis procera (Ait.) Ait. f.”
Anais da Academia Brasileira de Ciencias, 48(263-284).
Maguire JD (1962).
“Speed of germination - Aid in selection and evaluation for seedling emergence and vigor.”
Crop Science, 2(2), 176–177.
Melville AH, Galletta GJ, Draper AD, Ng TJ (1980).
“Seed germination and early seedling vigor in progenies of inbred strawberry selections.”
HortScience, 15(6, I), 749–750.
Nichols MA, Heydecker W (1968).
“Two approaches to the study of germination data.”
Proceedings of the International Seed Testing Association, 33(3), 531–540.
Primack RB (1985).
“Longevity of individual flowers.”
Annual Review of Ecology and Systematics, 16(1), 15–37.
Quintanilla LG, Pajaron S, Pangua E, Amigo J (2000).
“Effect of temperature on germination in northernmost populations of Culcita macrocarpa and Woodwardia radicans.”
Plant Biology, 2(6), 612–617.
Ranal MA (1999).
“Effects of temperature on spore germination in some fern species from semideciduous mesophytic forest.”
American Fern Journal, 89(2), 149.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
Reddy LV (1978).
Effect of temperature on seed dormancy and alpha-amylase activity during kernel maturation and germination in wheat (Triticum aestivum L.) cultivars.
Ph.D. Thesis, Oregon State University.
Reddy LV, Metzger RJ, Ching TM (1985).
“Effect of temperature on seed dormancy of wheat.”
Crop Science, 25(3), 455.
Roh M, Bentz J, Wang P, Li E, Koshioka M (2004).
“Maturity and temperature stratification affect the germination of Styrax japonicus seeds.”
The Journal of Horticultural Science and Biotechnology, 79(4), 645–651.
Schrader JA, Graves WR (2000).
“Seed germination and seedling growth of Alnus maritima from its three disjunct populations.”
Journal of the American Society for Horticultural Science, 125(1), 128–134.
Scott SJ, Jones RA, Williams WA (1984).
“Review of data analysis methods for seed germination.”
Crop Science, 24(6), 1192–1199.
Shannon CE (1948).
“A mathematical theory of communication.”
Bell System Technical Journal, 27(3), 379–423.
Shmueli M, Goldberg D (1971).
“Emergence, early growth, and salinity of five vegetable crops germinated by sprinkle and trickle irrigation in an arid zone.”
HortScience, 6, 563–565.
Smith PG, Millet AH (1964).
“Germinating and sprouting responses of the tomato at low temperatures.”
Proceedings of the American Society for Horticultural Science, 84, 480–484.
Throneberry GO, Smith FG (1955).
“Relation of respiratory and enzymatic activity to corn seed viability.”
Plant Physiology, 30(4), 337–343.
Timson J (1965).
“New method of recording germination data.”
Nature, 207(4993), 216.
Vallance KB (1950).
“Studies on the germination of the seeds of Striga hermonthica I. The influence of moisture-treatment, stimulant-dilution, and after-ripening on germination.”
Annals of Botany, 14(55), 347–363.
Wardle DA, Ahmed M, Nicholson KS (1991).
“Allelopathic influence of nodding thistle (Carduus nutans L.) seeds on germination and radicle growth of pasture plants.”
New Zealand Journal of Agricultural Research, 34(2), 185–191.
Went FW (1957).
The experimental control of plant growth, volume 17.
Chronica Botanica Co., Waltham, Mass., USA and The Ronald Press Co., New York, USA.
de Santana DG, Ranal MA (2004).
Analise Da Germinacao: Um Enfoque Estatistico.
Universidade de Brasilia, Brasilia.
This function is a wrapper around the different functions for
computation of single-value germination indices in
germinationmetrics
(PeakGermPercent
,
FirstGermTime
,
LastGermTime
,
PeakGermTime
,
TimeSpreadGerm
,
t50
,
MeanGermTime
,
VarGermTime
,
SEGermTime
,
CVGermTime
,
MeanGermRate
,
CVG
,
VarGermRate
,
SEGermRate
,
GermRateRecip
,
GermSpeed
,
GermSpeedAccumulated
,
GermSpeedCorrected
,
WeightGermPercent
,
MeanGermPercent
,
MeanGermPercent
,
TimsonsIndex
,
GermRateGeorge
,
GermIndex
,
EmergenceRateIndex
,
GermValue
,
PeakValue
,
CUGerm
,
GermSynchrony
,
GermUncertainty
)
data(gcdata) counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") germination.indices(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, max.int = 5)
data(gcdata) counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") germination.indices(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, max.int = 5)
Compute the Germination index according to Melville et al. (1980) and its modification by de Santana and Ranal (2004) (Ranal and de Santana 2006).
GermIndex( germ.counts, intervals, partial = TRUE, total.seeds, modification = c("none", "santanaranal") )
GermIndex( germ.counts, intervals, partial = TRUE, total.seeds, modification = c("none", "santanaranal") )
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
total.seeds |
Total number of seeds. |
modification |
The modification to be applied. Either |
Germination index (\(GI\)) is computed as follows (Melville et al. 1980).
\[GI = \sum_{i=1}^{k}\frac{\left | \left ( T_{k} - T_{i} \right ) N_{i}\right |}{N_{t}}\]Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval (day for the example), \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), \(N_{t}\) is the total number of seeds used in the test, and \(k\) is the total number of time intervals.
A modified germination index (\(GI_{mod}\)) was proposed by
(de Santana and Ranal 2004) where total number of
seeds tested (\(N_{t}\)) is replaced by the total number of germinated
seeds (\(N_{g}\)) in the expression of
Melville et al. (1980) to
remove the effect of sample size
(Ranal and de Santana 2006). It is computed as follows
(Specified by the argument modification = "santanaranal"
).
The term Germination index (\(GI\)) has also been used to describe the
mathematical expression for Speed of germination
(GermSpeed
) by
AOSA (1983).
The value of the Germination index in the same unit of time as
specified in the argument intervals
.
AOSA (1983).
Seed Vigor Testing Handbook.
Association of Official Seed Analysts, Ithaca, NY, USA.
Melville AH, Galletta GJ, Draper AD, Ng TJ (1980).
“Seed germination and early seedling vigor in progenies of inbred strawberry selections.”
HortScience, 15(6, I), 749–750.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
de Santana DG, Ranal MA (2004).
Analise Da Germinacao: Um Enfoque Estatistico.
Universidade de Brasilia, Brasilia.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermIndex(germ.counts = x, intervals = int, total.seeds = 50) GermIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "none") GermIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "santanaranal") # From cumulative germination counts #---------------------------------------------------------------------------- GermIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50) GermIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "none") GermIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "santanaranal")
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermIndex(germ.counts = x, intervals = int, total.seeds = 50) GermIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "none") GermIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "santanaranal") # From cumulative germination counts #---------------------------------------------------------------------------- GermIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50) GermIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "none") GermIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "santanaranal")
Compute the following metrics:
GermPercent
Germination percentage or Final germination percentage or Germinability (ISTA 2015).
PeakGermPercent
Peak germination percentage (Vallance 1950; Roh et al. 2004).
GermPercent(germinated.seeds, germ.counts, total.seeds, partial = TRUE) PeakGermPercent(germ.counts, intervals, total.seeds, partial = TRUE)
GermPercent(germinated.seeds, germ.counts, total.seeds, partial = TRUE) PeakGermPercent(germ.counts, intervals, total.seeds, partial = TRUE)
germinated.seeds |
Number of germinated seeds |
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
total.seeds |
Total number of seeds. |
partial |
logical. If |
intervals |
The time intervals. |
Germination percentage is computed as follows (ISTA 2015).
\[GP = \frac{N_{g}}{N_{t}} \times 100\]Where, \(N_{g}\) is the number of germinated seeds and \(N_{t}\) is the total number of seeds.
The value of \(N_{g}\) can be either specified using the argument
germinated.seeds
or is computed from the germ.counts
argument.
Peak germination percentage is computed as follows (Vallance 1950; Roh et al. 2004).
\[PGP = \frac{N_{max}}{N_{t}} \times 100\]Where, \(N_{max}\) is the maximum number of seeds germinated per interval.
The germination percentage (%) value.
ISTA (2015).
“Chapter 5: The germination test.”
In International Rules for Seed Testing. International Seed Testing Association, Zurich, Switzerland., volume 2015, i–5–56.
International Seed Testing Association.
Roh M, Bentz J, Wang P, Li E, Koshioka M (2004).
“Maturity and temperature stratification affect the germination of Styrax japonicus seeds.”
The Journal of Horticultural Science and Biotechnology, 79(4), 645–651.
Vallance KB (1950).
“Studies on the germination of the seeds of Striga hermonthica I. The influence of moisture-treatment, stimulant-dilution, and after-ripening on germination.”
Annals of Botany, 14(55), 347–363.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) z <- c(0, 0, 0, 0, 11, 11, 9, 7, 1, 0, 1, 0, 0, 0) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermPercent(germ.counts = x, total.seeds = 50) PeakGermPercent(germ.counts = x, intervals = int, total.seeds = 50) # For multiple peak germination times PeakGermPercent(germ.counts = z, intervals = int, total.seeds = 50) # From cumulative germination counts #---------------------------------------------------------------------------- GermPercent(germ.counts = y, total.seeds = 50, partial = FALSE) PeakGermPercent(germ.counts = y, intervals = int, total.seeds = 50, partial = FALSE) # For multiple peak germination times PeakGermPercent(germ.counts = cumsum(z), intervals = int, total.seeds = 50, partial = FALSE) # From number of germinated seeds #---------------------------------------------------------------------------- GermPercent(germinated.seeds = 40, total.seeds = 50)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) z <- c(0, 0, 0, 0, 11, 11, 9, 7, 1, 0, 1, 0, 0, 0) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermPercent(germ.counts = x, total.seeds = 50) PeakGermPercent(germ.counts = x, intervals = int, total.seeds = 50) # For multiple peak germination times PeakGermPercent(germ.counts = z, intervals = int, total.seeds = 50) # From cumulative germination counts #---------------------------------------------------------------------------- GermPercent(germ.counts = y, total.seeds = 50, partial = FALSE) PeakGermPercent(germ.counts = y, intervals = int, total.seeds = 50, partial = FALSE) # For multiple peak germination times PeakGermPercent(germ.counts = cumsum(z), intervals = int, total.seeds = 50, partial = FALSE) # From number of germinated seeds #---------------------------------------------------------------------------- GermPercent(germinated.seeds = 40, total.seeds = 50)
Compute the following metrics:
GermSpeed
Speed of germination (\(S\)) or Germination rate index or Index of velocity of germination or Germination index or Emergence rate index (Throneberry and Smith 1955; Maguire 1962; Allan et al. 1962; Kendrick and Frankland 1969; Bouton et al. 1976; Erbach 1982; AOSA 1983; Khandakar and Bradbeer 1983; Hsu and Nelson 1986; Bradbeer 1988; Wardle et al. 1991).
GermSpeedAccumulated
Speed of accumulated germination (\(S_{accumulated}\)) (Bradbeer 1988; Wardle et al. 1991; Haugland and Brandsaeter 1996; de Santana and Ranal 2004).
GermSpeedCorrected
Corrected speed of germination (\(\hat{S}\)) or Corrected germination rate index (Evetts and Burnside 1972).
GermSpeed( germ.counts, intervals, partial = TRUE, percent = FALSE, total.seeds = NULL ) GermSpeedAccumulated( germ.counts, intervals, partial = TRUE, percent = FALSE, total.seeds = NULL ) GermSpeedCorrected( germ.counts, intervals, partial = TRUE, total.seeds, method = c("normal", "accumulated") )
GermSpeed( germ.counts, intervals, partial = TRUE, percent = FALSE, total.seeds = NULL ) GermSpeedAccumulated( germ.counts, intervals, partial = TRUE, percent = FALSE, total.seeds = NULL ) GermSpeedCorrected( germ.counts, intervals, partial = TRUE, total.seeds, method = c("normal", "accumulated") )
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
percent |
logical. If |
total.seeds |
Total number of seeds. Mandatory for computation when
|
method |
The method for computing germination speed in
|
GermSpeed
computes the speed of germination according to the following
formula
(Throneberry and Smith 1955; Maguire 1962; Allan et al. 1962; Kendrick and Frankland 1969; Bouton et al. 1976; Erbach 1982; AOSA 1983; Khandakar and Bradbeer 1983; Hsu and Nelson 1986; Bradbeer 1988; Wardle et al. 1991).
Where, \(N_{1}\), \(N_{2}\), \(N_{3}\), \(\cdots\), \(N_{k}\) are the number of germinated seeds observed at time (days or hours) \(T_{1}\), \(T_{2}\), \(T_{3}\), \(\cdots\), \(T_{k}\) after sowing (Not accumulated/cumulative number, but the number of seeds that germinated at the specific time) and \(k\) is the total number of time intervals.
It is the same as Emergence Rate Index (\(ERI\)) described by Allan et al. (1962), Erbach (1982) and Hsu and Nelson (1986) as well as Germination Index (\(GI\)) according to AOSA (1983).
The formula can also be described as follows.
\[S = \sum_{i=1}^{k}\frac{N_{i}}{T_{i}}\]Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
GermSpeedAccumulated
computes the speed of accumulated germination as
follows
(Bradbeer 1988; Wardle et al. 1991; Haugland and Brandsaeter 1996; de Santana and Ranal 2004).
Where, \(N_{1}\), \(N_{2}\), \(N_{3}\), \(\cdots\), \(N_{k}\) are the number of germinated seeds observed at time (days or hours) \(T_{1}\), \(T_{2}\), \(T_{3}\), \(\cdots\), \(T_{k}\) after sowing (Not accumulated/cumulative number, but the number of seeds that germinated at the specific time), and \(k\) is the total number of time intervals.
The formula can also be described as follows.
\[S_{accumulated} = \sum_{i=1}^{k}\frac{\sum_{j=1}^{i}N_{j}}{T_{i}}\]Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(\sum_{j=1}^{i}N_{j}\) is the cumuative/accumulated number of seeds germinated in the \(i\)th time interval, and \(k\) is the total number of time intervals.
Speed of germination expresses the rate of germination in terms of the total number of seeds that germinate in a time interval. Higher values indicate greater and faster germination. This is useful for comparisons only when samples or treatments possess similar germinabilities. This is overcome by either using the corrected speed of germination or by using germination percentages instead of counts for computing speed.
GermSpeedCorrected
computes the corrected speed of germination
\(S\) or corrected speed of accumulated germination \(\hat{S}\) as
follows (Evetts and Burnside 1972).
Where, \(S\) is the germination speed or \(\hat{S}\) is the
accumulated speed of germination (as
specified by the argument method = "normal"
or method =
"accumulated"
respectively) computed with germination percentage instead of
counts and \(FGP\) is the final germination percentage or germinability.
With percent = TRUE
, germination percentage is used instead of counts
for computation in GermSpeed
and GermSpeedAccumulated
. In case
of GermSpeedCorrected
, germination percentage is always used for the
numerator.
For GermSpeed
, the value of germination speed as
\(\mathrm{count \, time^{-1}}\) or % \(\mathrm{time^{-1}}\).
For GermSpeedAccumulated
, the value of accumulated germination speed
as \(\mathrm{count \, time^{-1}}\) or % \(\mathrm{time^{-1}}\).
For GermSpeedCorrected
, the corrected speed of germination as
\(\mathrm{time^{-1}}\).
AOSA (1983).
Seed Vigor Testing Handbook.
Association of Official Seed Analysts, Ithaca, NY, USA.
Allan RE, Vogel OA, Peterson CJ (1962).
“Seedling emergence rate of fall-sown wheat and its association with plant height and coleoptile length.”
Agronomy Journal, 54(4), 347.
Bouton JH, Dudeck AE, Smith RL (1976).
“Germination in freshly harvested seed of centipedegrass.”
Agronomy Journal, 68(6), 991.
Bradbeer JW (1988).
Seed Dormancy and Germination.
Blackie, Glasgow and London.
Erbach DC (1982).
“Tillage for continuous corn and corn-soybean rotation.”
Transactions of the ASAE, 25(4), 906–0911.
Evetts LL, Burnside OC (1972).
“Germination and seedling development of common milkweed and other species.”
Weed Science, 20(4), 371–378.
Haugland E, Brandsaeter LO (1996).
“Experiments on bioassay sensitivity in the study of allelopathy.”
Journal of Chemical Ecology, 22(10), 1845–1859.
Hsu FH, Nelson CJ (1986).
“Planting date effects on seedling development of perennial warm-season forage grasses. I. Field emergence.”
Agronomy Journal, 78(1), 33–38.
Kendrick RE, Frankland B (1969).
“Photocontrol of germination in Amaranthus caudatus.”
Planta, 85(4), 326–339.
Khandakar AL, Bradbeer JW (1983).
Jute seed quality.
Bangladesh Agricultural Research Council, Dhaka.
Maguire JD (1962).
“Speed of germination - Aid in selection and evaluation for seedling emergence and vigor.”
Crop Science, 2(2), 176–177.
Throneberry GO, Smith FG (1955).
“Relation of respiratory and enzymatic activity to corn seed viability.”
Plant Physiology, 30(4), 337–343.
Wardle DA, Ahmed M, Nicholson KS (1991).
“Allelopathic influence of nodding thistle (Carduus nutans L.) seeds on germination and radicle growth of pasture plants.”
New Zealand Journal of Agricultural Research, 34(2), 185–191.
de Santana DG, Ranal MA (2004).
Analise Da Germinacao: Um Enfoque Estatistico.
Universidade de Brasilia, Brasilia.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermSpeed(germ.counts = x, intervals = int) GermSpeedAccumulated(germ.counts = x, intervals = int) GermSpeedCorrected(germ.counts = x, intervals = int, total.seeds = 50, method = "normal") GermSpeedCorrected(germ.counts = x, intervals = int, total.seeds = 50, method = "accumulated") # From partial germination counts (with percentages instead of counts) #---------------------------------------------------------------------------- GermSpeed(germ.counts = x, intervals = int, percent = TRUE, total.seeds = 50) GermSpeedAccumulated(germ.counts = x, intervals = int, percent = TRUE, total.seeds = 50) # From cumulative germination counts #---------------------------------------------------------------------------- GermSpeed(germ.counts = y, intervals = int, partial = FALSE) GermSpeedAccumulated(germ.counts = y, intervals = int, partial = FALSE) GermSpeedCorrected(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, method = "normal") GermSpeedCorrected(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, method = "accumulated") # From cumulative germination counts (with percentages instead of counts) #---------------------------------------------------------------------------- GermSpeed(germ.counts = y, intervals = int, partial = FALSE, percent = TRUE, total.seeds = 50) GermSpeedAccumulated(germ.counts = y, intervals = int, partial = FALSE, percent = TRUE, total.seeds = 50)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermSpeed(germ.counts = x, intervals = int) GermSpeedAccumulated(germ.counts = x, intervals = int) GermSpeedCorrected(germ.counts = x, intervals = int, total.seeds = 50, method = "normal") GermSpeedCorrected(germ.counts = x, intervals = int, total.seeds = 50, method = "accumulated") # From partial germination counts (with percentages instead of counts) #---------------------------------------------------------------------------- GermSpeed(germ.counts = x, intervals = int, percent = TRUE, total.seeds = 50) GermSpeedAccumulated(germ.counts = x, intervals = int, percent = TRUE, total.seeds = 50) # From cumulative germination counts #---------------------------------------------------------------------------- GermSpeed(germ.counts = y, intervals = int, partial = FALSE) GermSpeedAccumulated(germ.counts = y, intervals = int, partial = FALSE) GermSpeedCorrected(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, method = "normal") GermSpeedCorrected(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, method = "accumulated") # From cumulative germination counts (with percentages instead of counts) #---------------------------------------------------------------------------- GermSpeed(germ.counts = y, intervals = int, partial = FALSE, percent = TRUE, total.seeds = 50) GermSpeedAccumulated(germ.counts = y, intervals = int, partial = FALSE, percent = TRUE, total.seeds = 50)
Compute the following metrics:
GermSynchrony
Synchrony of germination (\(Z\) index) (Primack 1985; Ranal and de Santana 2006).
GermUncertainty
Synchronization index (\(\overline{E}\)) or Uncertainty of the germination process (\(U\)) or Informational entropy (\(H\)) (Shannon 1948; Labouriau and Valadares 1976; Labouriau 1983).
GermSynchrony(germ.counts, intervals, partial = TRUE) GermUncertainty(germ.counts, intervals, partial = TRUE)
GermSynchrony(germ.counts, intervals, partial = TRUE) GermUncertainty(germ.counts, intervals, partial = TRUE)
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
GermSynchrony
computes the value of synchrony of germination
(\(Z\) index) as follows
(Primack 1985; Ranal and de Santana 2006).
Where, \(C_{N_{i},2}\) is the partial combination of the two germinated seeds from among \(N_{i}\), the number of seeds germinated on the \(i\)th time interval (estimated as \(C_{N_{i},2}=\frac{N_{i}(N_{i}-1)}{2}\)), and \(C_{\Sigma N_{i},2}\) is the partial combination of the two germinated seeds from among the total number of seeds germinated at the final count, assuming that all seeds that germinated did so simultaneously.
GermUncertainty
computes the value of synchronization index
(\(\overline{E}\)) or uncertainty of the germination process
(\(U\)) or informational entropy (\(H\)) as follows
(Shannon 1948; Labouriau and Valadares 1976; Labouriau 1983).
Where, \(f_{i}\) is the relative frequency of germination (estimated as \(f_{i}=\frac{N_{i}}{\sum_{i=1}^{k}N_{i}}\)), \(N_{i}\) is the number of seeds germinated on the \(i\)th time interval, and \(k\) is the total number of time intervals.
For GermUncertainty
, the value of uncertainty of germination
process in \(\mathrm{bit}\).
For GermSynchrony
, the value of synchrony of germination.
Labouriau LG (1983).
“Uma nova linha de pesquisa na fisiologia da germinacao das sementes.”
In Anais do XXXIV Congresso Nacional de Botanica. SBB, Porto Alegre, 11–50.
Labouriau LG, Valadares MEB (1976).
“On the germination of seeds of Calotropis procera (Ait.) Ait. f.”
Anais da Academia Brasileira de Ciencias, 48(263-284).
Primack RB (1985).
“Longevity of individual flowers.”
Annual Review of Ecology and Systematics, 16(1), 15–37.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
Shannon CE (1948).
“A mathematical theory of communication.”
Bell System Technical Journal, 27(3), 379–423.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermSynchrony(germ.counts = x, intervals = int) GermUncertainty(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- GermSynchrony(germ.counts = y, intervals = int, partial = FALSE) GermUncertainty(germ.counts = y, intervals = int, partial = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- GermSynchrony(germ.counts = x, intervals = int) GermUncertainty(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- GermSynchrony(germ.counts = y, intervals = int, partial = FALSE) GermUncertainty(germ.counts = y, intervals = int, partial = FALSE)
Compute the Peak value (\(PV\)) or Emergence Energy (\(EE\)) (Czabator 1962; Bonner 1967) and Germination value (\(GV\)) (Czabator 1962; Djavanshir and Pourbeik 1976; Brown and Mayer 1988).
PeakValue(germ.counts, intervals, total.seeds, partial = TRUE) GermValue( germ.counts, intervals, total.seeds, partial = TRUE, method = c("czabator", "dp"), from.onset = TRUE, k = 10 )
PeakValue(germ.counts, intervals, total.seeds, partial = TRUE) GermValue( germ.counts, intervals, total.seeds, partial = TRUE, method = c("czabator", "dp"), from.onset = TRUE, k = 10 )
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
total.seeds |
Total number of seeds. |
partial |
logical. If |
method |
The method for computing germination value. Either
|
from.onset |
logical. If |
k |
Constant (See Details). Default is 10. |
Peak value (\(PV\)) is the maximum quotient obtained by dividing successive cumulative germination values by the relevant incubation time (Czabator 1962).
\[PV = \max\left ( \frac{G_{1}}{T_{1}},\frac{G_{2}}{T_{2}},\cdots \frac{G_{k}}{T_{k}} \right )\]Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(G_{i}\) is the cumulative germination percentage in the \(i\)th time interval, and \(k\) is the total number of time intervals.
It represents the mean daily germination of the most vigorous component of the seed lot, and is a mathematical expression of the break, or shoulder, of a typical sigmoid germination curve (Djavanshir and Pourbeik 1976). It is the accumulated number of seeds germinated at the point on the germination curve at which the rate of germination starts to decrease. It is also described as Emergence energy (Bonner 1967).
For daily germination counts, germination value (\(GV\)) is computed as
follows (Czabator 1962) (Specified
by the argument method = "czabator"
).
Where, \(PV\) is the peak value, and \(MDG\) is the mean daily germination percentage from the onset of germination.
Germination value (\(GV\)) can also be computed for other time intervals of successive germination counts, by replacing \(MDG\) with the mean germination percentage per unit time (\(\overline{GP}\)).
A new estimation of germination value was given by
Djavanshir and Pourbeik (1976) as
follows (Specified by the argument method = "dp"
).
Where, \(DGS\) is the daily germination speed computed by dividing cumulative germination percentage by the number of days since the onset of germination, \(N\) is the frequency or number of DGS calculated during the test, \(GP\) is the germination percentage expressed over 100, and \(c\) is a constant. The value of \(c\) is decided on the basis of average daily speed of germination (\(\frac{\sum DGS}{N}\)). If it is less than 10, then \(c\) value of 10 can be used and if it is more than 10, then value of 7 or 8 can be used for \(c\).
For both methods of computing \(GV\), only the duration from the onset
of germination is considered by default. Alternatively, modified \(GV\)
(\(GV_{mod}\)), where the entire duration from the beginning of the test
is considered can be obtained by using the argument from.onset = FALSE
(Brown and Mayer 1988).
A list with the following components:
Germination Value |
The germination value. |
Calculations |
The data frame of calculations. |
testend |
The end of test value (Only for method |
Bonner FT (1967).
“Ideal sowing depth for sweetgum seed.”
Tree Planters' Notes, 18(1), 1–1.
Brown RF, Mayer DG (1988).
“Representing cumulative germination. 1. A critical analysis of single-value germination indices.”
Annals of Botany, 61(2), 117–125.
Czabator FJ (1962).
“Germination value: An index combining speed and completeness of pine seed germination.”
Forest Science, 8(4), 386–396.
Djavanshir K, Pourbeik H (1976).
“Germination value-A new formula.”
Silvae Genetica, 25(2), 79–83.
x <- c(0, 0, 34, 40, 21, 10, 4, 5, 3, 5, 8, 7, 7, 6, 6, 4, 0, 2, 0, 2) y <- c(0, 0, 34, 74, 95, 105, 109, 114, 117, 122, 130, 137, 144, 150, 156, 160, 160, 162, 162, 164) int <- 1:length(x) total.seeds = 200 # From partial germination counts #---------------------------------------------------------------------------- PeakValue(germ.counts = x, intervals = int, total.seeds = 200) GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "czabator") GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "dp", k = 10) GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "czabator", from.onset = FALSE) GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "dp", k = 10, from.onset = FALSE) # From cumulative germination counts #---------------------------------------------------------------------------- PeakValue(germ.counts = y, interval = int, total.seeds = 200, partial = FALSE) GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "czabator") GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "dp", k = 10) GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "czabator", from.onset = FALSE) GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "dp", k = 10, from.onset = FALSE)
x <- c(0, 0, 34, 40, 21, 10, 4, 5, 3, 5, 8, 7, 7, 6, 6, 4, 0, 2, 0, 2) y <- c(0, 0, 34, 74, 95, 105, 109, 114, 117, 122, 130, 137, 144, 150, 156, 160, 160, 162, 162, 164) int <- 1:length(x) total.seeds = 200 # From partial germination counts #---------------------------------------------------------------------------- PeakValue(germ.counts = x, intervals = int, total.seeds = 200) GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "czabator") GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "dp", k = 10) GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "czabator", from.onset = FALSE) GermValue(germ.counts = x, intervals = int, total.seeds = 200, method = "dp", k = 10, from.onset = FALSE) # From cumulative germination counts #---------------------------------------------------------------------------- PeakValue(germ.counts = y, interval = int, total.seeds = 200, partial = FALSE) GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "czabator") GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "dp", k = 10) GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "czabator", from.onset = FALSE) GermValue(germ.counts = y, intervals = int, total.seeds = 200, partial = FALSE, method = "dp", k = 10, from.onset = FALSE)
Compute the following metrics:
MeanGermPercent
Mean/average germination percentage per unit time (\(\overline{GP}\)) (Czabator 1962).
MeanGermNumber
Number of seeds germinated per unit time (\(\overline{N}\)) (Khamassi et al. 2013).
MeanGermPercent( germinated.seeds, germ.counts, total.seeds, intervals, partial = TRUE ) MeanGermNumber(germ.counts, intervals, partial = TRUE)
MeanGermPercent( germinated.seeds, germ.counts, total.seeds, intervals, partial = TRUE ) MeanGermNumber(germ.counts, intervals, partial = TRUE)
germinated.seeds |
Number of germinated seeds |
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
total.seeds |
Total number of seeds. |
intervals |
The time intervals. |
partial |
logical. If |
Mean germination percentage per unit time (\(\overline{GP}\)) is computed as follows (Czabator 1962).
\[\overline{GP} = \frac{GP}{T_{k}}\]Where, \(GP\) is the final germination percentage, \(T_{k}\) is the time at the \(k\)th time interval, and \(k\) is the total number of time intervals required for final germination.
Mean number of seeds germinated per unit time (\(\overline{N}\)) is computed as follows (Khamassi et al. 2013).
\[\overline{N} = \frac{N_{g}}{T_{k}}\]Where, \(N_{g}\) is the number of germinated seeds at the end of the germination test, \(T_{k}\) is the time at the \(k\)th time interval, and \(k\) is the total number of time intervals required for final germination.
The value of mean germination percentage as % \(\mathrm{time^{-1}}\) or mean number of seeds per time interval as \(\mathrm{count \, time^{-1}}\).
Czabator FJ (1962).
“Germination value: An index combining speed and completeness of pine seed germination.”
Forest Science, 8(4), 386–396.
Khamassi K, Harbaoui K, Jaime ATdS, Jeddi FB (2013).
“Optimal germination temperature assessed by indices and models in field bean (Vicia faba L. var. minor).”
Agriculturae Conspectus Scientificus, 78(2), 131–136.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- MeanGermPercent(germ.counts = x, total.seeds = 50, intervals = int) MeanGermNumber(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- MeanGermPercent(germ.counts = y, total.seeds = 50, intervals = int, partial = FALSE) MeanGermNumber(germ.counts = y, intervals = int, partial = FALSE) # From number of germinated seeds #---------------------------------------------------------------------------- MeanGermPercent(germinated.seeds = 40, total.seeds = 50, intervals = int)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- MeanGermPercent(germ.counts = x, total.seeds = 50, intervals = int) MeanGermNumber(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- MeanGermPercent(germ.counts = y, total.seeds = 50, intervals = int, partial = FALSE) MeanGermNumber(germ.counts = y, intervals = int, partial = FALSE) # From number of germinated seeds #---------------------------------------------------------------------------- MeanGermPercent(germinated.seeds = 40, total.seeds = 50, intervals = int)
Compute the following metrics:
MeanGermRate
Mean germination rate (\(\overline{V}\)) (Labouriau and Valadares 1976; Labouriau 1983; Ranal and de Santana 2006).
VarGermRate
Variance of germination rate (\(s_{V}^{2}\)) (Labouriau 1983; Ranal and de Santana 2006).
SEGermRate
Standard error of germination rate (\(s_{\overline{V}}\)) (Labouriau 1983; Ranal and de Santana 2006).
CVG
Coefficient of velocity/rate of germination or Kotowski's coefficient of velocity (\(CVG\)) (Kotowski 1926; Nichols and Heydecker 1968; Labouriau 1983; Scott et al. 1984; Bewley and Black 1994).
GermRateRecip
Germination rate as reciprocal of median time (\(v_{50}\)) (Went 1957; Labouriau 1983; Ranal and de Santana 2006).
MeanGermRate(germ.counts, intervals, partial = TRUE) CVG(germ.counts, intervals, partial = TRUE) VarGermRate(germ.counts, intervals, partial = TRUE) SEGermRate(germ.counts, intervals, partial = TRUE) GermRateRecip( germ.counts, intervals, partial = TRUE, method = c("coolbear", "farooq") )
MeanGermRate(germ.counts, intervals, partial = TRUE) CVG(germ.counts, intervals, partial = TRUE) VarGermRate(germ.counts, intervals, partial = TRUE) SEGermRate(germ.counts, intervals, partial = TRUE) GermRateRecip( germ.counts, intervals, partial = TRUE, method = c("coolbear", "farooq") )
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
method |
The method for computing median germination time. Either
|
MeanGermRate
computes the mean germination rate
(\(\overline{V}\)) according to the following formula
(Labouriau and Valadares 1976; Labouriau 1983; Ranal and de Santana 2006).
Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
It is the inverse of mean germination time (\(\overline{T}\)).
\[\overline{V} = \frac{1}{\overline{T}}\]VarGermRate
computes the variance of germination rate
(\(s_{V}^{2}\)) according to the following formula
(Labouriau 1983; Ranal and de Santana 2006).
Where, \(s_{T}^{2}\) is the variance of germination time.
SEGermRate
computes the standard error of germination time
(\(s_{\overline{V}}\)) according to the following formula
(Labouriau 1983; Ranal and de Santana 2006).
Where, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
CVG
computes the coefficient of velocity/rate of germination or
Kotowski's coefficient of velocity (\(CVG\)) according to the following
formula
(Kotowski 1926; Nichols and Heydecker 1968; Labouriau 1983; Scott et al. 1984; Bewley and Black 1994).
Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
GermRateRecip
computes the germination rate (\(v_{50}\)) as the
reciprocal of the median germination time (\(t_{50}\))
(Went 1957; Labouriau 1983; Ranal and de Santana 2006)
according to the methods of
Coolbear et al. (1984) (Specified by
the argument method = "coolbear"
) or
Farooq et al. (2005) (Specified by
the argument method = "farooq"
) as follows.
For MeanGermRate
, the mean germination rate value as
\(\mathrm{time^{-1}}\).
For VarGermTime
, the variance of germination rate value as
\(\mathrm{time^{-2}}\).
For SEGermTime
, the standard error of germination rate as
\(\mathrm{time^{-1}}\).
For CVG
, the value of Coefficient of of velocity/rate of germination
or Kotowski's coefficient of velocity as % \(\mathrm{time^{-1}}\).
For GermRateRecip
, the value of germination rate as
\(\mathrm{time^{-1}}\).
Bewley JD, Black M (1994).
Physiology of Development and Germination.
Plenum Publishing Corporation, New York, USA.
ISBN 0-306-44748-7, tex.ids= bewley_ seeds:_1994, bewley_ seeds:_1994-1, bewley_ seeds:_1994-2 googlebooksid: W6EbrewcpDwC.
Coolbear P, Francis A, Grierson D (1984).
“The effect of low temperature pre-sowing treatment on the germination performance and membrane integrity of artificially aged tomato seeds.”
Journal of Experimental Botany, 35(11), 1609–1617.
Farooq M, Basra SMA, Ahmad N, Hafeez K (2005).
“Thermal hardening: A new seed vigor enhancement tool in rice.”
Journal of Integrative Plant Biology, 47(2), 187–193.
Kotowski F (1926).
“Temperature relations to germination of vegetable seeds.”
Proceedings of the American Society for Horticultural Science, 23, 176–184.
Labouriau LG (1983).
“Uma nova linha de pesquisa na fisiologia da germinacao das sementes.”
In Anais do XXXIV Congresso Nacional de Botanica. SBB, Porto Alegre, 11–50.
Labouriau LG, Valadares MEB (1976).
“On the germination of seeds of Calotropis procera (Ait.) Ait. f.”
Anais da Academia Brasileira de Ciencias, 48(263-284).
Nichols MA, Heydecker W (1968).
“Two approaches to the study of germination data.”
Proceedings of the International Seed Testing Association, 33(3), 531–540.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
Scott SJ, Jones RA, Williams WA (1984).
“Review of data analysis methods for seed germination.”
Crop Science, 24(6), 1192–1199.
Went FW (1957).
The experimental control of plant growth, volume 17.
Chronica Botanica Co., Waltham, Mass., USA and The Ronald Press Co., New York, USA.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- MeanGermRate(germ.counts = x, intervals = int) CVG(germ.counts = x, intervals = int) VarGermRate(germ.counts = x, intervals = int) SEGermRate(germ.counts = x, intervals = int) GermRateRecip(germ.counts = x, intervals = int, method = "coolbear") GermRateRecip(germ.counts = x, intervals = int, method = "farooq") # From cumulative germination counts #---------------------------------------------------------------------------- MeanGermRate(germ.counts = y, intervals = int, partial = FALSE) CVG(germ.counts = y, intervals = int, partial = FALSE) VarGermRate(germ.counts = y, intervals = int, partial = FALSE) SEGermRate(germ.counts = y, intervals = int, partial = FALSE) GermRateRecip(germ.counts = y, intervals = int, method = "coolbear", partial = FALSE) GermRateRecip(germ.counts = y, intervals = int, method = "farooq", partial = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- MeanGermRate(germ.counts = x, intervals = int) CVG(germ.counts = x, intervals = int) VarGermRate(germ.counts = x, intervals = int) SEGermRate(germ.counts = x, intervals = int) GermRateRecip(germ.counts = x, intervals = int, method = "coolbear") GermRateRecip(germ.counts = x, intervals = int, method = "farooq") # From cumulative germination counts #---------------------------------------------------------------------------- MeanGermRate(germ.counts = y, intervals = int, partial = FALSE) CVG(germ.counts = y, intervals = int, partial = FALSE) VarGermRate(germ.counts = y, intervals = int, partial = FALSE) SEGermRate(germ.counts = y, intervals = int, partial = FALSE) GermRateRecip(germ.counts = y, intervals = int, method = "coolbear", partial = FALSE) GermRateRecip(germ.counts = y, intervals = int, method = "farooq", partial = FALSE)
Compute the following metrics:
MeanGermTime
Mean germination time (\(\overline{T}\)) or Mean length of incubation time (Edmond and Drapala 1958; Czabator 1962; Mock and Eberhart 1972; Ellis and Roberts 1980; Labouriau 1983; Ranal and de Santana 2006).
VarGermTime
Variance of germination time (\(s_{T}^{2}\)) (Labouriau 1983; Ranal and de Santana 2006).
SEGermTime
Standard error of germination time (\(s_{\overline{T}}\)) (Labouriau 1983; Ranal and de Santana 2006).
CVGermTime
Coefficient of variation of the germination time (\(CV_{T}\)) (Gomes 1960; Ranal and de Santana 2006).
MeanGermTime(germ.counts, intervals, partial = TRUE) VarGermTime(germ.counts, intervals, partial = TRUE) SEGermTime(germ.counts, intervals, partial = TRUE) CVGermTime(germ.counts, intervals, partial = TRUE)
MeanGermTime(germ.counts, intervals, partial = TRUE) VarGermTime(germ.counts, intervals, partial = TRUE) SEGermTime(germ.counts, intervals, partial = TRUE) CVGermTime(germ.counts, intervals, partial = TRUE)
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
MeanGermTime
computes the mean germination time according to the
following formula
(Edmond and Drapala 1958; Czabator 1962; Smith and Millet 1964; Ellis and Roberts 1980; Labouriau 1983; Ranal and de Santana 2006).
Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
It is the same as Sprouting Index (\(SI\)) or Emergence Index (\(EI\)) described by Smith and Millet (1964) and Mock and Eberhart (1972) as well as Germination Resistance (\(GR\)) described by Gordon (1969, 1971).
It is the inverse of mean germination rate (\(\overline{V}\)).
\[\overline{T} = \frac{1}{\overline{V}}\]It indicates the average length of time required for maximum germination of a seed lot. Lower the \(\overline{T}\), faster the sample has germinated and reflects seed vigor.
VarGermTime
computes the variance of germination time according to the
following formula
(Labouriau 1983; Ranal and de Santana 2006).
Where, \(T_{i}\) is the time from the start of the experiment to the \(i\)th interval, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
SEGermTime
computes the standard error of germination time
(\(s_{\overline{T}}\)) according to the following formula
(Labouriau 1983; Ranal and de Santana 2006).
Where, \(N_{i}\) is the number of seeds germinated in the \(i\)th time interval (not the accumulated number, but the number corresponding to the \(i\)th interval), and \(k\) is the total number of time intervals.
It signifies the accuracy of the calculation of the mean germination time.
CVGermTime
computes the coefficient of variation of germination time
(\(CV_{T}\)) according to the following formula
(Gomes 1960; Ranal and de Santana 2006).
This indicates the uniformity of germination and permits comparisons irrespective of the magnitude of mean germination time (\(\overline{T}\)).
For MeanGermTime
, the mean germination time value in the same
unit of time as specified in the argument intervals
.
For VarGermTime
, the variance of germination time value as
\(\mathrm{time^{2}}\).
For SEGermTime
, the standard error of germination time in the same
unit of time specified in the argument intervals
.
For CVGermTime
, the value of coefficient of variation of the
germination time.
Czabator FJ (1962).
“Germination value: An index combining speed and completeness of pine seed germination.”
Forest Science, 8(4), 386–396.
Edmond JB, Drapala WJ (1958).
“The effects of temperature, sand and soil, and acetone on germination of okra seed.”
Proceedings of the American Society for Horticultural Science, 71, 428–434.
Ellis RH, Roberts EH (1980).
“Improved equations for the prediction of seed longevity.”
Annals of Botany, 45(1), 13–30.
Gomes FP (1960).
Curso De Estatistica Experimental.
Escola Superior de Agricultura Luiz de Queiroz, Universidade de Sao Paulo.
Gordon AG (1969).
“Some observations on the germination energy tests for cereals.”
Proceedings of the Association of Official Seed Analysts, 59, 58–72.
Gordon AG (1971).
“The germination resistance test - A new test for measuring germination quality of cereals.”
Canadian Journal of Plant Science, 51(2), 181–183.
Labouriau LG (1983).
A Germinacao Das Sementes.
Organizacao dos Estados Americanos. Programa Regional de Desenvolvimento Cientifico e Tecnologico. Serie de Biologia. Monografia 24.
Mock JJ, Eberhart SA (1972).
“Cold tolerance in adapted maize populations.”
Crop Science, 12(4), 466–469.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
Smith PG, Millet AH (1964).
“Germinating and sprouting responses of the tomato at low temperatures.”
Proceedings of the American Society for Horticultural Science, 84, 480–484.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- MeanGermTime(germ.counts = x, intervals = int) VarGermTime(germ.counts = x, intervals = int) SEGermTime(germ.counts = x, intervals = int) CVGermTime(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- MeanGermTime(germ.counts = y, intervals = int, partial = FALSE) VarGermTime(germ.counts = y, intervals = int, partial = FALSE) SEGermTime(germ.counts = y, intervals = int, partial = FALSE) CVGermTime(germ.counts = y, intervals = int, partial = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- MeanGermTime(germ.counts = x, intervals = int) VarGermTime(germ.counts = x, intervals = int) SEGermTime(germ.counts = x, intervals = int) CVGermTime(germ.counts = x, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- MeanGermTime(germ.counts = y, intervals = int, partial = FALSE) VarGermTime(germ.counts = y, intervals = int, partial = FALSE) SEGermTime(germ.counts = y, intervals = int, partial = FALSE) CVGermTime(germ.counts = y, intervals = int, partial = FALSE)
FourPHFfit
objectplot.FourPHFfit
plots the four-parameter hill function fitted
cumulative germination curve (FPHF curve) from a FourPHFfit
object as
an object of class ggplot
. Further, the rate of germination curve (RoG
curve) is plotted and different parameters annotated as specified in the
different arguments.
## S3 method for class 'FourPHFfit' plot( x, rog = TRUE, t50.total = TRUE, t50.germ = TRUE, tmgr = TRUE, mgt = TRUE, uniformity = TRUE, limits = TRUE, plotlabels = TRUE, ... )
## S3 method for class 'FourPHFfit' plot( x, rog = TRUE, t50.total = TRUE, t50.germ = TRUE, tmgr = TRUE, mgt = TRUE, uniformity = TRUE, limits = TRUE, plotlabels = TRUE, ... )
x |
An object of class |
rog |
If |
t50.total |
If |
t50.germ |
If |
tmgr |
If |
mgt |
If |
uniformity |
If |
limits |
logical. If |
plotlabels |
logical. If |
... |
Default plot arguments. |
The plot of the cumulative germination curve as an object of class
ggplot
.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) total.seeds = 50 # From partial germination counts #---------------------------------------------------------------------------- fit1 <- FourPHFfit(germ.counts = x, intervals = int, total.seeds = 50, tmax = 20) # From cumulative germination counts #---------------------------------------------------------------------------- fit2 <- FourPHFfit(germ.counts = y, intervals = int, total.seeds = 50, tmax = 20, partial = FALSE) # Default plots plot(fit1) plot(fit2) # No labels plot(fit1, plotlabels = FALSE) plot(fit2, plotlabels = FALSE) # Only the FPHF curve plot(fit1, rog = FALSE, t50.total = FALSE, t50.germ = FALSE, tmgr = FALSE, mgt = FALSE, uniformity = FALSE) plot(fit2, rog = FALSE, t50.total = FALSE, t50.germ = FALSE, tmgr = FALSE, mgt = FALSE, uniformity = FALSE) # Without y axis limits adjustment plot(fit1, limits = FALSE) plot(fit2, limits = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) total.seeds = 50 # From partial germination counts #---------------------------------------------------------------------------- fit1 <- FourPHFfit(germ.counts = x, intervals = int, total.seeds = 50, tmax = 20) # From cumulative germination counts #---------------------------------------------------------------------------- fit2 <- FourPHFfit(germ.counts = y, intervals = int, total.seeds = 50, tmax = 20, partial = FALSE) # Default plots plot(fit1) plot(fit2) # No labels plot(fit1, plotlabels = FALSE) plot(fit2, plotlabels = FALSE) # Only the FPHF curve plot(fit1, rog = FALSE, t50.total = FALSE, t50.germ = FALSE, tmgr = FALSE, mgt = FALSE, uniformity = FALSE) plot(fit2, rog = FALSE, t50.total = FALSE, t50.germ = FALSE, tmgr = FALSE, mgt = FALSE, uniformity = FALSE) # Without y axis limits adjustment plot(fit1, limits = FALSE) plot(fit2, limits = FALSE)
FourPHFfit.bulk
objectplot.FourPHFfit
plots multiple four-parameter hill function fitted
cumulative germination curves (FPHF curves) or the rate of germination
curves (RoG curves) from a FourPHFfit.bulk
object as an object of
class ggplot
. Further, either one of the parameters such as time
required for 50% of total seeds to germinate
(\(\textrm{t}_{\textrm{50}_\textrm{Total}}\)), time required for 50% of
viable/germinated seeds to germinate
(\(\textrm{t}_{\textrm{50}_\textrm{Germ}}\)), Time at Maximum
Germination Rate (TMGR), Mean Germination Time (MGT), or uniformity value
(\(\textrm{U}_{\textrm{t}_{\textrm{max}}-\textrm{t}_{\textrm{min}}}\))
can also be annotated in the plot as specified in the annotate
argument.
## S3 method for class 'FourPHFfit.bulk' plot( x, rog = FALSE, annotate = c("none", "t50.total", "t50.germ", "tmgr", "mgt", "uniformity"), limits = TRUE, group.col, show.points = FALSE, ... )
## S3 method for class 'FourPHFfit.bulk' plot( x, rog = FALSE, annotate = c("none", "t50.total", "t50.germ", "tmgr", "mgt", "uniformity"), limits = TRUE, group.col, show.points = FALSE, ... )
x |
An data frame object of class |
rog |
If |
annotate |
The parameter to be annotated in the plot. Either
|
limits |
logical. If |
group.col |
The names of the column in data frame |
show.points |
logical. If |
... |
Default plot arguments. |
The plot of the cumulative germination curve as an object of class
ggplot
.
data(gcdata) counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") fits <- FourPHFfit.bulk(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, xp = c(10, 60), tmax = 20, tries = 3, umax = 90, umin = 10) # Plot FPHF curves plot(fits, group.col = "Genotype") # Plot ROG curves plot(fits, rog = TRUE, group.col = "Genotype") # Plot FPHF curves with points plot(fits, group.col = "Genotype", show.points = TRUE) # Plot FPHF curves with annotations plot(fits, group.col = "Genotype", annotate = "t50.total") plot(fits, group.col = "Genotype", annotate = "t50.germ") plot(fits, group.col = "Genotype", annotate = "tmgr") plot(fits, group.col = "Genotype", annotate = "mgt") plot(fits, group.col = "Genotype", annotate = "uniformity") # Plot ROG curves with annotations plot(fits, rog = TRUE, group.col = "Genotype", annotate = "t50.total") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "t50.germ") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "tmgr") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "mgt") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "uniformity") # Change colour of curves using ggplot2 options library(ggplot2) curvesplot <- plot(fits, group.col = "Genotype") # 'Dark2' palette from RColorBrewer curvesplot + scale_colour_brewer(palette = "Dark2") # Manual colours curvesplot + scale_colour_manual(values = c("Coral", "Brown", "Blue", "Aquamarine", "Red"))
data(gcdata) counts.per.intervals <- c("Day01", "Day02", "Day03", "Day04", "Day05", "Day06", "Day07", "Day08", "Day09", "Day10", "Day11", "Day12", "Day13", "Day14") fits <- FourPHFfit.bulk(gcdata, total.seeds.col = "Total Seeds", counts.intervals.cols = counts.per.intervals, intervals = 1:14, partial = TRUE, fix.y0 = TRUE, fix.a = TRUE, xp = c(10, 60), tmax = 20, tries = 3, umax = 90, umin = 10) # Plot FPHF curves plot(fits, group.col = "Genotype") # Plot ROG curves plot(fits, rog = TRUE, group.col = "Genotype") # Plot FPHF curves with points plot(fits, group.col = "Genotype", show.points = TRUE) # Plot FPHF curves with annotations plot(fits, group.col = "Genotype", annotate = "t50.total") plot(fits, group.col = "Genotype", annotate = "t50.germ") plot(fits, group.col = "Genotype", annotate = "tmgr") plot(fits, group.col = "Genotype", annotate = "mgt") plot(fits, group.col = "Genotype", annotate = "uniformity") # Plot ROG curves with annotations plot(fits, rog = TRUE, group.col = "Genotype", annotate = "t50.total") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "t50.germ") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "tmgr") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "mgt") plot(fits, rog = TRUE, group.col = "Genotype", annotate = "uniformity") # Change colour of curves using ggplot2 options library(ggplot2) curvesplot <- plot(fits, group.col = "Genotype") # 'Dark2' palette from RColorBrewer curvesplot + scale_colour_brewer(palette = "Dark2") # Manual colours curvesplot + scale_colour_manual(values = c("Coral", "Brown", "Blue", "Aquamarine", "Red"))
Compute the median germination time (\(t_{50}\)). Median germination time is the time to reach 50% of final/maximum germination.
t50(germ.counts, intervals, partial = TRUE, method = c("coolbear", "farooq"))
t50(germ.counts, intervals, partial = TRUE, method = c("coolbear", "farooq"))
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
method |
The method for computing median germination time. Either
|
With argument method
specified as "coolbear"
, median
germination time is computed according to the formula by
Coolbear et al. (1984) as follows.
Where, \(t_{50}\) is the median germination time, \(N\) is the final number of germinated seeds, and \(N_{i}\) and \(N_{j}\) are the total number of seeds germinated in adjacent counts at time \(T_{i}\) and \(T_{j}\) respectively, when \(N_{i} < \frac{N + 1}{2} < N_{j}\).
Similarly with argument method
specified as "farooq"
, median
germination time is computed according to the formula by by
Farooq et al. (2005) as follows.
Where, \(t_{50}\) is the median germination time, \(N\) is the final number of germinated seeds, and \(N_{i}\) and \(N_{j}\) are the total number of seeds germinated in adjacent counts at time \(T_{i}\) and \(T_{j}\) respectively, when \(N_{i} < \frac{N}{2} < N_{j}\).
The median germination time (\(t_{50}\)) value in the same unit
of time as specified in the argument intervals
.
Coolbear P, Francis A, Grierson D (1984).
“The effect of low temperature pre-sowing treatment on the germination performance and membrane integrity of artificially aged tomato seeds.”
Journal of Experimental Botany, 35(11), 1609–1617.
Farooq M, Basra SMA, Ahmad N, Hafeez K (2005).
“Thermal hardening: A new seed vigor enhancement tool in rice.”
Journal of Integrative Plant Biology, 47(2), 187–193.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- t50(germ.counts = x, intervals = int, method = "coolbear") t50(germ.counts = x, intervals = int, method = "farooq") # From cumulative germination counts #---------------------------------------------------------------------------- t50(germ.counts = y, intervals = int, partial = FALSE, method = "coolbear") t50(germ.counts = y, intervals = int, partial = FALSE, method = "farooq")
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- t50(germ.counts = x, intervals = int, method = "coolbear") t50(germ.counts = x, intervals = int, method = "farooq") # From cumulative germination counts #---------------------------------------------------------------------------- t50(germ.counts = y, intervals = int, partial = FALSE, method = "coolbear") t50(germ.counts = y, intervals = int, partial = FALSE, method = "farooq")
Compute George's index (George 1961; Tucker and Wright 1965; Nichols and Heydecker 1968; Chopra and Chaudhary 1980), Timson's index or Timson's germination velocity index (Grose and Zimmer 1958; Timson 1965; Lyon and Coffelt 1966; Chaudhary and Ghildyal 1970; Negm and Smith 1978; Brown and Mayer 1988; Baskin and Baskin 1998) and it's modifications by Labouriau (Ranal and de Santana 2006) and (Khan and Ungar 1984).
TimsonsIndex( germ.counts, intervals, partial = TRUE, total.seeds, max, modification = c("none", "labouriau", "khanungar") ) GermRateGeorge(germ.counts, intervals, partial = TRUE, max)
TimsonsIndex( germ.counts, intervals, partial = TRUE, total.seeds, max, modification = c("none", "labouriau", "khanungar") ) GermRateGeorge(germ.counts, intervals, partial = TRUE, max)
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
intervals |
The time intervals. |
partial |
logical. If |
total.seeds |
Total number of seeds. |
max |
The maximum interval value up to which Timson's index/George's germination rate is to be computed. |
modification |
The modification to be applied. Either |
Timson's index (Timson 1965) is computed as follows (Grose and Zimmer 1958; Brown and Mayer 1988; Baskin and Baskin 1998).
\[\Sigma k = \sum_{i=1}^{k}G_{i}\]Where, \(G_{i}\) is the cumulative germination percentage in time interval \(i\) and \(k\) is the total number of time intervals.
For example ten summation (\(\Sigma 10\)) is expressed as follows.
\[\Sigma 10 = G_{1}+G_{2}+\cdots+G_{10}\]Where \(G_{1},G_{2},\cdots G_{10}\) are the cumulative germination percentage at day 1, 2, 3, \(\cdots\), 10 respectively.
Similarly \(\Sigma 5\) or \(\Sigma 20\) can be estimated. For \(\Sigma 10\), the value can range from 0 (no germination) to 1,000 (100% germination after 24 hours).
It is the progressive total of cumulative germination percentage recorded at specific intervals for a set period of time. It combines onset, rate and total percentage of germination and estimates the area under the cumulative germination percentage curve. It is same as the indices for area under time course curve of germination described by Lyon and Coffelt (1966) as well as Negm and Smith (1978). It is also described as Emergence Rate Index (\(ERI\)) by Chaudhary and Ghildyal (1970).
Goodchild and Walker (1971), described the same in terms of partial germination percentage as follows.
\[\Sigma k = \sum_{i=1}^{k}g_{i}(k-j)\]Where, \(g_{i}\) is the germination (not cumulative, but partial germination) in time interval \(i\) (\(i\) varying from \(0\) to \(k\)), \(k\) is the total number of time intervals, and \(j = i - 1\).
Timson's index is equivalent to the Germination Energy Index \(GEI\) proposed by Grose and Zimmer (1958).
As Timson's index is useful for comparison only when samples have similar
germinabilities or final germination percentage, the following modification
was suggested by Labouriau (Ranal and de Santana 2006)
(Specified by the argument modification = "labouriau"
).
Here Timson's index (\(\Sigma k\)) is divided by the sum of partial germination percentages.
Similarly another modification was proposed by
(Khan and Ungar 1984), where Timson's index
(\(\Sigma k\)) is divided by the total time period of germination
(\(T_{k}\)) (Specified by the argument modification =
"khanungar"
).
Timson's index is similar to the Germination Rate (\(GR\)) proposed by George (1961) as follows (Tucker and Wright 1965; Nichols and Heydecker 1968).
\[GR = \sum_{i=1}^{k}N_{i}K_{i}\]Where \(N_{i}\) is the number of seeds germinated by \(i\)th interval, \(K_{i}\) is the number of intervals(e.g. days) until the end of the test, and \(k\) is the total number of time intervals.
This index uses number of seeds germinated instead of germination percentage. It is also described as Emergence Rate Index (\(ERI\)) by Chopra and Chaudhary (1980).
So germination rate (\(GR\)) can also be described in terms of partial (\(N_{i}\)) and cumulative (\(\sum_{j=1}^{i}N_{j}\)) number of seeds germinated in each time interval (\(i\)) as follows.
\[GR = \sum_{i=1}^{k}\sum_{j=1}^{i}N_{j}\] \[GR = \sum_{i=1}^{k}N_{i}(k-j)\]For TimsonsIndex
, the value of Timson's index (%) if
modification = "none"
. If modification = "labouriau"
, then
value with no unit and if modification = "khanungar"
, then value as
% \(\mathrm{time^{-1}}\).
For GermRateGeorge
The value of George's germination rate as
\(count time\).
Baskin CC, Baskin JM (1998).
Seeds: Ecology, Biogeography, and Evolution of Dormancy and Germination.
Academic Press, San Diego.
ISBN 0-12-080260-0.
Brown RF, Mayer DG (1988).
“Representing cumulative germination. 1. A critical analysis of single-value germination indices.”
Annals of Botany, 61(2), 117–125.
Chaudhary TN, Ghildyal BP (1970).
“Effect of temperature associated with levels of bulk density on rice seedling emergence.”
Plant and Soil, 33(1), 87–90.
Chopra UK, Chaudhary TN (1980).
“Effect of soil temperature alteration by soil covers on seedling emergence of wheat (Triticum aestivum L.) sown on two dates.”
Plant and Soil, 57(1), 125–129.
George DW (1961).
“Influence of germination temperature on the expression of post-harvest dormancy in wheat.”
In Crop Science Abstracts; Western Society of Crop Science Annual Meeting, 1961, 15.
Goodchild NA, Walker MG (1971).
“A method of measuring seed germination in physiological studies.”
Annals of Botany, 35(141), 615–621.
Grose RJ, Zimmer WJ (1958).
“Some laboratory germination responses of the seeds of river red gum, Eucalyptus camaldulensis Dehn. Syn. Eucalyptus rostrata Schlecht.”
Australian Journal of Botany, 6(2), 129.
Khan MA, Ungar IA (1984).
“The effect of salinity and temperature on the germination of polymorphic seeds and growth of Atriplex triangularis Willd.”
American Journal of Botany, 71(4), 481–489.
Lyon JL, Coffelt RJ (1966).
“Rapid method for determining numerical indexes for time-course curves.”
Nature, 211(5046), 330–330.
Negm FB, Smith OE (1978).
“Effects of ethylene and carbon dioxide on the germination of osmotically inhibited lettuce seed.”
Plant Physiology, 62(4), 473–476.
Nichols MA, Heydecker W (1968).
“Two approaches to the study of germination data.”
Proceedings of the International Seed Testing Association, 33(3), 531–540.
Ranal MA, de Santana DG (2006).
“How and why to measure the germination process?”
Brazilian Journal of Botany, 29(1), 1–11.
Timson J (1965).
“New method of recording germination data.”
Nature, 207(4993), 216.
Tucker H, Wright LN (1965).
“Estimating rapidity of germination.”
Crop Science, 5(5), 398–399.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- # Without max specified TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50) TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "none") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "labouriau") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "khanungar") GermRateGeorge(germ.counts = x, intervals = int) # With max specified TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10) TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10, modification = "none") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10, modification = "labouriau") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10, modification = "khanungar") GermRateGeorge(germ.counts = x, intervals = int, max = 10) GermRateGeorge(germ.counts = x, intervals = int, max = 14) # From cumulative germination counts #---------------------------------------------------------------------------- # Without max specified TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50) TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "none") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "labouriau") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "khanungar") GermRateGeorge(germ.counts = y, intervals = int, partial = FALSE) # With max specified TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10) TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10, modification = "none") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10, modification = "labouriau") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10, modification = "khanungar") GermRateGeorge(germ.counts = y, intervals = int, partial = FALSE, max = 10) GermRateGeorge(germ.counts = y, intervals = int, partial = FALSE, max = 14)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- # Without max specified TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50) TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "none") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "labouriau") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, modification = "khanungar") GermRateGeorge(germ.counts = x, intervals = int) # With max specified TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10) TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10, modification = "none") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10, modification = "labouriau") TimsonsIndex(germ.counts = x, intervals = int, total.seeds = 50, max = 10, modification = "khanungar") GermRateGeorge(germ.counts = x, intervals = int, max = 10) GermRateGeorge(germ.counts = x, intervals = int, max = 14) # From cumulative germination counts #---------------------------------------------------------------------------- # Without max specified TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50) TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "none") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "labouriau") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, modification = "khanungar") GermRateGeorge(germ.counts = y, intervals = int, partial = FALSE) # With max specified TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10) TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10, modification = "none") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10, modification = "labouriau") TimsonsIndex(germ.counts = y, intervals = int, partial = FALSE, total.seeds = 50, max = 10, modification = "khanungar") GermRateGeorge(germ.counts = y, intervals = int, partial = FALSE, max = 10) GermRateGeorge(germ.counts = y, intervals = int, partial = FALSE, max = 14)
Compute the Weighted germination percentage \(WGP\) or Weighted germination index \(WGI\) (Reddy 1978; Reddy et al. 1985).
WeightGermPercent(germ.counts, total.seeds, intervals, partial = TRUE)
WeightGermPercent(germ.counts, total.seeds, intervals, partial = TRUE)
germ.counts |
Germination counts at each time interval. Can be partial
or cumulative as specified in the argument |
total.seeds |
Total number of seeds tested. |
intervals |
The time intervals. |
partial |
logical. If |
Weighted germination percentage was calculated by giving maximum weight to the seeds that germinate first and decreasing weight to the seeds that germinate subsequently. It is computed as follows (Reddy 1978; Reddy et al. 1985).
\[WGP = \frac{\sum_{i=1}^{k}(k-i+1)N_{i}}{k \times N} \times 100\]Where, \(N_{i}\) is the number of seeds that germinated in the time interval \(i\) (not cumulative, but partial count), \(N\) is the total number of seeds tested, and \(k\) is the total number of time intervals.
The weighted germination percentage (%) value.
Reddy LV (1978).
Effect of temperature on seed dormancy and alpha-amylase activity during kernel maturation and germination in wheat (Triticum aestivum L.) cultivars.
Ph.D. Thesis, Oregon State University.
Reddy LV, Metzger RJ, Ching TM (1985).
“Effect of temperature on seed dormancy of wheat.”
Crop Science, 25(3), 455.
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- WeightGermPercent(germ.counts = x, total.seeds = 50, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- WeightGermPercent(germ.counts = y, total.seeds = 50, intervals = int, partial = FALSE)
x <- c(0, 0, 0, 0, 4, 17, 10, 7, 1, 0, 1, 0, 0, 0) y <- c(0, 0, 0, 0, 4, 21, 31, 38, 39, 39, 40, 40, 40, 40) int <- 1:length(x) # From partial germination counts #---------------------------------------------------------------------------- WeightGermPercent(germ.counts = x, total.seeds = 50, intervals = int) # From cumulative germination counts #---------------------------------------------------------------------------- WeightGermPercent(germ.counts = y, total.seeds = 50, intervals = int, partial = FALSE)