GerminaR is a platform base in open source package to calculate and graphic the main germination indices in R. GerminaR include a web application called “GerminQuant for R” for interactive analysis.
Analysis for the germination experiment can follow a routine. The functions will de explain according to the data set included in the GerminaR package: “prosopis”.
# Install packages and dependencies
library(GerminaR)
library(dplyr)
# load data
<- prosopis %>%
fb mutate(across(c(nacl, temp, rep), as.factor))
# Prosopis data set
%>%
fb head(10) %>%
kable(caption = "Prosopis dataset")
rep | nacl | temp | seeds | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 25 | 50 | 0 | 39 | 8 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 25 | 50 | 0 | 40 | 9 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 25 | 50 | 0 | 34 | 16 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 0 | 25 | 50 | 0 | 43 | 7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 30 | 50 | 0 | 48 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 30 | 50 | 0 | 47 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 0 | 30 | 50 | 0 | 50 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 0 | 30 | 50 | 0 | 49 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0.5 | 25 | 50 | 0 | 10 | 37 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 0.5 | 25 | 50 | 0 | 18 | 30 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
# germination analysis (ten variables)
<- ger_summary(SeedN = "seeds"
gsm evalName = "D"
, data = fb
,
)
# Prosopis data set processed
%>%
gsm head(10) %>%
mutate(across(where(is.numeric), ~round(., 2))) %>%
kable(caption = "Function ger_summary performe ten germination indices")
rep | nacl | temp | seeds | grs | grp | mgt | mgr | gsp | unc | syn | vgt | sdg | cvg |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 25 | 50 | 50 | 100 | 1.28 | 0.78 | 78.12 | 0.95 | 0.63 | 0.33 | 0.57 | 44.75 |
2 | 0 | 25 | 50 | 50 | 100 | 1.22 | 0.82 | 81.97 | 0.82 | 0.67 | 0.22 | 0.46 | 38.09 |
3 | 0 | 25 | 50 | 50 | 100 | 1.32 | 0.76 | 75.76 | 0.90 | 0.56 | 0.22 | 0.47 | 35.70 |
4 | 0 | 25 | 50 | 50 | 100 | 1.14 | 0.88 | 87.72 | 0.58 | 0.75 | 0.12 | 0.35 | 30.75 |
1 | 0 | 30 | 50 | 50 | 100 | 1.04 | 0.96 | 96.15 | 0.24 | 0.92 | 0.04 | 0.20 | 19.03 |
2 | 0 | 30 | 50 | 50 | 100 | 1.06 | 0.94 | 94.34 | 0.33 | 0.88 | 0.06 | 0.24 | 22.63 |
3 | 0 | 30 | 50 | 50 | 100 | 1.00 | 1.00 | 100.00 | 0.00 | 1.00 | 0.00 | 0.00 | 0.00 |
4 | 0 | 30 | 50 | 50 | 100 | 1.02 | 0.98 | 98.04 | 0.14 | 0.96 | 0.02 | 0.14 | 13.86 |
1 | 0.5 | 25 | 50 | 50 | 100 | 1.90 | 0.53 | 52.63 | 1.08 | 0.58 | 0.38 | 0.61 | 32.34 |
2 | 0.5 | 25 | 50 | 50 | 100 | 1.70 | 0.59 | 58.82 | 1.20 | 0.48 | 0.38 | 0.61 | 36.14 |
## Germination Percentage (GRP)
# analysis of variance
<- aov(grp ~ nacl*temp + rep, data = gsm)
av
# mean comparison test
<- ger_testcomp(aov = av
mc_grp comp = c("temp", "nacl")
, type = "snk"
,
)
# data result
$table %>%
mc_grpkable(caption = "Germination percentage mean comparision")
temp | nacl | grp | std | r | ste | min | max | sig |
---|---|---|---|---|---|---|---|---|
25 | 0 | 100.0 | 0.000000 | 4 | 0.0000000 | 100 | 100 | a |
25 | 0.5 | 100.0 | 0.000000 | 4 | 0.0000000 | 100 | 100 | a |
25 | 1 | 96.0 | 1.632993 | 4 | 0.8164966 | 94 | 98 | abc |
25 | 1.5 | 96.0 | 1.632993 | 4 | 0.8164966 | 94 | 98 | abc |
25 | 2 | 94.5 | 2.516611 | 4 | 1.2583057 | 92 | 98 | bc |
30 | 0 | 100.0 | 0.000000 | 4 | 0.0000000 | 100 | 100 | a |
30 | 0.5 | 100.0 | 0.000000 | 4 | 0.0000000 | 100 | 100 | a |
30 | 1 | 98.5 | 1.914854 | 4 | 0.9574271 | 96 | 100 | a |
30 | 1.5 | 98.5 | 3.000000 | 4 | 1.5000000 | 94 | 100 | a |
30 | 2 | 94.0 | 1.632993 | 4 | 0.8164966 | 92 | 96 | c |
35 | 0 | 100.0 | 0.000000 | 4 | 0.0000000 | 100 | 100 | a |
35 | 0.5 | 98.0 | 2.309401 | 4 | 1.1547005 | 96 | 100 | ab |
35 | 1 | 96.0 | 2.828427 | 4 | 1.4142136 | 92 | 98 | abc |
35 | 1.5 | 98.5 | 1.914854 | 4 | 0.9574271 | 96 | 100 | a |
35 | 2 | 20.0 | 1.632993 | 4 | 0.8164966 | 18 | 22 | d |
40 | 0 | 100.0 | 0.000000 | 4 | 0.0000000 | 100 | 100 | a |
40 | 0.5 | 96.0 | 1.632993 | 4 | 0.8164966 | 94 | 98 | abc |
40 | 1 | 98.5 | 1.914854 | 4 | 0.9574271 | 96 | 100 | a |
40 | 1.5 | 10.5 | 1.914854 | 4 | 0.9574271 | 8 | 12 | e |
40 | 2 | 0.0 | 0.000000 | 4 | 0.0000000 | 0 | 0 | f |
# bar graphics for germination percentage
<- mc_grp$table %>%
grp fplot(data = .
type = "bar"
, x = "temp"
, y = "grp"
, group = "nacl"
, ylimits = c(0, 120, 30)
, ylab = "Germination ('%')"
, xlab = "Temperature"
, glab = "NaCl (MPa)"
, error = "ste"
, sig = "sig"
, color = F
,
)
grp
## Mean Germination Time (MGT)
# analysis of variance
<- aov(mgt ~ nacl*temp + rep, data = gsm)
av
# mean comparison test
<- ger_testcomp(aov = av
mc_mgt comp = c("temp", "nacl")
, type = "snk")
,
# data result
$table %>%
mc_mgtkable(caption = "Mean germination time comparison")
temp | nacl | mgt | std | r | ste | min | max | sig |
---|---|---|---|---|---|---|---|---|
25 | 0 | 1.240000 | 0.0783156 | 4 | 0.0391578 | 1.140000 | 1.320000 | j |
25 | 0.5 | 1.830000 | 0.0901850 | 4 | 0.0450925 | 1.700000 | 1.900000 | i |
25 | 1 | 2.701218 | 0.1512339 | 4 | 0.0756169 | 2.531915 | 2.897959 | g |
25 | 1.5 | 5.442365 | 0.0415525 | 4 | 0.0207763 | 5.382979 | 5.479167 | c |
25 | 2 | 6.523349 | 0.3068542 | 4 | 0.1534271 | 6.063830 | 6.695652 | b |
30 | 0 | 1.030000 | 0.0258199 | 4 | 0.0129099 | 1.000000 | 1.060000 | j |
30 | 0.5 | 1.100000 | 0.0432049 | 4 | 0.0216025 | 1.060000 | 1.160000 | j |
30 | 1 | 1.898129 | 0.0609184 | 4 | 0.0304592 | 1.833333 | 1.959184 | i |
30 | 1.5 | 2.994362 | 0.1138473 | 4 | 0.0569236 | 2.900000 | 3.160000 | f |
30 | 2 | 4.388259 | 0.0676715 | 4 | 0.0338357 | 4.326087 | 4.446809 | d |
35 | 0 | 1.015000 | 0.0191485 | 4 | 0.0095743 | 1.000000 | 1.040000 | j |
35 | 0.5 | 1.076250 | 0.0291905 | 4 | 0.0145952 | 1.060000 | 1.120000 | j |
35 | 1 | 1.817607 | 0.2398098 | 4 | 0.1199049 | 1.653061 | 2.173913 | i |
35 | 1.5 | 3.370480 | 0.0159689 | 4 | 0.0079844 | 3.354167 | 3.387755 | e |
35 | 2 | 6.984343 | 0.3784214 | 4 | 0.1892107 | 6.555556 | 7.400000 | a |
40 | 0 | 1.035000 | 0.0191485 | 4 | 0.0095743 | 1.020000 | 1.060000 | j |
40 | 0.5 | 2.327648 | 0.0512449 | 4 | 0.0256225 | 2.255319 | 2.375000 | h |
40 | 1 | 2.728780 | 0.1714562 | 4 | 0.0857281 | 2.520833 | 2.940000 | g |
40 | 1.5 | 3.287500 | 0.1012651 | 4 | 0.0506326 | 3.166667 | 3.400000 | e |
# bar graphics for mean germination time
<- mc_mgt$table %>%
mgt fplot(data = .
type = "bar"
, x = "temp"
, y = "mgt"
, group = "nacl"
, ylimits = c(0,10, 1)
, ylab = "Mean germination time (days)"
, xlab = "Temperature"
, glab = "NaCl (MPa)"
, sig = "sig"
, error = "ste"
, color = T
,
)
mgt
You can add at each plot different arguments as the standard error, significance of the mean test, color, labels and limits. The resulted graphics are performed for publications and allows to insert math expression in the titles.
The cumulative analysis of the germination allows to observe the evolution of the germination process, being able to be expressed as the percentage of germination or with the relative germination.
# data frame with percentage or relative germination in time by NaCl
<- ger_intime(Factor = "nacl"
git SeedN = "seeds"
, evalName = "D"
, method = "percentage"
, data = fb
,
)
# data result
%>%
git head(10) %>%
kable(caption = "Cumulative germination by nacl factor")
nacl | evaluation | mean | r | std | min | max | ste |
---|---|---|---|---|---|---|---|
0 | 0 | 0.000 | 16 | 0.0000000 | 0 | 0 | 0.0000000 |
0.5 | 0 | 0.000 | 16 | 0.0000000 | 0 | 0 | 0.0000000 |
1 | 0 | 0.000 | 16 | 0.0000000 | 0 | 0 | 0.0000000 |
1.5 | 0 | 0.000 | 16 | 0.0000000 | 0 | 0 | 0.0000000 |
2 | 0 | 0.000 | 16 | 0.0000000 | 0 | 0 | 0.0000000 |
0 | 1 | 92.500 | 16 | 9.4516313 | 68 | 100 | 2.3629078 |
0.5 | 1 | 57.250 | 16 | 35.5818306 | 12 | 96 | 8.8954576 |
1 | 1 | 14.500 | 16 | 12.9099445 | 0 | 40 | 3.2274861 |
1.5 | 1 | 0.375 | 16 | 0.8062258 | 0 | 2 | 0.2015564 |
2 | 1 | 0.000 | 16 | 0.0000000 | 0 | 0 | 0.0000000 |
# graphic germination in time by NaCl
<- git %>%
nacl fplot(data = .
type = "line"
, x = "evaluation"
, y = "mean"
, group = "nacl"
, ylimits = c(0, 110, 10)
, ylab = "Germination ('%')"
, xlab = "Day"
, glab = "NaCl (MPa)"
, color = T
, error = "ste"
,
) nacl
# data frame with percentage or relative germination in time by temperature
<- ger_intime(Factor = "temp"
git SeedN = "seeds"
, evalName = "D"
, method = "percentage"
, data = fb)
,
# data result
%>%
git head(10) %>%
kable(caption = "Cumulative germination by temperature factor")
temp | evaluation | mean | r | std | min | max | ste |
---|---|---|---|---|---|---|---|
25 | 0 | 0.0 | 20 | 0.00000 | 0 | 0 | 0.000000 |
30 | 0 | 0.0 | 20 | 0.00000 | 0 | 0 | 0.000000 |
35 | 0 | 0.0 | 20 | 0.00000 | 0 | 0 | 0.000000 |
40 | 0 | 0.0 | 20 | 0.00000 | 0 | 0 | 0.000000 |
25 | 1 | 20.1 | 20 | 31.25094 | 0 | 86 | 6.987922 |
30 | 1 | 40.1 | 20 | 45.10327 | 0 | 100 | 10.085399 |
35 | 1 | 45.2 | 20 | 44.09750 | 0 | 100 | 9.860501 |
40 | 1 | 26.3 | 20 | 37.31671 | 0 | 98 | 8.344270 |
25 | 2 | 48.6 | 20 | 45.07818 | 0 | 100 | 10.079787 |
30 | 2 | 62.4 | 20 | 45.70662 | 0 | 100 | 10.220310 |
# graphic germination in time by temperature
<- git %>%
temp fplot(data = .
type = "line"
, x = "evaluation"
, y = "mean"
, group = "temp"
, ylimits = c(0, 110, 10)
, ylab = "Germination ('%')"
, xlab = "Day"
, glab = "Temperature"
, color = F
,
) temp
As the function fplot()
is build using ggplot2 (Wickham
et al., 2020). You can add more arguments for modify the
graphics adding +
.
library(ggplot2)
<- ger_intime(Factor = "temp"
git SeedN = "seeds"
, evalName = "D"
, method = "percentage"
, data = fb
,
)
<- git %>%
ggplot fplot(data = .
type = "line"
, x = "evaluation"
, y = "mean"
, group = "temp"
, ylimits = c(0, 110, 10)
, ylab = "Germination ('%')"
, xlab = "Day"
, glab = "Temperature"
, color = T
, +
) scale_x_continuous(n.breaks = 10, limits = c(0, 11))
ggplot