GerminaR is a platform base in open source package to calculate and graphic the germination indices in R. GerminaR include a web application called “GerminQuant for R” for non programming user.

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

1. Install and load the GerminaR package. Load the “prosopis” dataset on your session. In case of using another dataset, you can load your own data and proceed according to the following script:
# Install packages and dependencies

library(GerminaR)
library(dplyr)

fb <- prosopis %>%
mutate(across(c(nacl, temp, rep), as.factor))

# Prosopis data set

fb %>%
kable(caption = "Prosopis dataset")
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
1. Calculate the germination indices and perform the ANOVA and the mean comparison tests. The user can generate the graphs, expressing their results, which can be either of bars or lines graphics.

# germination analysis (ten variables)

gsm <- ger_summary(SeedN = "seeds"
, evalName = "D"
, data = fb
)

# Prosopis data set processed

gsm %>%
mutate(across(where(is.numeric), ~round(., 2))) %>%
kable(caption = "Function ger_summary performe ten germination indices")
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

# Punctual analysis of germination

## Germination percentage


## Germination Percentage (GRP)

# analysis of variance

av <- aov(grp ~ nacl*temp + rep, data = gsm)

# mean comparison test

mc_grp <- ger_testcomp(aov = av
, comp = c("temp", "nacl")
, type = "snk"
)

# data result

mc_grp$table %>% kable(caption = "Germination percentage mean comparision") 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 grp <- mc_grp$table %>%
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


## Mean Germination Time (MGT)

# analysis of variance

av <- aov(mgt ~ nacl*temp + rep, data = gsm)

# mean comparison test

mc_mgt <- ger_testcomp(aov = av
, comp = c("temp", "nacl")
, type = "snk")

# data result

mc_mgt$table %>% kable(caption = "Mean germination time comparison") 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 mgt <- mc_mgt$table %>%
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.

# Cumulative analysis of germination

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.

## In time analysis for NaCl


# data frame with percentage or relative germination in time by NaCl

git <- ger_intime(Factor = "nacl"
, SeedN = "seeds"
, evalName = "D"
, method = "percentage"
, data = fb
)

# data result

git %>%
kable(caption = "Cumulative germination by nacl factor")
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

nacl <- git %>%
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

## In time analysis for temperature


# data frame with percentage or relative germination in time by temperature

git <- ger_intime(Factor = "temp"
, SeedN = "seeds"
, evalName = "D"
, method = "percentage"
, data = fb)

# data result

git %>%
kable(caption = "Cumulative germination by temperature factor")
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

temp <- git %>%
fplot(data = .
, type = "line"
, x = "evaluation"
, y = "mean"
, group = "temp"
, ylimits = c(0, 110, 10)
, ylab = "Germination ('%')"
, xlab = "Day"
, glab = "Temperature"
, color = F
)
temp

# Using ggplot2

As the function fplot() is build using ggplot2 . You can add more arguments for modify the graphics adding +.


library(ggplot2)

git <- ger_intime(Factor = "temp"
, SeedN = "seeds"
, evalName = "D"
, method = "percentage"
, data = fb
)

ggplot <- git %>%
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

# References

Wickham, H., Chang, W., Henry, L., Pedersen, T. L., Takahashi, K., Wilke, C., Woo, K., Yutani, H., & Dunnington, D. (2020). ggplot2: Create elegant data visualisations using the grammar of graphics. https://CRAN.R-project.org/package=ggplot2