MyNixOS website logo
Description

Effective Population Size from Stage-Structured Populations.

Computes effective population size (Ne) and the Ne/N ratio for stage-structured populations using the matrix population model framework of Yonezawa (2000) <doi:10.1111/j.0014-3820.2000.tb01244.x>. Functions are provided for sexually reproducing, clonally reproducing, and mixed (sexual + clonal) populations. Includes sensitivity and elasticity analyses for Ne/N with respect to vital rates.

NeStage

License: MIT R package lifecycle: experimental

Overview

NeStage computes the variance effective population size (Ne) for stage-structured plant and animal populations, implementing the framework of Yonezawa et al. (2000). It is designed for conservation biologists and population geneticists who need to translate demographic transition matrices into genetic drift metrics.

In stage-structured populations, individuals move through distinct life-history stages — seedling → juvenile → reproductive adult — each with different survival and fecundity rates. Standard Ne formulas that assume simple age structure are not appropriate for these systems. NeStage derives Ne directly from the variance of allele-frequency change across stages.

Key biological insight: Ne is often only 10–30% of the census size N in stage-structured populations (Frankham 1995). A population of 40 Lepanthes orchids — already large for this endangered genus — typically achieves Ne of only 7–37, well below the short-term inbreeding threshold of Ne ≥ 50 (Franklin 1980).


The Yonezawa (2000) model

For a population with s stages, the generation-time effective size is:

$$N_e = \frac{2N}{V \cdot L}$$

where V captures the full variance structure of survival and reproduction across stages and L is the mean generation time. Three special cases are implemented:

ModelWhen to use
Ne_clonal_Y2000()All reproduction is clonal (e.g. Fritillaria)
Ne_sexual_Y2000()All reproduction is sexual (e.g. Lepanthes orchids)
Ne_mixed_Y2000()Mixed sexual + clonal reproduction; full general model (Eq. 6)

Installation

NeStage is not yet on CRAN. Install the development version from GitHub:

# install.packages("remotes")
remotes::install_github("RaymondLTremblay/NeStage")

Quick start

Sexual reproduction — Lepanthes rupestris population 1

library(NeStage)

# Survival-transition matrix (MatU) — monthly time step
T_mat <- matrix(c(
  0,     0,     0,     0,     0,     0,
  0.738, 0.738, 0,     0,     0,     0,
  0,     0,     0.515, 0,     0.076, 0.013,
  0,     0.038, 0,     0.777, 0,     0,
  0,     0.002, 0.368, 0.011, 0.730, 0.171,
  0,     0,     0.037, 0,     0.169, 0.790
), nrow = 6, byrow = TRUE)

# Fecundity vector (row 1 of MatF) — monthly newborns per individual
F_vec <- c(0, 0, 0, 0, 0.120, 0.414)

# Stage frequency vector D (from observed counts)
D <- c(22, 22, 36, 36, 48.5, 48.5)
D <- D / sum(D)

out <- Ne_sexual_Y2000(
  T_mat      = T_mat,
  F_vec      = F_vec,
  D          = D,
  Ne_target  = 50,     # Franklin (1980) short-term inbreeding threshold
  census_N   = 40,     # actual or expected census population size
  population = "L. rupestris pop 1"
)

print(out)
#>
#>  ─────────────────────────────────────────────────────
#>   Ne_sexual_Y2000 results  ·  L. rupestris pop 1
#>  ─────────────────────────────────────────────────────
#>   Stages s                           = 6
#>   Stage-weighted survival (u_bar)    = 0.741
#>   Generation time L                  = 14.6 months
#>   V (total variance)                 = 0.420
#>   Ne/N                               = 0.572
#>   --- Conservation threshold ---
#>   Ne target                          = 50
#>   Minimum census size N              = 88
#>   Ne at your census size (N = 40)    = 22.9
#>   WARNING: Ne (22.9) < Ne target (50) at N = 40
#>  ─────────────────────────────────────────────────────

Clonal reproduction — Fritillaria camtschatcensis (replicates Yonezawa 2000)

T_Miz <- matrix(c(
  0.789, 0.121, 0.054,
  0.007, 0.621, 0.335,
  0.001, 0.258, 0.611
), nrow = 3, byrow = TRUE)

out_Miz <- Ne_clonal_Y2000(
  T_mat      = T_Miz,
  F_vec      = c(0.055, 1.328, 2.398),
  D          = c(0.935, 0.038, 0.027),
  L          = 13.399,   # from Yonezawa et al. (2000) Table 4
  Ne_target  = 5000,     # Lande (1995) long-term evolutionary threshold
  census_N   = 200,
  population = "Fritillaria Miz"
)
# Ne/N = 0.219  — matches Table 4 exactly

Sensitivity analysis

Four functions sweep one parameter at a time and return a data frame, a ggplot2 figure, and elasticity statistics — telling you which parameter drives Ne/N most and where management effort has the greatest genetic return.

sens <- Ne_sensitivity_Vk(
  model_fn    = Ne_sexual_Y2000,
  T_mat       = T_mat,
  F_vec       = F_vec,
  D           = D,
  stage_index = 5,                       # reproductive adults
  Vk_range    = seq(0.5, 8, by = 0.5),
  Ne_target   = 50,
  population  = "L. rupestris pop 1"
)

print(sens)    # elasticity table
sens$plot      # ggplot2 figure
FunctionParameter sweptManagement question
Ne_sensitivity_Vk()Sexual reproductive variance Vk/k̄How unequal is seed parentage?
Ne_sensitivity_Vc()Clonal reproductive variance Vc/c̄Do dominant clonal genets reduce Ne?
Ne_sensitivity_d()Clonal fraction dDoes shifting from sexual to clonal matter?
Ne_sensitivity_L()Generation time LHow much does L uncertainty affect Ne/N?

Choosing your Ne target

The Ne_target parameter controls what minimum Ne is considered viable.

Ne targetCriterionSource
50Avoid short-term inbreeding depressionFranklin (1980)
500Maintain long-term quantitative genetic variationFranklin (1980)
5000Preserve long-term evolutionary potentialLande (1995)

For small, range-restricted species such as Lepanthes (census N typically < 100), the Ne ≥ 50 threshold is the relevant near-term goal. The Ne ≥ 5,000 criterion is more appropriate for large-population conservation planning.


Functions

FunctionModelDescription
Ne_clonal_Y2000()ClonalEqs. 10–11 of Yonezawa et al. (2000)
Ne_clonal_Y2000_both()ClonalObserved + expected D in one call
Ne_sexual_Y2000()SexualFull sexual model
Ne_mixed_Y2000()MixedGeneral model (Eq. 6); any d, Vk, Vc, a
Ne_mixed_Y2000_both()MixedObserved + expected D in one call
Ne_sensitivity_Vk()Sexual, mixedSensitivity to sexual repro variance
Ne_sensitivity_Vc()MixedSensitivity to clonal repro variance
Ne_sensitivity_d()MixedSensitivity to clonal fraction
Ne_sensitivity_L()AllSensitivity to generation time

Vignettes

VignetteDescription
Ne_Yonezawa2000Step-by-step replication of Table 4 of Yonezawa et al. (2000); formula derivations and notation reference
NeStage_functionsApplied user guide: Ne/N for 17 populations of three Puerto Rican Lepanthes orchid species (Tremblay & Ackerman 2001)
NeStage_sensitivityConservation decision-making: elasticity analysis and a management prioritisation framework
vignette("Ne_Yonezawa2000",     package = "NeStage")
vignette("NeStage_functions",   package = "NeStage")
vignette("NeStage_sensitivity", package = "NeStage")

Citation

Package:

Tremblay, R.L. (2026). NeStage: Effective population size for stage-structured populations. R package version 0.1.0. https://github.com/RaymondLTremblay/NeStage

Foundational paper:

Yonezawa, K., Kinoshita, E., Watano, Y., and Zentoh, H. (2000). Formulation and estimation of the effective size of stage-structured populations in Fritillaria camtschatcensis. Evolution54(6): 2007–2013. https://doi.org/10.1111/j.0014-3820.2000.tb01244.x

Field data:

Tremblay, R.L. and Ackerman, J.D. (2001). Gene flow and effective population size in Lepanthes (Orchidaceae): a case for genetic drift. Biological Journal of the Linnean Society72: 47–62.


References

  • Franklin I.R. (1980). Evolutionary change in small populations. In: Soulé & Wilcox, eds. Conservation Biology. Sinauer. pp. 135–149.
  • Frankham R. (1995). Effective population size/adult population size ratios in wildlife. Genetical Research66: 95–107.
  • Lande R. (1995). Mutation and conservation. Conservation Biology9: 782–791.
  • Orive M.E. (1993). Effective population size in organisms with complex life histories. Theoretical Population Biology44: 316–340.

License

MIT © Raymond L. Tremblay.

Metadata

Version

0.8.0

License

Unknown

Platforms (80)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows