Forest Dynamic Model II- Rosindell et al. (2010)

No preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.3.0 • Viewed 244 times • Downloaded 29 times • Run 0 times
Download the 'Forest Dynamic Model II- Rosindell et al. (2010)' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

The Rosindell et al. (2010) algorithm-2 is based on the concept of coalescence, instead of simulating the system forwards in time until it reaches equilibrium, He simulated it backwards in time following the ancestry of each individual in the sample back to the speciation event that gives the species identity of this individual. In algorithm-2 he considered the protracted speciation where τ = τ. He took a sample of size J from the metacommunity of size JM and traced K lineages backwards in time where initially K = J.

HOW IT WORKS

Algorithm 2: Protracted speciation metacommunity sample.

This algorithm presents below is published by Rosindell, et al., (2010) in Ecology Letter supporting information section (see ELE1463sm_appendix.pdf).

  1. Input θ and J and τ.

  2. Define a vector V of length J with Vi = 1 for i = 1, 2, . . . J and define K = J, the number of lineages in the vector.

  3. Define t = 0 the total number of units of coalescence time that have passed.

  4. Pick a random number 0 ≤ r ≤ 1 (to choose how many generations until the next coalescence event).

  5. Set t = t − ( ln(r) / [K(K−1)] ).

  6. If τ > t, pick two random entries Vi and Vj from the vector V (where j not equal to i), set K = K - 1 and Vi = Vi + Vj. Then remove Vj from the vector V (then go to 3).

  7. If τ ≤ t, define an empty vector W which will contains a list of species abundances when the algorithm terminates.

  8. Pick a random number 0 ≤ r ≤ 1 (to choose if coalescence or speciation will happen).

  9. Pick a random entry Vi from the vector V (to choose which lineage this will happen to).

  10. If rθ / [θ+K− 1] , speciation happens: remove Vi from the vector V and append it to vector W (then go to 12).

  11. If r > θ / [θ + K − 1] , coalescence happens: pick a random entry Vj from vector V (where j not equal to i) and set Vi = Vi + Vj then remove Vj from the vector V.

  12. Set K = K − 1; now the vector V should have one less element.

  13. If (K > 0), we are not finished so go to 8.

  14. If (K ≤ 0), the algorithm is complete and W contains the abundances of all species.

HOW TO USE IT

Set the meta-community size, K = (w1 + 1)2.

Decide the fundamental biodiversity number, θ

Decide the τ.

THINGS TO NOTICE

Number of speciations happened in the meta-community is represents by arrow heads.

THINGS TO TRY

Increase the θ and see the number of speciations presents in the given θ and meta-community size.

Increase the meta-community size, K = (w1 + 1)2 and see the number of speciations presents in the meta-community for given θ and τ.

Increase the τ and see the number of speciations presents in the given θ and meta-community size.

EXTENDING THE MODEL

NETLOGO FEATURES

RELATED MODELS

Rosindell, J., Cornell, S. J., Hubbell, S. P., & Etienne, R. S. (2010). Protracted speciation revitalizes the neutral theory of biodiversity: Protracted speciation and neutral theory. Ecology Letters, 13(6), 716–727.

CREDITS AND REFERENCES

Please cite the NetLogo software as:

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

extensions [table csv]
globals [V K W-vec rspec speciation specia spec Wvec index speciesi meta-speciesi JM meta-sp meta-time meta-a0  meta-j2 meta-a meta-set2 extinct-species number-of-meta-trees a initial-meta-richness dlocx dlocy random-number2 number time num j x-cor y-cor N richness a0 n-speciation local-set local-di-set local-off-set set-species-who-di set-species-who-off sp hist-frq rel-hist-frq s local-set0 remove-set richness-counts species-who-di di-locx di-locy species-who-off set1-species-who-off meta-set effective-meta-cmmunity-size number-of-local-trees item-x meta-set-new meta-sp-count sp-count j1 i1 k1 j2 i2 k2 meta-richness-counts meta-richness local-richness-counts local-richness hist-frq-meta rel-hist-frq-meta hist-frq-local rel-hist-frq-local t]
breed [meta-trees meta-tree]
breed [trees tree]
meta-trees-own [species meta-species n-speciation-no]
trees-own [species h]
circles-own []
breed [circles a-circle]
patches-own[elevation]

to setup3
  clear-all
  set local-richness-counts map count table:values table:group-agents trees [species]
  set local-richness length local-richness-counts
  set sp 0
  set meta-sp 0
  set speciation 0
  set specia []
  set spec []
  set Wvec []
  set J (w1 + 1) * (w1 + 1)
  resize-world 0 w1 0 w1
  set JM 0
  set K J
  set t 0
  species-gen1
  set hist-frq-local sort-by > map count table:values table:group-agents trees [ species ]
  set rel-hist-frq-local map [ i -> i / count trees ] hist-frq-local
  set richness-counts map count table:values table:group-agents turtles [ species ]
  set richness length richness-counts
  set hist-frq-meta sort-by > map [ i -> i] Wvec
  update-plots
  reset-ticks
end 

to species-gen1
  set k1 -1
  while [k1 < w1 ] [
    set k1 k1 + 1
    set i1 -1
    while [i1 < w1 ] [
      set i1 i1 + 1
      create-trees 1 [
        setxy k1 i1
        set shape "circle"
        set size 1
        set num random-float 1
        set j1 j1 + 1
        set species (sp + 1)
        set sp sp + 1
        set color random-float -50
        set spec fput sp spec
      ]
    ]
  ]
  set local-richness sp
end 

to go3
  while [K > 0] [
    let r1 random-float 1
    if (length spec = 0 )[stop]
    set rspec one-of spec
    if-else (K > 1) [set t t - (ln (r1) / (K * (K - 1 )))]
    [set t 100000]
    if-else (tau >  t) [
      set spec remove rspec spec
      ask trees with [species = rspec] [
        set rspec one-of spec
        set species rspec
        set color [color] of one-of trees with [species = rspec]
      ]
      set K K - 1
      set t 0
      set richness-counts map count table:values table:group-agents turtles [ species ]
      set richness length richness-counts
      set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ]
      set rel-hist-frq-local map [ i -> i / count turtles ] hist-frq-local
      set hist-frq-meta sort-by > map [ i -> i ] Wvec
      update-plots
      tick
    ]
    [
      if (length spec = 0 )[stop]
      if-else (r1 <= theta / (theta + K - 1)) [
        set speciation speciation + 1
        set specia fput rspec specia
        set spec remove rspec spec
        let Wvec1 count trees with [species = rspec]
        set Wvec fput Wvec1 Wvec
        set sp sp + 1
        let color0 60 + random-float -50
        ask trees with [species = rspec] [
          set species sp
          set color color0
          ;set shape "arrow"
        ]
        set K K - 1
        set richness-counts map count table:values table:group-agents turtles [ species ]
        set richness length richness-counts
        set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ]
        set rel-hist-frq-local map [ i -> i / count turtles ] hist-frq-local
        set hist-frq-meta sort-by > map [ i -> i ] Wvec
        update-plots
        tick
      ]
      [
        if (length spec = 0 )[stop]
        set spec remove rspec spec
        let color01 [color] of one-of trees with [species = rspec]
        ask trees with [species = rspec] [
          set rspec one-of spec
          set species rspec
          set color color01
        ]
        set K K - 1
        set richness-counts map count table:values table:group-agents turtles [ species ]
        set richness length richness-counts
        set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ]
        set rel-hist-frq-local map [ i -> i / count turtles ] hist-frq-local
        set hist-frq-meta sort-by > map [ i -> i ] Wvec
        update-plots
        tick
      ]
    ]
  ]
end 

; Copyright 2023h Ruwan Punchi-Manage.
; See Info tab for full copyright and license.






























There is only one version of this model, created almost 2 years ago by Ruwan Punchi-Manage.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.