Skip to contents

Defined in detail in Gaynor et al. 2023. To summarize, this function simulates a stochastic stage-structured matrix population dynamics model for diploid, triploid, and autotetraploid perennial plants with overlapping generations and two life-stages (reproductively immature and reproductively mature). Population composition at time t + 1 is defined by reproduction, survival, and maturation. This is a function that loops through a set number of generations. Note, lists of three should always have values representing c(diploids, triploid, autotetraploids).

Usage

gen.iter.f.choosy(
  generations,
  init.pop,
  env.ci,
  env.sigma,
  aii.vec,
  as.matur,
  as.msurv,
  d,
  gnum.base,
  b,
  cc,
  s,
  mc,
  gam.density.type = "all",
  is.density.type = "all",
  rho,
  mate.lazy = FALSE,
  rj = c(1, 1),
  yj = c(1, 1),
  env.immature.survival = FALSE
)

Arguments

generations

Number of generations to simulate. Must be a numeric value.

init.pop

The number of mature diploids in the initial founding population. Must be a numeric value greater than 0.

env.ci

Proportion of environmental variance used to define mature survival rate per generation. Must be an integer greater than or equal to 0 and less than 1.

env.sigma

Sigma value to define environmental variance corresponding to immature survival rate per generation.

aii.vec

The survival probability of an immature individual for each cytotype. Must be a list of three integers between 0 and 1. For example, aii.vec = c(0.0005, 0.005, 0.0005).

as.matur

The probability of maturation from an immature stage to the mature stage for each cytotype. Must be a list of three integers between 0 and 1. For example, as.matur = c(0.60, 0.06, 0.60).

as.msurv

The mean survival probability of a mature individual for each cytotype. Must be a list of three integers between 0 and 1. For example, as.msurv = c(0.5, 0.3, 0.5).

d

Strength of density dependency on gamete production for each cytotype. Must be a list of three integers between 0 and 1. For example, d = c(0.001, 0.009, 0.001).

gnum.base

Mean number of gametes per individual per cytotype. Must be a list of three numeric values. For example, gnum.base = c(100, 100, 100).

b

Proportion of unreduced gamete formed by each diploid and tetraploid individual. Must be a single integer between 0 and 1.

cc

Proportion of 3n gamete formation from each triploid individual. Must be a single integer between 0 and 1.

s

Selfing rate. Must be a single integer between 0 and 1.

mc

Strength of mating choice. Must be a single integer between 0 and 1.

gam.density.type

Default = "all", this sets the density dependence type for number of gametes produced at time t as all individuals at time t. Alternatively, "like-cytotype" sets the density at time t for each cytotype based on only the total immature and mature individuals of that cytotype at time t.

is.density.type

Default = "all", this sets the density dependence type for immature surivival at time t as all individuals at time t. Alternatively, "like-cytotype" sets the density at time t for each cytotype based on only the total immature and mature individuals of that cytotype at time t.

rho

Correlation coefficient. Must be a single integer between 0 and 1.

mate.lazy

Default = FALSE, this prevents selfing from occurring during outcrossing. However, this increases the computational time by 31x!

rj

List of two indicates the stage dependent density dependent impact of immature and mature individuals on number of gametes produced. Default is c(1,1).

yj

List of two indicates the stage dependent density dependent impact of immature and mature individuals on the probability of immature survival. Default is c(1,1).

env.immature.survival

Default = FALSE. When FALSE, the mean immature survival rate is equal to the exponential of the inverse immature survival rate (aii) times the sum of immature individuals and mature individuals of the cytotype indicated by is.density.type, which may be modified by yj. When this variable equals TRUE, the previous mean, or the immature determinate survival rate, is transformed by log(mu/(1-mu)) and the Johnson SB distribution is sampled given the env.sigma and Xi.is (defined in gen.iter.f.choosy()).

Value

A single data frame as defined by form.autopop(). Each row is a generation. The columns are as follows,

  • V1: number of immature diploids.

  • V2: number of immature triploids.

  • V3: number of immature tetraploids.

  • V4: number of mature diploids.

  • V5: number of mature triploids.

  • V6: number of mature tetraploids.

  • V7: number of diploid offspring produced during t - 1.

  • V8: number of triploid offspring produced during t - 1.

  • V9: number of tetraploid offspring produced during t - 1.

  • V10: number of gametes per diploid individual at t - 1.

  • V11: number of gametes per triploid individual at t - 1.

  • V12: number of gametes per tetraploid individual at t - 1.

  • gen: generation.

  • sum: total number of individuals.

  • sum2x: sum of immature and mature diploids.

  • sum3x: sum of immature and mature triploids.

  • sum4x: sum of immature and mature tetraploids.

  • V1a: relative abundance of immature diploids (V1).

  • V2a: relative abundance of immature triploids (V2).

  • V3a: relative abundance of immature tetraploids (V3).

  • V4a: relative abundance of mature diploids (V4).

  • V5a: relative abundance of mature triploids (V5).

  • V6a: relative abundance of mature tetraploids (V6).

  • C2: relative abundance of all diploids (sum2x/sum).

  • C3: relative abundance of all triploids (sum3x/sum).

  • C4: relative abundance of all tetraploids (sum4x/sum)

  • i1e: diploid immature survival probability during t - 1.

  • i2e: triploid immature survival probability during t - 1.

  • i3e: tetraploid immature survival probability during t - 1.

  • m1e: diploid mature survival probability during t - 1.

  • m2e: triploid mature survival probability during t - 1.

  • m3e: tetraploid mature survival probability during t - 1.