System analysis: Competition and coexistence

David Kneis (firstname.lastname @ tu-dresden.de)

Intro

  • Competition is common in all kinds of (eco)systems.

  • Competition requires limited essential resources like nutrients, light, or space.

  • Species coexistence and thus biodiversity are necessarily linked to competition.

  • Models can gain insights into the nature of competition and the conditions for coexistence.

  • Compared to experiments, we can perfectly disentangle / control all involved mechanisms.

About the example

  • We consider a pair of two planktonic algae species in shallow lake (i.e. a CFSTR).

  • We account for competition for nutrients (P, N) but ignore light for now.

  • We do not model common causes of mortality but consider flushing (outflow) as the sole loss process.

Load the model

rm(list=ls())                                  # initial clean-up
library("rodeo")                               # load package

workbook <- "models/coexistence.xlsx"          # adjust path as necessary
m <- buildFromWorkbook(workbook)               # build model

State variables

name unit description default
A mg C / L Biomass of algae spec. A 1.00
B mg C / L Biomass of algae spec. B 1.00
P mg P / L Dissolved bioavailable phosphorus 0.06
N mg N / L Dissolved bioavailable nitrogen 1.20

Model equations

description rate P N A B
growth of A muA * min(P / (P+hP_A), N / (N+hN_A)) * A -1/cp -1/(cp/np) 1 0
growth of B muB * min(P / (P+hP_B), N / (N+hN_B)) * B -1/cp -1/(cp/np) 0 1
im-/export 1/tau * (Pin - P) 1 0 0 0
im-/export 1/tau * (Pin * N2Pin(time, minN2P, maxN2P, intN2P) - N) 0 1 0 0
im-/export 1/tau * (Ain - A) 0 0 1 0
im-/export 1/tau * (Bin - B) 0 0 0 1

Parameters, part 1

name unit description default
muA 1 / day Growth rate constant of spec. A 3.00
muB 1 / day Growth rate constant of spec. B 3.00
np g / g N:P mass ratio (for 16:1 mol/mol) 7.23
cp g / g C:P mass ratio (for 106:1 mol/mol) 41.00
hP_A mg / L Half. sat. constant for P, spec. A 0.01
hP_B mg / L Half. sat. constant for P, spec. B 0.01
hN_A mg / L Half. sat. constant for N, spec. A 0.10
hN_B mg / L Half. sat. constant for N, spec. B 0.10
tau days Residence time 14.00

Parameters, part 2

name unit description default
Ain mg / L Abundance of species A in inflow 0.00
Bin mg / L Abundance of species A in inflow 0.00
Pin mg / L P concentration in inflow 0.06
minN2P g / g Lowest N:P mass ratio in inflow 7.23
maxN2P g / g Highest N:P mass ratio in inflow 7.23
intN2P days Cycle duration of N:P variation 10.00

Functions

name unit description default
min - Intrinsic function NA
N2Pin g N / g P N:P in inflow; time-variable NA

Function implementation

  • N2Pin represent the N:P ratio in the reactor’s input (using mass units).

  • Implemented as a periodic function with amplitude max - min and cycle duration given by interval.

  • Choosing min == max results in a constant value.

N2Pin <- function(time, mini, maxi, interval) {
  mini + 0.5*(sin(time/interval * 2 * 3.1415) + 1) * (maxi - mini)
}

Function implementation

redf <- 16*14 / (1*31)   # Redfield ratio of 16:1 in mass units
times <- 0:96
plot(times, N2Pin(times, mini=redf/5, maxi=redf*2, interval=24),
  type="l", xlab="time", ylab="N:P mass ratio")

Case 1: Identical competitors

  • Run the model with default parameters.

  • By the defaults, species A and B are identical.

  • N:P in inflow is constant.

x <- m$scenarios(times=0:100)

Case 1: Identical competitors

Case 1: Identical competitors

  • Species A and B coexist in the reactor.

  • This is true for arbitrary non-zero initial values.

  • No surprise, because A and B are indistinguishable.

Case 2: Superiority of a player

  • We grant an advantage to species A with regard to one resource (here: Phosphorus).

  • The advantage is reflected by the lower half-saturation constant (hP_A < hP_B).

  • We let A and B compete under two scenarios: P limitation and N limitation.

common <- c(hP_A=0.005, hP_B=0.01)                # hP_A < hP_B
sc <- list(
  P.limitation=c(common, minN2P=10, maxN2P=10),   # excess of N 
  N.limitation=c(common, minN2P=3, maxN2P=3)      # excess of P
)
x <- m$scenarios(times=0:100, scenarios=sc)

Case 2: Superiority of a player

Case 2: Superiority of a player

  • If P is the limiting resource, the superior competitor (species A) dominates the system while species B goes extinct. The winner takes it all.

  • If N is the limiting resource, we still experience coexistence (because hN_A = hN_B).

  • Hence, superiority regarding the uptake of a resource only pays out if that resource is actually limiting. No advantage from unnecessary skills.

Case 3: Contrasting advantages

  • In classical theory, coexistence requires niches (i.e. each species is adapted to the specific conditions in a sub-habitat or capable of exploiting an exclusive resource).

  • But here, species A and B exploit identical resources (P, N) and in a homogeneous environment.

  • However, if suitable habitats for two distinct species do not exist in the spatial domain they can still exist in the time domain.

Case 3: Contrasting advantages

  • We equip A and B with contrasting advantages (hP_A < hP_B but hN_A > hN_B).

  • Depending on N and P supply, either A or B is the better competitor.

  • We study scenarios of nutrient supply, including a periodical switch between P and N limitation.

common <- c(tau=5, hP_A=0.01, hP_B=0.02, hN_A=0.2, hN_B=0.1)
sc <- list(
  low.N2P=  c(common, minN2P=5,   maxN2P=5),
  high.N2P= c(common, minN2P=9.5, maxN2P=9.5),
  var.N2P=  c(common, minN2P=5,   maxN2P=9.5, intN2P=20)
)
x <- m$scenarios(times=0:300, scenarios=sc)

Case 3: Contrasting advantages

Case 3: Contrasting advantages

  • In a constant environment, there is no coexistence.

  • Temporal variability can lead to coexistence.

  • Amplitude and frequency must be in a suitable range to serve both competitors with a sufficient niche.

  • The maintenance of species diversity through temporal variation has many facets.

  • You may want to read about the intermediate disturbance hypothesis (IDH). In that context “disturbance” is used in a broad sense and includes, e.g., the reset of successions.

Case 3: State-space view

Let’s draw the trajectories in state-space for the scenario with periodically varying N:P supply.

# simulate particular scenario again
x <- m$scenarios(times=0:300, scenarios=sc["var.N2P"], plot.vars=F)

# plot trajectories with color indicating time
plot(B ~ A, data=x, type="l", lty=3)
intens <- seq(1, 0, length.out=nrow(x))
points(B ~ A, data=x, pch=1, col=rgb(intens, 0, rev(intens)))
legend("top", bty="n", pch=c(1,1), col=c("red","blue"),
  legend=c("Initial state","Late states"))

Case 3: State-space view

Mechanisms behind diversity (1)

Mechanism Explanation
Diversity of resources Supports coexistence of specialists, each expoiting a unique resource.
Temporal variability Causes switches between superiority and inferiority of competitors.
Spatial structures Allow for different habitate conditions. Exchange between habitats (e.g. partial mixing) results in apparent coexistence.

Mechanisms behind diversity (2)

Mechanism Explanation
Continuous immigration Rivers get input (e.g. bacteria) from soil and groundwater, lakes and seas receive river-borne organisms. Invaders may persist for long times.
Dormant states Many organisms survive periods of unsuitable conditions in a metabolic inactive state. This avoids or delays extinction of inferior competitors. In suitable conditions, they recover.

Mechanisms behind diversity (3)

Mechanism Explanation
Mutual dependence Competitors may need each other. E.g., bacterium A mobilizes a resource co-exploited by B. At the same time, B produces an exoenzyme protecting A from toxins.

Mechanisms behind diversity (4)

  • Consider this review paper to learn more about the mechanisms of (bacterial) competition.

  • In real-word ecosystems, it is often difficult to disentangle the reasons of apparent coexistence.

  • In aquatic systems, you will often find a combination of both co-existence (niches) and mere co-presence (import from external habitats through hydrological connections).