Upload
pineda-krch
View
195
Download
3
Tags:
Embed Size (px)
Citation preview
Cycles in finite populations—
A reproducible seminar in three acts
Mario Pineda-Krch
October 31, 2011
1
Act 1: The ghost of Fermat(The what, why and how of reproducible research)
Act 2: A tale of two cycles(Demonstrating the existence of quasi-cycles using reproducibleresearch)
Act 3: Cycles at the edge of existence(Emergence of quasi-cycles in strongly destabilized ecosystems)
2
Act 1: The ghost of Fermat
3
Irreproducible research
Randall J. LeVeque (2006)
“Scientific and mathematical journals are filled with pretty picturesthese days of computational experiments that the reader has nohope of repeating. Even brilliant and well intentionedcomputational scientists often do a poor job of presenting theirwork in a reproducible manner. The methods are often veryvaguely defined, and even if they are carefully defined they wouldnormally have to be implemented from scratch by the reader inorder to test them. Most modern algorithms are so complicatedthat there is little hope of doing this properly.”
Pierre de Fermat (1637)
“It is impossible to separate a cube into two cubes, or a fourthpower into two fourth powers, or in general, any power higher thanthe second, into two like powers. I have discovered a trulymarvellous proof of this, which this margin is too narrow tocontain.”
4
What really happened?
Reproducible results 6= Reproducible research
5
Reproducible research: It’s not the destination. It’s thejourney.
6
Reproducible research: The What
LeVeque (2006):
“The idea of reproducible research in scientific computing is toarchive and make publicly available all of the codes used to createthe figures or tables in a paper in such a way that the reader candownload the codes and run them to reproduce the results.”
Wikipedia:
“Reproducibility is one of the main principles of the scientificmethod, and refers to the ability of a test or experiment to beaccurately reproduced, or replicated, by someone else workingindependently.”
7
Reproducible research: The Why
American Physical Society
“Science is the systematic enterprise of gathering knowledge aboutthe universe and organizing and condensing that knowledge intotestable laws and theories. The success and credibility of scienceare anchored in the willingness of scientists to: Expose their ideasand results to the independent testing and replication by others.This requires the open exchange of data, procedure and materials.”
Reproducability = Transparency + Executability
8
Journal article
Processed data
Raw data
Computer simulations
Computer code
Algorithms
6
?
Au
thor
Read
er
9
Literate programmingA paradigm for reproducible research in computational sciences
“The idea is that you do notdocument programs (after thefact), but write documentsthat contain the programs.”— John Max Skaller
10
Literate programming according to Donald Knuth
Prose
ProgramDocumentation
TangleWeave
11
Literate programming systems
LP system Document formatting language Programming language Inventor(s) YearWEB TEX Pascal Knuth 1992CWEB TEX C/C++/Java Knuth & Levy 1993FWEB LATEX C/C++/FORTRAN Krommes 1993noweb TEX/LATEX/HTML/troff agnostic Ramsey 1999Sweave LATEX R Leisch 2002PyLit reStructuredText Python Milde 2005Pweave LATEX/reST/Sphinx/Pandoc Python Pastell 2010
12
Literate programming according to RThe evolution of the literate programming paradigm
Prose
CodeDocumentation
StangleSweave
13
What really happens
Prose
CodeDocumentation
Results
StangleSweave
Sweave
Execute
Integrate
14
This research is reproducible!
I These slides are prepared using Sweave.
I These slides are executable (look for ).
I The full project (source, code, results, etc.) will be availableat http://pineda-krch.com.
15
Implementing reproducible research
I Attach code to publish results is good...,
I executable manuscripts are better.
I Adopt a habit of reproducibility, i.e. make it routine andrequire it from others (students, postdocs, colleagues).
I Keep reproducibility in computational research to the samerigorous standard as reproducibility in mathematical proofs.
I Demand reproducibility in your role as journal editor andreviewer of manuscripts and grants applications.
16
Act 2: A tale of two cycles
17
Olaus Magnus (1555) Historia de Gentibus
First known depiction of of population cycles in Olaus Magnus’Historia de Gentibus Septentrionalibus (History of the NorthernPeoples) (1555) shows lemmings falling from the sky with two
weasels with lemmings in their mouths.
18
Elton (1924) British Journal of Experimental Biology
19
Kendall et al. (1998) Ecology Letters
20
Fluctuating populations
1750 1800 1850 1900
020
000
6000
0
Years
Lynx
1850 1860 1870 1880 1890 1900 1910
6000
1000
014
000
1800
0
Years
Pop
ulat
ion
size
Otter
1750 1800 1850 1900
050
015
0025
00 Wolverine
21
Explaining complex population dynamics using simplemodels
I Classical Lotka-VolterraI Exponential growth in prey, linear (Type 1) functional response
in predatorI Structurally unstable, mainly of historical interest
I Lotka-VolterraI Logistic growth in prey, linear (Type 1) functional response in
predatorI Does not cycle
I Rosenzweig-MacArthurI Logistic growth in prey, non-linear (Type 2) functional
response in predator (i.e. satiation)I Cycles
22
Rosenzweig-MacArthur predator-prey model (RMPP)
dNdt = rN
(1 − N
K
)− a
1 + wN NP
dPdt = c a
1 + wN NP − gP
23
The deterministic RMPP in R
> ode.rmpp <- function(parms = stop('Missing parms!'),x0 = stop('Missing x0!'),
tmax = stop('Missing tmax')){det.rmpp=function(t, y, parms){
N=y[1] ; P=y[2]
with(as.list(parms),{
dN = (b-d)*N*(1-N/K)-a/(1+w*N)*N*P
dP = c*a/(1+w*N)*N*P-g*P
out=c(dN, dP)
list(out)
})
}
require(odesolve)
time <- seq(0, tmax, by=1)
pop <- c(N=x0[['N']]*0.75, P=x0[['P']]*1.25)res = as.data.frame(lsoda(pop, time, det.rmpp, parms))
return(ode.res = res)
}
24
The stochastic RMPP in R
> ssa.rmpp <- function(parms = stop('Missing parms!'),x0 = stop('Missing x0!'),
tmax = stop('Missing tmax')){command <- paste('../src/ssa_rmpp ',
parms[['b']], parms[['d']],parms[['K']], parms[['a']],parms[['w']], parms[['c']],parms[['g']], x0[['N']], x0[['P']],tmax, '>../results/out.txt')
system(command)
res <- as.data.frame(read.csv('../results/out.txt',skip=1, header=TRUE))
return(ssa.res = res)
}
25
Structure of simulation model
rmpp.R
ssa.rmpp.Rode.rmpp.R
ssa_rmpp.c
26
Run a simulation in the stable node region
Set the parameters
> alpha <- 0.5
> beta <- 1
> gamma <- 1.2
> alpha; beta; gamma
[1] 0.5
[1] 1
[1] 1.2
Set equilibrium population size
> eq <- 1000
Set the length and the number of simulations
> tmax <- 10000
> n <- 1
27
Run a simulation in the stable node region
Run the simulation
> fn.node <- rmpp(alpha, beta, gamma, tmax, eq, n)
Data was saved in
> fn.node
[1] "../results/rmpp-alpha0.5-beta1-gamma1.2-eq1000-1.RData"
Loading the data
> load(fn.node)
Looking at the contents of the data file
> ls()
[1] "alpha" "beta" "d.lynx" "d.otter" "d.wolverine"
[6] "eq" "fn" "fn.node" "gamma" "i"
[11] "n" "ode.res" "ode.rmpp" "parms" "rmpp"
[16] "ssa.res" "ssa.rmpp" "start.time" "tmax" "x0"
28
Plot results> layout(matrix(c(1,2), ncol=2))
> ymax <- max(c(ode.res$N, ode.res$P, ssa.res$N, ssa.res$P))
> ymin <- min(c(ode.res$N, ode.res$P, ssa.res$N, ssa.res$P))
> plot(N~time, ode.res, type='l', lwd=3, col=rgb(0,1,0,.75),
xlab="Time", ylab="Population size", xlim=c(0, 250), ylim=c(ymin, ymax), bty='n')> points(P~time, ode.res, type='l', lwd=3, col=rgb(1,0,0,.75))
> title('Deterministic')> plot(N~time, ssa.res, type='l', lwd=3, col=rgb(0,1,0,.75),
xlab="Time", ylab="", xlim=c(0, 250), ylim=c(ymin, ymax), bty='n')> points(P~time, ssa.res, type='l', lwd=3, col=rgb(1,0,0,.75))
> title('Stochastic')
0 50 100 150 200 250
400
600
800
1000
1200
1400
Time
Pop
ulat
ion
size
Deterministic
0 50 100 150 200 250
400
600
800
1000
1200
1400
Time
Stochastic
Figure: Time series for RMPP model in stable node region (α = 0.5,β = 1, γ = 1.2).
29
Run a simulation in the limit cycle region
0 50 100 150 200 250
050
010
0020
0030
00
Time
Pop
ulat
ion
size
Deterministic
0 50 100 150 200 250
050
010
0020
0030
00
Time
Stochastic
Figure: Time series for RMPP model in limit cycle region (α = 0.5,β = 1, γ = 3.5).
30
Run a simulation in the stable focus region
0 50 100 150 200 250
500
1000
1500
Time
Pop
ulat
ion
size
Deterministic
0 50 100 150 200 250
500
1000
1500
Time
Stochastic
Figure: Time series for RMPP model in stable focus region α = 0.5,β = 1, γ = 2.5).
31
Detecting periodic fluctuations in simulated time
series
100 150 200 250 300 350
600
800
1000
1200
Years
Node
100 150 200 250 300 350
600
1000
1400
1800
Years
Pop
ulat
ion
size
Focus
100 150 200 250 300 350
050
015
0025
00
Limit cycle
32
Autocorrelation Function (ACF)Detecting periodic fluctuations
0 10 20 30 40
0.0
0.2
0.4
0.6
0.8
1.0
AC
FNode
0 5 10 15 20 25 30
−0.
50.
00.
51.
0
Lag
Focus
0 5 10 15 20 25 30
−0.
50.
00.
51.
0
Limit cycle
Evidence of periodicity if ACF(T) > 2/√
tm where T is the lag ofthe dominant frequency (first maximum), tm is the number of datapoints in the time series.
33
Power spectraDetecting periodic fluctuations
●
●●
●
●●●●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●●
●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●
●
●●●●●
●●●●
●
●●
●
●●●●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●●●●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●
●
●●
●●
●
●●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●●●●
●
●●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●●●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●
●
●
●●●●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●●●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●●●
●
●
●
●
●
●
●●
●●
●
●●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●●
●
●●
●
●
●
●●●●●●
●
●
●●
●
●
●
●
●●●●
●●
●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●●●
●●
●
●
●
●
●●●
●●●●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●●
●●
●
●●●●
●●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●●
●●●●●●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●●
●
●
●●
●
●
●●
●
●●
●●
●
●
●●
●●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●
●
●●●●
●
●●●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●●
●
●●●
●
●
●●●●●●
●
●●
●●
●
●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●●●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●●
●
●
●●●●●
●●●
●
●
●
●●
●●
●●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●●
●●
●●●●●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●
●
●●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●●
●●●
●
●●●
●●●●
●
●
●
●●
●●
●
●
●
●●●
●
●●
●●●
●
●●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●●●
●●●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●
●
●
●
●●
●●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●●●●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●
●
●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●●
●●
●
●●
●●
●
●
●●
●
●
●●
●
●
●
●●
●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●●
●●●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●●
●
●●
●●
●●●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●●
●
●●●●●
●
●●
●
●
●●
●●●
●
●
●●
●
●
●●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●●●
●●
●●
●●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●●●●
●
●●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●
●
●
●●
●●
●
●●●
●●
●
●
●●
●
●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●●
●●
●
●●
●
●
●
●●●
●●●
●
●
●●●●●
●
●●
●
●●●
●
●●●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●●
●●
●●●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●●●●●
●●●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●●●
●
●●●
●●
●●
●
●●●●●
●
●
●
●●●
●●
●
●
●●
●●
●●●
●●●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●●
●
●●
●●
●
●
●
●
●●
●●
●
●●●
●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●●
●●
●
●●
●●
●●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●●●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●●●
●
●●●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●●●
●●
●●
●
●
●
●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●
●●
●
●●
●
●
●
●
●
●
●●●
●●●
●
●●●
●
●
●
●
●
●●
●
●
●●●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●●
●
●
●
●
●●●●
●
●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●●
●●●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●●●●
●●●
●
●●●
●
●●●
●●
●●
●
●
●
●
●●
●
●
●●●●
●
●●
●●
●
●
●
●
●
●
●●
●●
●●
●●●
●
●
●●
●
●
●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●●
●●
●
●
●●●●
●
●
●●
●●
●
●
●●●
●
●
●●●
●●●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●
●
●
●
●●
●●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●●●
●
●●
●
●●
●●
●
●
●
●●
●
●
●●●
●●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●●
●
●●
●●●●●●
●
●●
●
●●
●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●●
●●●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●●
●
●●
●●
●
●●
●
●●
●
●
●
●●●
●
●
●
●●
●
●●●
●●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●●●●
●●
●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●●
●●●●●
●
●
●
●●
●
●●●
●●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●●●
●●●
●
●
●●●
●
●●●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●●●
●●
●
●
●
●
●
●●●●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●
●
●●
●
●●●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●
●●
●
●●●
●●
●
●
●
●
●●●
●●●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●●
●●
●
●●
●
●
●●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●●
●●
●●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●●●●
●●
●
●●
●
●●
●●
●●●●
●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●●●
●
●●●
●
●
●
●●
●
●
●●●
●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●
●●
●●●
●
●
●
●●
●
●●
●●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●●●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●●
●
●
●●
●
●●●●●
●●
●
●●●
●
●
●
●
●●
●
●●
●
●●
●
●●
●
●
●
●
●●●●
●●
●
●
●
●●
●●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
●●●●●
●
●
●●●
●
●●
●●●
●●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●
●
●●●
●
●
●●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●●●●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●●
●●●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●●●
●●●
●
●
●●
●
●
●●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●●
●
●
●
●
●●●●●
●●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●●
●
●●●
●
●●
●●
●
●●●
●●
●
●●●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●●
●
●●●
●
●
●
●●●
●●
●
●●●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●●●●●
●●
●
●●
●
●
●
●
●
●●●●●
●●
●
●●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●●●●
●●
●
●●
●
●●
●
●
●●●
●
●
●
●●●
●
●●
●●●●
●
●●●●
●
●
●
●●●●
●●
●●
●●
●
●●
●●
●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●●●●●
●●●
●●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●●
●●●
●
●
●
●●●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●●
●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●
●●●
●
●●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
●
●●
●
●●
●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
−4 −3 −2 −1
02
46
8
log1
0(P
ower
)
Node
●
●●
●
●
●●●
●●
●
●
●●●●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●●●
●●
●
●
●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●●●●
●●
●●
●●
●
●
●●●●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●
●
●●
●
●
●
●●●
●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●●
●●●●
●
●
●●●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●
●●●●●
●
●●
●
●
●
●
●
●●
●●●
●●●
●
●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●●
●
●
●●
●
−3.0 −2.5 −2.0 −1.5 −1.0 −0.5
02
46
8
log10(Cycle frequency)
Focus
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●●●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●●●
●
●●●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●●
●
●●
●
●
●●●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●●
●
●
●●
●●
●
●
●●●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●●●●●●●
●
●
●●●●
●
●
●●●●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●●●●●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●●●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●●●
●
●●●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●●●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
−3.0 −2.5 −2.0 −1.5 −1.0 −0.5
02
46
8
Limit cycle
Evidence of periodicity: presence of dominant frequency peak
34
Marginal distributionDistinguishing between quasi-cycles and noisy limit cycles
Node
Fre
quen
cy
600 800 1000 1200
050
010
0015
0020
0025
0030
00Focus
Prey population size
600 1000 1400 1800
050
100
150
200
Limit cycle
0 500 1500 2500
050
100
150
Evidence of limit cycle: bimodal distribution
35
Marginal distributionsDistinguishing between quasi-cycles and noisy limit cycles
●●
●● ●●
●
●
●
●
●
●●
● ●
●
●
●
●●●●
●●●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●●●●
●
●
●●
●
● ●●
●● ●
●
●
● ●
●
●
●
● ●
●
●●
●
● ●
●
●
●●
● ●
●●
●● ●
●●
●
●
●
●
●●
●
●●
● ●
●
● ●
●●
●●●
●●
●●
●
●
●● ●
●●
●●
●●
●
●
● ●●●
●
●●
●
●
●●●●●
●●
●
●●
●
●
●●
●● ●
●
●
●
●
●● ●
● ●●
●●
●
●●
●
●●
●
●●
●
●●●
●
●
●
●
● ●
●
●●
●●●
●●
●●●
●●
● ●
●●
●
●●
●
●
●
●
● ●●
●
●
●
●●
●●
●●
●
●
●●
●●
●
●
●
● ●
● ●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
● ●
●
●●
●
●
●● ●●
●
●
●●
●
●●
●
●
●●● ●●
●
●●
●
●●
●●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●●●
●●
●
●
●
●●
●●
● ●
●●●
●
●●●
●
●
●
●
●●
● ●
●
●
●
●
●
●
● ●●
●
●
● ●
●
●
●
●●
● ●●
●
●●
●●
● ●●
●
●●●
● ●●● ●
● ●
●
●
●●●●
●
● ●
●●
●
●●
●
●
●●
●
●●●
●
●●
●
●●
●
●●
●●
●●
●
●
●●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●
●
●●●●
●
●
●●
●●
●●
●
●
●●
●
●
●
●●
● ●
●●
●●
●
●●●
●●●●
●
●● ●●
●
●●
●●
●●●
●●
●
●
● ●●
●
●
● ●● ●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●●
● ●●
●●
●●●
●●
●
●●●
●
● ●●
●
●
●
●
●
●
●●●
●
●
●●
●
●●
● ●
●
●
● ●
●●
●
●●
●
●●
●
● ●
●●
●●
●●●●●
●●●
●● ●
●
●●
●●
●●●
●●●
●
●
●●
●
●●
●●●
● ●● ●
●●
●●
●
●●●
●●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●●
●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●●●●●
●
●●●●
●
●
●●
●● ●
●
●●●● ●
●
●
●
● ●●
●●
●
●
●
●
●●●
●
●
●●
●●
●
●●
● ●● ●●●
●
● ●
●
●
●●
●
●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
● ●
●
●●
●
●
●
●
●●
●
●●
●
● ●
●●
●●
●●
●
●
●●
●
● ●
●
●●
●
●
●●
●●●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●●
●
●
●●
●●
● ●●
●
●●
●
●●
●
●
●
●●●
●
● ●●●
● ●●●
●●
●●
●●
●●●
●
●●
●●
●●
● ●●●●
●●
●●
●
●● ●●
●●
●● ●●
●●
●
●●
●
●
●
●
● ●
●
●
●
●●
● ● ●
●●
●
●●
●
●
●●
●●
●
● ●
●●
●
●●●
●
●●
●●●
●
●
● ●
●●●
●
●
●
●
●
●
●
●●●●
●
●
●
● ●●
●●●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
● ●
●●●●●
●●●
●
●
●
●●
●
●
● ●
●●
●●●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●●●
●●
●●●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●●●
●
●●
●●
●
●●●●●
●●
●●●
●
●●
●
●
●● ●
●●●
●
●●
●
● ●●●
●
●●
●●
● ●
●
●
●●
●●
●
●●
●
●
●
●●
●●
●●
●●●
●●●
●
●●●
●
●●●●
●●● ●●
●
●●
●●●●
●
● ●●
●
●
●●●●
●●
●●●●
● ●●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●●
●●
●●
●
●●
●●
●
● ●
●●●●
●
●
●●
●●
●●●●
●
●●●
●
●●
●
●
●
●
●●●
●●
●
●●
●
●●
●
●●
●●
●● ●
●
●
●
●●
●
●
●
●●●
●
●●
●
●●●
●●●
●
● ●
●
●
●
●
●● ●
●
●●
●●
●
●●
●
●●
●● ●
●
●● ●
●●
●●
●●
●
● ●●●
●
● ●
●
●
●
●●
●
●
● ●●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●●
●●
●●
●
● ●
●●
●●
●
●
●
●●
●●
●
●
●
● ●
●
●●
●
●●
●●
●●
● ● ●●
●●
●●●
●● ●
●
●●
●
●
●●
●●
●
●●
●
●
●
●
●●
● ●●
●
●●
●
●●
●●
● ●●
●●
●
●●
●●
●
●●
●●
●
●
●●
●
●●
●
●●
●● ●●
●●
●
●●
●
●
●●
● ●
●
●●
●
●●
●
●●●
●●
● ●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●●
●●
●
●
●●
●●
●●
● ●
●
●●
●●●
●
●●
●●
●
●●
●●
●
●
●
●
●
●
●
●● ●
●
●
●
●●
●
● ●
●
●
●● ●●
●●
●●
●
●●●
● ●
●
●
●
●●
●
●●
●●
●
● ●
●
●●●
●
●
●●
●
●
●
●
●
●
● ●
●●
●● ●
●●●
●
●●
●●
●
●● ●●
●
●
● ●
●●
●
● ●
●
●
●
●●
●
●● ●
●
●●
●●
●●
●
●●
●
● ●●
●●●
●●
● ●
●
●●
● ●●
●
●●
●●
●●
●● ●●
●●
●
● ●
●
●●
●
●●
●
●
●
●
●●
●●●
●
●●
●
●
●●
●
●●● ●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●●
●
● ●●
●●●
●
●
●
●●
●
●
●●
●
●
●●
●● ●
● ●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●●
●
●●
●
●● ●
●●●
●
●
●
●
●●
●
●●● ●
●
●
●
●
●
●
● ●●
●●
●
●
● ●
●
●
●
●●●
●●
● ●
●
●
●
●
●●
●● ●
●●
●
●● ●●
●●
●●● ●
●●●
●
●●
●
●
●● ●
●
●● ●
●
●
●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●● ●
●● ●●● ●
●
●
●
●●
●
●
●
●●
●●●
● ●
●●
●●
●●●
●●
●
●●●
●
●
●
●
●
●●
●●
●●●● ●
●●● ●
●●
● ●●
●●
●●
●●
●●
●●
●
●●
●
●
● ●
●●
●
●●
●●●●
●●●●
●●
●
●
●
●●●
●
●●
●
●
●
●●●
●●
●
●●●
●
●●
●●
●
●
●
●●
●
●
●●●●
●
●
●●●
●●
●●●
● ●
●●
●●
●
●
●
●●
●● ●●
●
● ●●
●
●
●●●
●
●
●●
●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●
●
●●
●●
●●
●
●● ●
●
●
●
●
●●
●● ●
●●●
● ● ●
●●
●
●
●●●
●●
●
●
●●
●●●
●●
●
●●
●
●
●●
●
●
●
●
● ●●
●●
●●
● ●
●
● ●●●
●●●
●●
● ●●●
●●●
●
●
●
●
●●
●
● ●●
●● ●
●
●
● ●
● ●●
●
●
●●
● ●●
●●
●
●●
● ●●
●
●●●
●●
●●
●●
●
●
●
●
●
●●●
●●
●●●●
●●●●●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●
●●
●● ●●
● ●●
●●●
● ●●●
● ●●●
● ●
●
●
●
●●
●● ●
●●
●
●
●
●●●
●●
●●
● ●
●●
●●
●●●
●
●
● ●
●●
●●
●●
●●●
●
●
●
●
●
●
●
●●●●
●●
●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●● ●
●
●
●
●●
● ●●
●
●
●●●
●●
●●
● ●
●
●●
●●●
●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●●
●
● ●●●
●
●
●●
●●●●
●
●●●
●
●
● ●● ●
●●
●
●●●
●
●●
●●
●●●●
●●●●
●
●●
●●
●
●
● ●
●
●
●
● ●●●
●●
●●●
●
●●
●
●
●
●
●
●●
●●●
●●●
●
●●●●
●
●
●
●
●
●
●●
●
●●
●
●●
●●
●
●
●
● ●
●●
●
●●
●
●
●
●●●
●●
●●
●● ●
●
●
●●●
●●
●
●● ●
●
●●
●
●
●●
● ●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●●
●●
●●
●●
●
●
●
●●●
●●
●●
●●
●● ●
● ●
●
●●
● ●
●
●
●
●
●
●●
●●
●●
●
●● ●
●●
●
●●●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
● ●●
●
●●
●
●●
●
●
●●
●
● ●●
●●
●
●●
●●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
● ●
●●
●
●●●
●●●
●
●
●●
●
●●●●
●
●
●●
●
●● ●
●
●
● ●
●
● ●
●●
●●
●●●
●
●●
●●
● ●●
●
●
●
●
●● ●
●
●●●●
●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●●●●
●
●
●●●
●●
●
●
●
●
●●
●
●●
●●
● ●
●●
●
●
●●
●
●
●●
●●
●●
●●
● ●
●
●
●●● ●●
●●
●
●
●●
●
● ●●
●●
●
●
●●
●
●●●
●
●
●●
●
●●
●● ●
●
●
●●
● ●
● ●●
●●●
●
●●
●●●
●
●
●
●
●●
●●
●●
●
●
●
●
●●
●●
●●
●●
●
●
●●
●●
●●●
●
●
●
●●
●
●●
●
●
●● ●
●
●
●● ●●●
● ●●
●
●
●●
●
●
●
●
●●●
●
●●
●●
●
●
●●
●●
●
●
● ●
●
●
●
●●
●
● ●
●●●
●
●●●●
●
● ●
● ●●●
●
●
●
● ● ●●●●
●
● ●
●●
●●
●
●●
●
●
●●
●
●●●
●●
●
●●
●
●●●●
●● ●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
● ●●
●●
●●
●●●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●●●
●
●
●●●
●●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●
●
●●
●
●●
●
●●● ●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
● ●●●
● ●
●●
●
●
●●
●
●●●●
●●
●●●
●●
●
●
●
●● ●
●●
●●
●
●●●
●
●
● ●
●●
●
● ●
●●
●
●
●●
●
●
● ●●●
●●
●
● ●●● ●
●
●
●
●●
●●
●
●●
●●●●
●●
●
●●●
●●
●
●
●●
●
●
●
●●
●●
●●●
●
●
●
●●
●
●●
●●●
●
●●
●
●●
●
●●
●
●●●
●
● ●
●● ●●
●
●●
●● ●
●● ●
●●
●●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●●●
●●
● ●
●
●●
●● ●●
●●●
●
●
●
●●
●●
●●
●●
●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●●●
●
●●●●
●●
●●
●
●●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●●
●●
●●●
●● ●
●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
● ●
●●●
●
●●
●●
●
●
●
●● ●
●●
●
●
●
●●●
●●
●
●●
●
●
●
●
●●
●
●
●
● ●●
●
●●
●
●●
●● ●
●●●●●
●
●●●●
● ●
●●●
●●
●●
●● ●●●
●● ●● ●●
●
●●
●
●● ●●
●●●● ●●
●●
●● ●●
●●●●
●●
●
●
●
●●
●
●
●●
●●
●
●●
●●
●●
● ● ●
●
●
●●
●
●
●●●
●●
●
●
●
●●●
●
●●
●
●
●
●●
●●
●●●
●●
●●
●
●
●●●
●●
●
●
●
●●●
●
●●●
● ●●
●●
●●● ●●
●
●
●●
●●
●●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●●●
●●
●●●
●
● ●●●
●●●●
●
●
●
●
●
●
●●●
●
●●
●
●●
●●
●
●
●
●●
● ●
●●●●
●
●
●●
●
●●
●●●
●●
●●
●
●
●
●
●●●
●● ●
●
●●
●●●
●
●
●●● ●
●●
●
●●
●
●●●
●
●●
●
●●●● ●
●
●
●
●●
●● ●●
● ●
●
●
●●
●●●
●● ●● ●
●
●●●
●
●
●
●●●
●
●
●●
●●● ●
●●
●
●
●● ●●
● ●●
●●●
●●
●●
●
●●
●
●
●●
●
●
●
●● ●
●●
●●
●●●
●●
●● ●●
●●●● ●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●●
●●
● ●●●
●
●●●
●
● ●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●
● ●
●●●
●
●● ●
●●
●
●●●
●
●●
● ●● ● ●
●●
●
●
●●●●
●
●●●
●●
●
●●●●●
●● ●
●
●
● ●
●●
●●
●
● ●●
●
●
●
●
●● ●
●●
●
●
●
●
●●
●
●
●●
●●●
●●
●
●
●
●
●●
●
●
● ●
●
●●
●
● ●●●
●
●
●●
●
●
●●●
●
●●
●
●●●
●●
●●
●●
●●
●
●
●
● ●●●
●
●●
●
●●●
●●
●●●
●●●
●
●
●●●
●●
●
●
●
●● ●
●●
●
● ●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●●
●
●●
●●
●
●●
●●●
● ●
●●●
●
●●
● ●●
●
●
●●●
● ●●●
●
●
●●●
●
●●●
●●
●●
●
●●
●
●●●●
●
●
●●
●
●●
● ●
●
●
●
●
●●
●●
●●
●●
● ●●
●
●
●●
●●●
●
●
●●
●●
●
●
●
●
●
●
●●●
●
●
●
●●
●● ●
●
●●
●●●
●
●
●●●
●●
●●●
●●
●●
● ● ●● ●●●
●●
●
●●
●●
●
●
●
●
●
●●
● ●
●
●●● ●
●
●
●
● ●
●
●
●●
●●●
●●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●●
●●
●
● ●●●
●
●
●
●
●
●●
●
●● ● ●●
●
●●
●
●
● ●
● ●●
●●
●●●
●
●
●
● ●
●●
● ●
●●
● ●●
●
●
●
●●
● ●●●● ●
●
●●
●
● ●●
●●
●
●
●
●
●
●
●
●
●
●●
● ●●
●
●
● ●
●●●
●●
●
●
●● ●
● ●●
●
● ●●
●● ●
●●●
●●●
●
●●
●
●
●
●●
●
●
●●●●●
●●
●
●●
●
●
●●
●
●
●●
●
●
●●
● ●● ●
●
●
●●
●●●
●
● ●
●
●
●●●
●
●●
●
●
●
●● ●●
●
●
●
●●● ●●
●●●
●● ●
●
●●
● ●●
●
●
●●
●●
●●
●●
●
●
●
●
● ●
●●
●
●●
●
●●●
●
●●
●●
●
●
●
●
●●●
●●
●
●
● ●
●● ●
●●
●
●●●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●●●
●● ●
●
●
●
●●●
●●●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●●
●●●
●
●●
●
●●
●
●
●
●●
●
●
●
●●●●
●●
●●
●●
● ●●
●
●
●
●
●●●
●
●●
●
●
●
●●
●
●●●
●
●●
●
●●●
●
● ●
●
●●●
●●
●●
●●
●
●
●
●●
●●
●
●●
●
●●
●●
●
●
●
●● ●
●
●
●●
●
●
●
●
●
●●
●●
●●●
●
●
●●
●●●
●
●
●●
●●
●
●●●
●●
●
●
●● ●
●●●
●
●●●
● ●
●
●
●●
●●
●
● ●
●
●
●
●●●●
●●
●●●●●● ●
●
●
●
●
●●
●
●
●
● ●●
●
●
●●
●
●●
●●
●●
●●●
●
●
●●● ●
●
●
●
●●● ●
●
●
●
●●
●●
●
●
●
●
●
●● ●●
● ●
●
● ●
●
●
●
●●
● ●●
●
●●
●
●● ● ●●
●
●
●
●●
●●
●
●●
●●
●
●
●
●●
●●●
●● ●
●
●
●●
●
●●
●
●●●
●
●
●●
●●
●●
●●
●
● ●●
●●
●●
●●●
● ●
●
●
●
●●
●
●● ●●
●●●●
●
●●
●
●
●●
● ●
●
●
● ●●●
●
●● ●●
●
●●
●
●
●
●●
●●
●●
● ●●●●
● ●●
●●
●●
●●
●●
●● ●● ●
●
●
●
●●
●
●
●●
●●
●
●
●●●●●
●
●●●●
●
●●
●
●
●
●
●●
●●
●
●●
●●●● ●
●●
●
●
●
●●
●● ●
●
●●
●●●
●●
● ●
●● ●
●●●●
●
●●
●
●●
●●
●
●●
●
● ●●
●●
● ●
●
●
●
●●●
●
● ●
●
●●●●●
●
●●
●●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●●
●● ●
●●
●
●
●
● ●●
●
●
●●●
●
●●
● ●
●
●
●
●
●●●●
●
●●●
●●
●
●●
●●
●
●●●
●●●●
●●
●●
●
●●●
●
●
●
●
●
●●
●●
●
●
●
● ● ●
●●
●
●●
●●
●●
●●
●
●
●● ●
●● ●
●
● ●●●
●
●
● ●
●●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●●●
●
●●
●●
●
●
●
●●
●●
●●
●●
●
●●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●●●
●●● ●●
●
●
●● ●
●
●
●
● ●
●
●
● ●
●
●
●●
● ●
●●
●
●
● ●
●●
●
●
●●
●
●
●●
●● ●●
●
●● ●
●
●
●●
●●
●●
●
●●
●●●● ●
●
●
●●●
●
●
●
●●●●● ●
●●
●
● ●
●
●●
●
●●
●
●●
●● ●
●
●
●●
●●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●●●
●●●
●●
●
●●
●●
●
●
●●
●●●
●
●
●
●
●●● ●
●●
● ●●●●
●●●
●
● ●●
●●
●
●
● ●
●
●
●
●
●● ●●●●
●
●
●●●
●
●
●
●●
●●●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●●●
●●
●
●●●●
●●
●●●●
●●
●●
●●
●●
●●
●●
●
●
●●
●●
● ●
●
●
● ●
●
●
●●
●● ●
●
●●
● ●
●●●
●
●●
●
●
●●
●●
●
●
●●●●●●
●
●
●● ● ●● ●
●●
●●
● ●●●
●●
● ●
●●
●
●
●
●●
●
●
●●●
●
●
●
●●
●● ●●
●●
●
●
●
●●
●
●
●
●
● ●
●●
●
●
●●●
●●
●● ●●
●●
●
●
● ●
●
●
●
●●
●
●
●●●
● ●
●
● ●●●
●
●
●●
●●
●●
●●●●
●●
●
●●●
● ●
●●
●
●
●
●
●
●●
●
●●●
●
●●●
●● ●●
● ●
●
●● ●●
●
●●
●
●●
●●
●●●
●●
● ●●● ●
●
●● ●●
●●
●
●
●
●
●●
●
●●
●
●●
●
●●
●●●
●
● ●
●
●
● ●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●●
●
●●
●●●
●●●
●
●●
●
●
●
●
●● ●●●
●●
●
●●
●
●●●
●
●● ●
●
●●
●●
●● ●
●●
●
●
●
●
●
●●●
●
●
●●
●
●●
●●
●● ●
●
●
●● ●●●
●
●
●
● ●
●●
●●●
●●
●●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●●●
● ●●●
●
●
● ●
●
●
●●
●
●
● ●●
●
●●
●●
● ● ●
●● ●●
●●●
●
●●
● ●
●●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
●●
●
●●
● ●
●● ●
●●
●
●
●
●●
●
●●
●●● ●
●●
●
●
●●
●●
●●
●
●●
●
●
●
●
●
●●
●●●
●
●●
●
●●
●●●
●
●
●
●●● ●
●●●
● ●●
●
● ●
●●
●
●
●
●● ●
●● ● ●
●
● ●●
●●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
● ●●●
●
●●●
●
●●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●●
●
● ●
●●
●
●●
●
●
●
●
●
●
●
●●
●● ●● ●
●
●●●
●●
●●
●●●
●
●●
● ●
●
●
●
●
●●
● ●●●
● ●●●
●●
●
●●●
●●
●●
●●● ●
●
●●
●
●●
●
●
● ●
●●●
●●●
●
●
●
●
●●●
●
●●●
●●
●
●●
●
●●
●●●●
●
●
●
●
●●
●
●
●
●
●●
●●
●●
●
●
● ●
●
●●● ● ●
●●●
●
●●
●●
●●●●
●● ●
●●
● ●
●
●●●
●●
●
●
●
●
●
●●
●●
●
●●●
●
●
●●
●●
●
●
● ●
●●
●
●●
●● ●●●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●●
●●
●●
● ●
●
●
●●
●●
●
● ●● ●
●
●●
●●
●
●●●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●●●
●
●
●● ●
●
●●
● ●
●●●
●●
●
●
●
●●
●
●
●●
●● ●
●●●
●
●●
●
●●
●●
●●●
●● ●
●
●
●●
●● ●
●
●●
●
●
●
●
●●
●
●
●
●●
●●
●●●●
● ●
●●
●
●●
●●
●
●●●
●
●●
●●
●●
●●●
●
●
●
●●
●
●●
●
●
●
● ●●
●
● ●
●●
●●
●
●
●
●●
●
●
●
●● ●●
●●
●●
●●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●
●
●
●●
●
● ●●
●●
●●●●●
●● ●
●●
●
●
●
●
●
●
●
●
●●●●
●●
●●●
●●
●
●
● ●
●
●
●●●
●
●
●
●●
●
●
●
●●
●●● ●
●●
● ●
●●
●● ●
●●
●
●●●
●
● ●● ●
●●●●●
●●
●●
●●
●
● ●
●●● ●
●
●
●
●
●
●●●
●●
●
●●
●●
●●
●●
●
●
●●
●
●
●●
●●
●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●● ●
●
●●
● ●
●
●
●●
●● ●●●
●
●
● ●●
●●
●
●
●
●●●
●
●
●●
●●
●●●
●●●●
●●
●● ●
●
●●
●
●●
● ●
●
●
●
●●
●
●
●●
●●
●●
●
●●●●
●
●●
●
●
●
● ●●●●
● ●
●●
● ●●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
●
●
●●●
●
●
●●
●
●
●
●
●
● ●
●● ●
●
●
●●
●●
●
●
● ●
●●
●●
●
●
●●
●●●
●
●
●●
● ●●
●●
● ●●
●●●
●
●● ●
●
●
●
●●●● ●
●
●
●●
● ●●
●
●
●●
●
●●
●●
●
●
● ●●
●
●
●
●
●
●
●●●
●●
●●
●
●●●●
●●
●●
●
●
●●
●
●
●● ●●●
●●
●●
●
●
●●
●●●
●
●
●●
●
●
●●
●
●
●●
●●
●●
●●● ●
●
●●●
●
●●
● ●
●
●
●
●●
●●●●
●●
● ●●
●
●
●
●
●●
●●
●
●●
●
●
● ●
●● ●
●
●
●
●●●
●
●
●●
●●
●
●●●●● ●●
●
●
●●
●
●●●
●●
●●●
●●●
●●●
●
●
●
●●●
●●●●
●
●
●●
●●
●●
●
●
●
●
●
●●
●●
●
●●● ●
●
●
●●
●
●●●
●●
●
● ●●
●
● ●●
●
●
●●
●
●●
●
●
●● ●
●
●
●● ●
●●
●
●
●●
●●
●●● ●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●●
●
●●
●●
●
●
●
●●
●●
●
●● ●
●●
●
●●
●
●
●
●
●●
●
●
●
●●
●●
●
●●●
●●
●●●●
●●
●●●
●
●
●
●●●
●
●
●●
●●
● ●
●
● ●
● ●●
●
●
●
●●
●
●●
●●●
●●
●● ●●
●●●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
● ●●●
●●●
● ●
●
●
●
●●
●
●●
●
●●
●●●
●
●
●●
●●
●
●
●
●
●● ●●
●
●
●
●●
●●
●
●●●
●●●
●●
●●
●
●●
●●●
●
●
●
●
●●
●●
●
●●
●●
●
●
●
●●
●
●
●●●
●
●●
●
●●● ●●
●
●●
●
●
●● ●
●
●
●
●
●
●●
● ●
●●
● ●●
●●
●
●●●
●
●
● ●
●
●
● ●
●
●
●●
●
●●
● ●●
●● ●
●●
● ●
●●
●
●●
●●●
●
●
●●●
●
●●
● ●●●
●
●
●
●●
●
●
●
●
●● ●●
●
●
●
●
● ●
●
●
●●
●●●
●
●●
●●
●●●● ●
●●
●
●
●
●●
●●
●
●
●●
●
●● ●
●
●
●
●
● ●●
●●●●
●
●●
●● ●
●
●
●
●●
●●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●
●●●
●●
●●●
●
●●
●
●●
●
●
●●
●
●
●● ●●
●●●
●
●●
●●
●●●
●●
●
●
●●●●
●
●●
●
●
●
●●
●●●●
●● ●
●●
●●
●●●
●●
●
●
●
●●
●●●
●
●●●
●
●
●●
●●
●
●
●●●●
●
●
●
● ●●
●
●● ●●●
●●
●
●●●
●●
●
●●
●
●
●
●
●●●
●
●●
●●
●●●
●
●
●●●
●●
●●●
●
●
●
●●●
●
●
●
●● ●●
●●
●
●●
●
●●
●● ●
●●
●
●
●
●●
●
●
●●
●
●●● ●
●
●
●
●
●
● ●●
●
●●
●●
●●
● ●
●
●●●
●
●
●●
●
●●●
●●
●
●
●●
●●
● ●●
● ●●●
●●●
●
●●●
●
●
●
●●●
●
●●●
●
●
●● ●●
●
●●
●
●
●
●●
●
●
●●●
● ●
●●
●●
● ●
●
● ●
●
●●
●●
●●
●●
●
● ●
●
●●●
●●
●
●●
●
●
●
●
●●
●●
●
●●
●
●
●
●●
●●
●
●●●
●
● ●
●
●●
● ●●●
●●●
●●●
●
●
●
● ●
●
●●●
●●
●●
●
●
●●●●●
● ● ●
●
●●
●
●●●●
●●●
●
●
●
●●
●●
●
●
●
● ●
●
●
●
●
●●
●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
● ●●
●
●
●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●●
●
●
●●
●
●
●
●● ●
●●●
●
●●●
●
●
●●●●
●●
●
●●●
●
●
●●
●●
● ●
●
●●
●
●●
● ●●
●
●
●●
●●
●●
●
●●
●
●
●●
● ●
●●
●●
●
●
● ●●
●●●
● ●●
●●●
●
●
●● ●● ●
●●
●
●
●
●● ●
●●
● ●
●●
●
●
●●
●●
●
●●●
● ●
●
● ●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
● ●
●●
●●
●●
●
●●
●
●● ●
●
●●
●●
●
●
●● ●●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●●
● ●
●●●
●●
●●
●●
●● ●
●●●
●●
●
●
●
●
●●●
●● ●
● ●●
●●
●
●●
●●
●
●
●●
●
●●●
●● ●
●
●
●
●● ●●
● ●
● ●
●
●
●● ●
●
●
●
● ●●
●● ●●
●
●
●●●●● ●●
●●
●
●
●
●
●●
●
●●
●
●
● ●
●●● ● ●
● ●●
●●
●●●
●
●
●● ●●
●
●
●
●
●
●
●
●
●●
●●
●● ●●
●
●●
●
●
●●
●● ●
●●●●
●
●●
●
●●
●● ●
● ●●●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●●
●
●
●●
●
●● ●
●
●
●
●●
●
●●
●
●
●●
●● ●●
●●
●● ●
●
●
●
● ●
●● ●
●●
●
●
●●
●
●
●● ●
●
●●
●
●●
●●
●●
●
●●
●●
●
●
● ●
●●
●
●●
●
●
●●●●
●
●●
●●●
●●
●● ●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●●
●●
●●
●●
●
●●
●●
● ●
●
● ●● ●●
●●
●●
●●
●
●●●
●
●●●
●
●
●
●
●
●
●●●
●
●●●
●●
●
●●
●●
●●●
●●
●
●●
●●●
●●
●
●●●
●
●
●●
●
●●●
●●● ● ●
● ●●
●
●●
●
●●
●
●
●●●●
●
●
●
● ●
●
●●
●
●
●●
●
●●
●
●
●●
●
●● ●● ●●●
●
●
●● ●
●
●● ● ●
●●
●
●
●●
●●
●
●
●●
●●●
●
●●●
●●
●●
●
● ●
● ●●
●
●●
●●
●●
● ●
●●
●●●
●
●
●
●●
●●
●
●●
●
● ●
●●
●●●
●
●●
●
●
● ●
●●
●●● ●
●
●
●
●
●
●
●
● ●●
●●
●
●●
●●
●●●●
●●
●
●●
●●
●
●●
●
●
●
●●
●●
●
●●●
●
●●
●
●●
●●●●
●
●●●
●●
●●●
●●
●●●●
●
●●
●●
● ●●
●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●●
●
●● ●●
●●
●
●
●
●
●
●
●●●
●
●
● ●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●
●●
●●
●
●●
●
●●●
●
●
●
●●
●
●●●
●●●
●
●
●
●●
● ●
●●
●
●●●
●
● ●
●●
●
●●
●●●
●
●●
●●●●
●●
●●
●
●●
● ●
● ●●
●●
●●●
●
● ●●●
●
●
●
●●
●
●●
●
●●
●
●●●
●
●
●
●●● ●
●
●
●●
●●
● ●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
● ●
●
●
●
●●
●
●●
●●●
●
●
● ●●
● ●
●
●●
● ●●
●●
●
●
●
●
●●
●●
●●
● ●
●●●● ●●●
●
●
●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●
●●
●●
●●
●
●●
●
●●
● ●
●
●
●●
●
●●●●
●
●
●●
●●
●●
●● ●●●
●●
●
●
● ●
●
●●
●●
●
●●
●
● ●
●●
● ●
●●
●
●
●
●●
●
● ●●
●
●
●
●
●●
●
●
●
●●
●●
●●
●
●
●● ●●
● ●
●
●●
●●●
●
●
●●
● ●
●●
●●●
●
●
●●
●●
●
●●
●
●●● ●●
● ●
●●
●●●
●
●● ●
●
●●
●
●●
●
●●
●
● ●
●
●●
●
●
●
●●●
●●●
●●
●●
●●
●●
●●
●
●
●●●
●●●
●
●
●●
●●
●●
●●
●
●
●
● ●
●●
●●●
●
●●●
●●●
●
●
●●●●
●●
●
●●
●●
●
●●●●
●●
●
●●
●
●●● ●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●●
●●●
●
●
●●
●●
●●
● ●
●
●●
●
●
●
●●●
●●
●●
● ●
●●
●●
●
●
●
●
●●
●●
●●
●
●
●●
●●
●● ●
●
●
●●
●
●
● ●●
●
●
●
●
●●●
●● ●●
●●●
●●
●
●●
●●
●
●
●
●●
●
●●●
●
●●
●●
● ●●● ●
●
●
●●
●●
●●●
●●●●
●●
●
●
●●
●
●
● ●●
●●
●●
●●
●
● ●●●
●●
●●
●●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●●●
●
● ● ●●
●
●
●●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●●●
●
●
●●●●
●●
●
●●●
●
●
●●●
●
●
● ●●
●
●●
● ●●
●●
● ●
●
●
●
●
●
●
●●
● ●
●
●
●
●●●
●
●
●●
●
● ●
●
●●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●●
●●
●●
●
●
●
●
●● ●
●●
●
● ●● ●●●
●●
●
●●
●●
●
●●
●●
●●
● ●
●
●
●
●
●
●
● ●
●
●
● ● ●●
●
●
● ●
●●
●
● ●●
●
●●●●
●
●
●
●
●
●●
●
●●
●
●
●● ●
●
●
●●●
●
●●
●
●
●
●● ●
●
●
●●
●
●
●●●●
● ●
●
●● ●●
●●
●
●
●●
●
● ●
●
●
●●
●
●
●● ●
●
●
●
●● ●●●●
●●
●
●
●
●●
●
●●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●●●●
●
●
●
●
●●
●
●
●
●● ●
●●●
●●
●
●●
●
●●
●● ●
●
●
●●●
●●
●
●
●●
●●
●
●●
●●
●●
●
●●●
●●
●
●
●●
●
●●
●
●●
●
●
●●
●
●●●●
●●
●
●●
●
●●
●●●●
●
●● ●
●
●● ●
●
●●● ●
●●
●●●
●
●●
●
●
●●
●
●
● ●●
●●●
● ●
●
●
●●●
●
●
●
●●
●
●●
●
●●
●●
●
●
●● ●
●
●●
●
●●
●●●
●
●
●
● ●●
●●
●
●●
●●
●●
●●●●●
●
●●
●●
●
●
●
●●
●
●●
●●●
●●
●●●
●●
● ●●● ●
●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●● ●●
●
●●
●
●●
●
●●
●●
●●
●
●
●●
●
●●
●●
●●
●●
●●
●
●
●●●
● ●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
● ●●
●
●● ●●●
●●
●
●●
●
●
● ●●
●
●●
●
●
● ●●
●
●
● ●
●●
●●
●
●●
●
●●
●
●
●
●●●●●
● ●
●●●●
●
●●
●●
●
●
●●
●
●
●
●●
●
●●●
●
●
●●
●●
●
●
●●
●
●
●●
● ●●
● ●●
●
●●
●
●
●
●●
●
● ●●●
●●
●
●
●
●
●
● ●●●
●●
●●
●
●●
●●
●
●
● ●●
● ●● ●●
●● ●
●●
●
●
● ●
● ●●
●
●
●
●
●
●
●●●
●●●
●
●
●
●● ●
●●
●
●
●● ● ●
●
●
●
● ●●
●
●●
● ●●
●
●● ● ●
●●●
●●
●
●●●
●●●
●
●
●
●● ●●
●
●●
●
●●●
●●● ●
●
●
●
●●●
●
●●
●●●
●
600 800 1000 1200
400
600
800
1000
1200
1400
Node
Pre
dato
r po
pula
tion
size
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●●
●
●●●
●●
●●
●
●
●
●
● ● ●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●● ●
●
●
●
●
●
●
●●
●
●
●●
●●
●●
●●●
●
●
●
●
●
●●
●●
● ●
●
●
●
●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
● ●
●
●
●●
●
●●
●
●●●
●
●
●●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●● ●
●
●●
● ●●
●
●
●●
●● ●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●● ●●●●
●
●● ●
●
●
●
●●
●
●
●
●
●
● ●
●
●●
●
●
●
● ●
●
●
●
●●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●●●
●
●
●
●
●
●●
●
●
●
● ● ●
●
●●
●
●● ●
●
●●●●
●
●
●
● ●
●●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
●
●
●
●
●
●●
●
● ●
● ●
●● ●
●
●
● ●
●
●●●●
●
●●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
● ●
●
●
●●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●● ●
●
●●
●
●
●
●
●
●
●●●
●
●●●
●●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●●●
●●●
●●
●●
●
●
●
●
●
●
● ●
●
● ●●
●
●
●●
●●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●●●●
●● ●
●●
●
●
●
●
● ●●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●●
●●
●●
●
●
●●
● ●
●●
● ●
●
●●
●
●
●●
●
●●●
●
●
●
●
● ●
●
●
●●
●
●
●
●●
●
●
●
●
●●● ●
●
●
● ●
● ● ●
●
●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
● ●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
600 1000 1400 1800
600
800
1000
1200
1400
Focus
Prey population size
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
● ●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
● ●
●
●
●●
●
●
● ●
●
●
●
0 500 1500 2500
500
1000
1500
Limit cycle
Evidence of limit cycle: “crater edge”
36
Detecting periodic fluctuations in natural time
series
1750 1800 1850 1900
020
000
6000
0
Years
Lynx
1850 1860 1870 1880 1890 1900 1910
6000
1000
014
000
1800
0
Years
Pop
ulat
ion
size
Otter
1750 1800 1850 1900
050
015
0025
00 Wolverine
37
Lynx timeseries
1750 1800 1850 1900
020
000
6000
0
Year
Pop
ulat
ion
size
●
●
●●
●●
●●●●●
●●
●●
●●
●
●
●
●●●
●●
●●●
●
●●
●
●●
●
●
●●
●●
●
●
●●●
●●
●●●●
●
●●●
●
●
●
●
●●
●●●
●
●●
●●
●
●●●
●●
●●●●●
−2.0 −1.5 −1.0 −0.5
45
67
89
10
log10(Cycle frequency)
log1
0(P
ower
)
0 5 10 15 20
−0.
20.
20.
40.
60.
81.
0
Lag
AC
F
Population size
Fre
quen
cy
0 20000 40000 60000 80000
020
4060
8010
0
38
Otter timeseries
1850 1870 1890 1910
6000
1000
014
000
1800
0
Year
Pop
ulat
ion
size
● ●●
●
●●
● ●●
●
●
●
●●●
●
●
●●
●●
●
●●
●
●●
●
●●
●●
−1.5 −1.0 −0.5
45
67
89
10
log10(Cycle frequency)
log1
0(P
ower
)
0 5 10 15
−0.
20.
20.
40.
60.
81.
0
Lag
AC
F
Population size
Fre
quen
cy
5000 10000 15000 20000
05
1015
39
Wolverine timeseries
1750 1800 1850 1900
050
010
0020
00
Year
Pop
ulat
ion
size
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●●
●●●
●
●
●
●
●
●●
●
●●●
●●●
●
●●
●●
●●●
●
●
●●
●●●●
●●
●●●●●●●●●●
●
●
●●
●
●
●●
●
●●●●●●
●●
−2.0 −1.5 −1.0 −0.5
45
67
89
10
log10(Cycle frequency)
log1
0(P
ower
)
0 5 10 15 20
−0.
20.
20.
40.
60.
81.
0
Lag
AC
F
Population size
Fre
quen
cy
0 500 1000 2000
05
1015
2025
30
40
Conclusions
Time series ACF Power spectrum Marginal distribution Stochastic behaviourSimulatednode none uniform normal noisy equilibriumfocus periodic periodic normal quasi-cycleslimit cycle periodic periodic non-normal noisy limit cycleReallynx periodic periodic non-normal noisy limit cycleotter none uniform normal noisy equilibriumwolverine periodic ambiguous normal quasi-cycles
41
Quasi-cycles are not new
Nisbet & Gurney, 1976
“...population cycles of rather large amplitude may occur when anunderdamped control system is subject to random environmentalnoise, and we suggest that this mechanism is worthy ofconsideration when analyzing real populate data.”
McKane & Newman, 1998“We expect that this resonance mechanism will occur in otherstochastic systems in which the mean field theory shows dampedoscillations, for instance, biochemical reactions in microscopicsystems.”
Pineda-Krch, 2007“...the existence of quasi-cycles should generalize to anydeterministic model that exhibits a stable focus and is perturbed bynoise.”
42
Parameter space for RMPP model
0.0 0.2 0.4 0.6 0.8 1.0
02
46
810
α
γ
Saddle point (unstable)
NodeFocus
Limit cycle
●
●
●
43
Act 3: Cycles at the edge ofexistence
44
Lotka Volterra predator-prey (LVPP) model
dNdt = rN
(1 − N
K
)− cNP
dPdt = bNP − mP
45
Simplifying the model
To simplify the LVPP model the number of parameters are reducedby defining x ≡ N/K , y ≡ Pa/r and t̃ ≡ rt the model can berescaled to
dxdt̃
= x (1 − x − y)
dydt̃
= y(
caKr
)(x −
gcaK
).
Setting α ≡ (g/(caK )) and β ≡ (caK )/r , this further simplifies to
dxdt̃
= x (1 − x − y)
dydt̃
= βy (x − α)
where α > 0 and β > 0.
46
Stable coexistence equilibrium
●
α
β
0.001 0.200 0.400 0.600 0.800 1.000
01
23
45
67
89
10
Node
Focus
47
Structure of simulation model
lvpp.R
ssa.lvpp.Rode.lvpp.R
ssa_lvpp.c
(The R code is here..., but the output is suppressed)48
Simulations
Set the parameter combinations> alpha.vec <- c(0.001, 0.01, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0)
> beta.vec <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
> eq.vec <- c(100, 500, 1000, 5000, 10000)
Set the length and the number of simulations per parametercombination> tmax <- 100
> n <- 100
Total number of parameter combinations (12× 10× 5) = 600Total number of stochastic simulations (600× 100) = 60000Run the simulations1
> for (beta in beta.vec) {
for (alpha in alpha.vec) {
for (eq in eq.vec) {
file.names <- lvpp(alpha, beta, tmax, eq, n)
}
}
}
1Caution: running these simulations takes a very long time so here theevaluation is suppressed. To run it set eval=true in Sweave source.
49
Rate of quasi-cyclicity, eq=500
α
β
0.1 0.1
0.2
0.2 0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.001 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000
01
23
45
67
89
10
0.95
50
Quasi-cycle rate
α
β
0.1 0.1
0.2
0.2
0.3 0.4 0.5 0.6
0.7
0.8
0.9
1
0.001 0.200 0.400 0.600 0.800 1.000
01
23
45
67
89
10
0.95
eq=500
α
β
0.1
0.1
0.2
0.2
0.3
0.3 0.4
0.5 0.6
0.7
0.8
0.9
1
0.001 0.200 0.400 0.600 0.800 1.000
01
23
45
67
89
10
0.95
eq=1000
α
β
0.1
0.1
0.2
0.2
0.3
0.3 0.4
0.5 0.6
0.7 0.8
0.9
1
0.001 0.200 0.400 0.600 0.800 1.000
01
23
45
67
89
10
0.95
eq=5000
α
β
0.1 0.1
0.2
0.2
0.3 0.4 0.5
0.6 0.7
0.8
0.9
1
0.001 0.200 0.400 0.600 0.800 1.000
01
23
45
67
89
10
0.95
eq=10000
51
Extinction rate, eq=500
α
β
0.1
0.1
0.2
0.2
0.3
0.3
0.4
0.4 0.5 0.6
0.7 0.8
0.9 1
0.001 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000
01
23
45
67
89
10
0.95
52
Conclusions
I In non-cyclic models quasi-cycles arise only in part of theregion exhibition damped oscillations
I These results are consistent for population sizes across 3orders of magnitude
I For small population sizes quasi-cycles arise close to the pointof extinction
I Potential for using quasi-cyclicity for quantifying extinctionrisks in PVA
I How common are limit cycles in natural populations?
53
AcknowledgementsAct 1:
I The Tria Project (Genome Canada, Genome Alberta, GenomeBC)
I Lewis Research Group
Act 2:
I Rob J. Hyndman (Time Series Data Library) for permission touse the otter and wolverine time series
I James S. McDonnell Foundation
I NSERC
I PIMS
Act 3:
I The Tria Project (Genome Canada, Genome Alberta, GenomeBC)
I National Institute for Mathematical and Biological Synthesis(NIMBioS)
54
Background
Act 1: Pineda-Krch. 2011. The Joy of Sweave — Abeginner’s guide to reproducible research withSweave. http://pineda-krch.com/2011/01/17/the-joy-of-sweave/
Act 2: Pineda-Krch, Blok, Dieckmann, Doebeli. 2007. Atale of two cycles — distinguishing quasi-cycles andlimit cycles in finite predator-prey populations. Oikos116: 53—64.
Act 3: Pineda-Krch. 2011. Cycles at the edge of existence:Emergence of quasi-cycles in strongly destabilizedecosystems. Submitted
55
Session information
I R version 2.13.1 (2011-07-08), x86_64-apple-darwin9.8.0
I Locale: C
I Base packages: base, datasets, grDevices, graphics, methods,stats, utils
I Other packages: odesolve 0.5-20, spatial 7.3-3
I Loaded via a namespace (and not attached): tools 2.13.1
The R code in this vignette took 21 seconds to execute on MonOct 31 23:40:05 2011.
56