The plant package for R is an extensible framework for modelling size- and trait-structured demography, ecology and evolution in simulated forests. At its core, plant is an individual-based model where plant physiology and demography are mediated by traits. Individual plants from multiple species can be grown in isolation, in patches of competing plants or in metapopulations under a disturbance regime. These dynamics can be integrated into metapopulation-level estimates of invasion fitness and vegetation structure. Accessed from R, the core routines in plant are written in C++. The package provides for alternative physiologies and for capturing trade-offs among parameters. A detailed test suite is provided to ensure correct behaviour of the code.
Falster DS, FitzJohn RG, Brännström Å, Dieckmann U, Westoby M (2016) plant: A package for modelling forest trait ecology & evolution. Methods in Ecology and Evolution 7: 136-146. doi: 10.1111/2041-210X.12525
An overview of the plant package is given by the above publication. Further background on the default
FF16 growth model is available in Falster et al 2011 (10.1111/j.1365-2745.2010.01735.x) and Falster et al 2017 (10.1101/083451).
plant comes with a lot of documentation, available at https://traitecoevo.github.io/plant/. Initial versions for some of the material there was also included as supplementary material with the publication about plant, which can be accessed here.
Plant is a complex package, using C++11 behind the scenes for speed with R6 classes (via the Rcpp and RcppR6 packages). In this blog post, Rich FitzJohn and I describe the key technologies used to build the plant package.
If you are interested in developing plant you should read the Developer Notes.
You must be using R 3.3.0 or newer. At this stage the package is not on CRAN. You’re options for installing are described below.
Installation requires a C++11 compatible C compiler (OSX >= 10.10/Yosemite satisfies this, as do standard linux Ubuntu 12.04 and 14.04). On Windows machines you will need to install Rtools. When I tried this in Rstudio, the program automagically sensed the absence of a compiler and asked if I wanted to install Rtools. Click
Option 1, using
plant package can be installed direct from github using the
plant also requires the packages
RcppR6 packages. Install those with
devtools::install_github("smbache/loggr", dependencies=TRUE) devtools::install_github("richfitz/RcppR6", dependencies=TRUE)
Then install plant:
Option 2, download and install locally
If installing locally you will still need to install the
RcppR6 packages. Install using
devtools::install_github as above, or alternatively do as follows.
Additionally install other dependencies from CRAN:
install.packages(c("Rcpp", "R6", "crayon", "nleqslv", "BB" ,"BH"))
Unzip these archives and then for each package run the command
install.packages("path_to_package", repos = NULL, type="source")
path_to_package is the folder for each package, e.g.
Installing different versions
To install a specific (older) release, decide for the version number that you want to install in https://github.com/traitecoevo/plant/releases e.g.
devtools::install_github("traitecoevo/plant", ref = "v1.0.0", dependencies=TRUE)
"v1.0.0" replaced by the appropriate version number.
Plant has been used in the following publications: