Analysing seed germination and emergence data with R (a tutorial)

[This article was first published on Statforbiology, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Germination and emergence assays are pretty straightforward to set up: you grab a sample of seeds, put them in a container under controlled environmental conditions (temperature, humidity, light), and check on them regularly. At each inspection, you count the germinated seeds, remove them, and keep going until the process stops.

Simple, right? Well, the lab phase might be, but the data analysis is where things often get messy.

How should we actually quantify germination dynamics? And what is the best way to compare different seed lots?

A quick look at the literature reveals a wide range of analytical approaches. Some researchers use classic germination indices or non-linear regression, while others lean toward survival analysis. Having options is great for creativity, but not all methods are created equal—especially when basic statistical assumptions are ignored.

More importantly: does using dozens of different statistical approaches really help science move forward? Or does it just make it harder to compare results, replicate studies, and speak the same language across research groups?

A Unified Framework for Seed Germination Analysis

To tackle this, my colleagues and I put together a standardized framework for analyzing germination and emergence data. Based on time-to-event methods, this framework gives you a reliable, step-by-step workflow paired with user-friendly tools designed specifically for agricultural research.

We implemented this workflow into two dedicated R packages:

  1. drcte: Built as an extension of the popular drc package (Ritz et al., 2015), customized to handle time-to-event data with the specific flexibility needed for seed research.
  2. drcSeedGerm: Packed with specialized functions tailored directly to germination and emergence assays.

Both packages are hosted on CRAN and you can easily install them with the following commands:

install.packages("drcte")
install.packages("drcSeedGerm")

The Full Tutorial & Paper

We originally published this methodology in Weed Science (read the paper here).

Since a journal article doesn’t always leave room for all the practical details, I turned the entire framework into a comprehensive, hands-on tutorial. It includes full methodology explanations, example datasets, and commented R code to get you running your own analyses right away. Check out the full tutorial here.

I hope you find the packages and tutorial helpful for your research. Give them a spin, and happy coding!

(P.S. If you’re looking for a broader, step-by-step guide on designing agricultural experiments and analyzing field data with R, don’t forget to check out my new book, Field Research Methods in Agriculture: An Introduction with R! Follow the link below)

Prof. Andrea Onofri
Department of Agricultural, Food and Environmental Sciences
University of Perugia (Italy)
Send comments to: [email protected]

Book cover


References

  1. Onofri, A., Mesgaran, M.B., Ritz, C., 2022. A unified framework for the analysis of germination, emergence, and other time-to-event data in weed science. Weed Science 1–13. https://doi.org/10.1017/wsc.2022.8
  2. Ritz, C., Baty, F., Streibig, J. C., Gerhard, D. (2015) Dose-Response Analysis Using R. PLOS ONE, 10(12), e0146021
To leave a comment for the author, please follow the link and comment on their blog: Statforbiology.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)