Stickleback Evolution--Eda gene

Stickleback Evolution--Eda gene preview image

1 collaborator

Screen_shot_2018-02-02_at_12.53.50_pm lin xiang (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.1.0 • Viewed 57 times • Downloaded 1 time • Run 0 times
Download the 'Stickleback Evolution--Eda gene' 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 this module?

This module simulates the contemporary evolution of threespine Stickleback of a stickleback population in a hypothetical lake. This module helps users to explore the changes in allele frequencies resulting from natural selection.

Underlying module mechanisms

The following processes serve as the underlying mechanisms of the module.

Allele frequencies, genotypes, phenotypes

When setting up the simulation, an equal number of sperms and eggs are generated based on the defined population size and Eda allele ratio. Then individual fish is formed via random fertilization, and fish genotype is determined by the sperm and egg. Once genotypes are determined, phenotypes are determined accordingly: AA, Aa, and aA produce the complete-armored morph (darker individuals), aa produces low-armored morph(lighter individuals). 5% of individuals are intermediate morph (intermediate color) due to other genetic modifiers. The fewer plates are a stickleback bearing; the faster does it swim (The Bell Lab, 2016; Genetic Science Learning Center, 2017).

Food resource and population size

The stickleback fish needs to obtain energy from the food. The changes in the blue background represent the available food in the lake. The darker the patch is, the less food is available.

Stickleback fish only obtains food from the lighter blue patches, and every move costs some energy. If fish runs out the energy and no food is available from the current patch, it dies.

The slider of "available-food" represents the food resource available for the stickleback population.

Reproduction, inheritance, and mutation

When a fish cumulates a certain amount of energy, it produces gametes following Mendelian rules. These gametes randomly pair to form new individuals. Once turning on the mutation, 5 % alleles A and a could mutate to a or A every tick.

Predation

The "Number-of-predators" determines the number of dragonfly larvae, the predators, existing in the lake. They will prey on the slowest stickleback fish nearby.

Suggested exploration

  1. The relationship between the available food and carrying capacity

  2. Explore the relationships among allele ratio, number of predators, and mutation.

Something to note

The food resource in the hypothetical lake is finite. So individual fish competes for food. Even though they move in the lake randomly, sampling errors still leads to slight unequally food resource for each individual. Therefore even you turn off predation and mutation, allele frequencies will change slightly owing to genetic drift.

CREDITS

This module is made by Dr. Lin Xiang at Weber State University. If you mention this model in a publication, we ask that you include the citations below.

Xiang, L. (2017). Loberg stickleback-Eda gene. Zoology Department, Weber State University, Ogden, UT.

REFERENCES

  1. The bell lab: Bridging the Gap Between Developmental Genetics and Paleontology https://www.leonschools.net/site/handlers/filedownload.ashx?moduleinstanceid=72882&dataid=106049&FileName=bell%20lab%20article.pdf

  2. Stickleback Evolution. Genetic Science Learning Center. (2015, January 7) Learn. Genetics. Retrieved March 21, 2017, from http://learn.genetics.utah.edu/

Comments and Questions

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

Click to Run Model

breed [gametes gamete]
Breed [fish a-fish]
breed [predators predator]

globals [cm iter lo]
gametes-own [allele]
fish-own [genotype plate erg speed]


;===========

to-report years
  report ticks / 150
end 

to-report number-big-a
  report length (word 0 [genotype] of fish) - length (remove "A" (word 0 [genotype] of fish))      ;report total number of "A"
end 

to-report number-small-a
report length (word 0 [genotype] of fish) - length (remove "a" (word 0 [genotype] of fish))      ;report total number of "a"
end 

to-report freq-big-a
  report number-big-a / (number-big-a + number-small-a)   ;report allele frequency of "A"
end 

to-report freq-small-a
  report number-small-a / (number-big-a + number-small-a)  ;report allele frequency of "a"
end 

to-report freq-complete
  report (count fish with [plate >= 23]) /(count fish)
end 

to-report freq-intermediate
  report (count fish with [plate >= 13 and plate < 23]) / (count fish)
end 

to-report freq-low
  report (count fish with [plate < 13]) / (count fish)
end 

to smooth-line
  set cm cm * 0.9 + ( 1 - 0.9 ) * (count fish with [plate >= 23])
  set iter iter * 0.9 + ( 1 - 0.9 ) * (count fish with [plate >= 13 and plate < 23])
  set lo lo * 0.9 + ( 1 - 0.9 ) * (count fish with [plate < 13])
end 



;============

to setup
  ca
   setup-gametes
   fertilization
   setup-predator
   setup-patches

   set cm (count fish with [plate >= 23])
   set iter (count fish with [plate >= 13 and plate < 23])
   set lo (count fish with [plate < 13])

  reset-ticks
end 

;==============

to setup-gametes                        ;set number of gametes     there is no need to make sperms and eggs in this case
 create-gametes starting-population-size * 2
 [gamete-traits
   ifelse random 10 < (Eda-allele-ratio * 10) [set allele "A"][set allele "a"]
 ]
end 

to gamete-traits
    set shape "dot"
    set color 82   ;set gamate same as background
    set size 0.5
    setxy random-xcor random-ycor
end 

to fertilization
  ask gametes [
    let mate one-of other gametes
    if mate != nobody[
    hatch-fish 1
    [;set heading -10 + random 20
      set erg 20                  ;set energy level
     set size  3
     set genotype word [allele] of myself [allele] of mate  ;set genotype
     setup-phenotype                                        ;set phenotype shape here
     setup-shape-color
     setup-fish-speed
     setxy random-xcor random-ycor]
    ask mate [die]
    die]]
end 

to setup-phenotype            ;change phenotype shape here
  if genotype = "AA" [set plate (24 + random 10)]
  if genotype = "Aa" [set plate (24 + random 10)]
  if genotype = "aA" [set plate (24 + random 10)]
  if genotype = "aa" [set plate (3 + random 10)]
  if random 20 = 0 [set plate (13 + random 10)]         ;intermediate morph due to other genetic modifiers
end 

to gametogenesis
   ask fish with [genotype = "AA"]
   [if erg >= 40
            [hatch-gametes 2
              [gamete-traits
                ifelse mutation?
                [ifelse random 20 = 0 [set allele "a" ][set allele "A" ]]
                [set allele "A"]]
   set erg erg - 20]]

   ask fish with [genotype = "aa"]
   [if erg >= 40
            [hatch-gametes 2
              [gamete-traits
                ifelse mutation?
                [ifelse random 20 = 0 [set allele "A" ][set allele "a" ]]
                [set allele "a"]]
   set erg erg - 20]]

   ask fish with [genotype = "Aa"]
   [if erg >= 40
           [hatch-gametes 1
             [gamete-traits
               ifelse mutation?
                [ifelse random 20 = 0 [set allele "a" ][set allele "A" ]]
                [set allele "A"]
            hatch-gametes 1
             [gamete-traits
               ifelse mutation?
                [ifelse random 20 = 0 [set allele "A" ][set allele "a" ]]
                [set allele "a"]]]
   set erg erg - 20]]

   ask fish with [genotype = "aA"]
   [if erg >= 40
           [hatch-gametes 1
             [gamete-traits
               ifelse mutation?
                [ifelse random 20 = 0 [set allele "A" ][set allele "a" ]]
                [set allele "a"]
            hatch-gametes 1
             [gamete-traits
               ifelse mutation?
                [ifelse random 20 = 0 [set allele "a" ][set allele "A" ]]
                [set allele "A"]]]
   set erg erg - 20]]
end 

to setup-patches
 ask patches [set pcolor 93]
end 

to setup-fish-speed
  set speed (-0.1 * plate + 9.3)
end 

to setup-shape-color
  if plate >= 23 [set shape "armor-1" set color 36]
  if plate < 23 and plate >= 13 [set shape "armor-2" set color 37]
  if plate < 13 [set shape "armor-3" set color 38]
end 

to setup-predator
create-predators Number-of-predators
  [set size 7
  set color 86
  set shape "predator-1"
  set heading -15 + random 30
  setxy random-xcor random-ycor]
end 

;=========================================

to go
  tick
  if count fish <= 0 [stop]
  if ticks >= years-to-run * 150 [stop]
  update-setup-predator
  move
  food
  death
  predation
  reproduce
  regrow-food
  smooth-line
end 

;==========================================

to update-setup-predator
  if count predators != Number-of-predators
  [ask predators [die]
    setup-predator]
end 

to move
   ask fish [
     fd 0.25 set erg erg - 1]
end 

to predation
  if any? predators
  [ask predators[
      setxy random-xcor random-ycor
      let preys fish-here
      let prey min-one-of preys with [speed < 8.6] [speed] ; prey on slowest individual among those are slower than 8.6
      if prey != nobody
      [ask prey [die]]
  ]]
end 

to food       ;set food consumption
 ask fish [ if pcolor > 92 [set erg erg + 1.185 set pcolor pcolor - 0.25]]
end 

to death
  ask fish [if erg <= 0 [die]]
end 

to reproduce
  gametogenesis
  fertilization
end 

to regrow-food
  ask patches with [pcolor <= 92 ] [if random 100 < (available-food * 0.5) [set pcolor 93]]
end 

There are 5 versions of this model.

Uploaded by When Description Download
lin xiang 9 months ago speed up the simulation Download this version
lin xiang 9 months ago Fit components into NetLogo web window Download this version
lin xiang 9 months ago fix dimensions Download this version
lin xiang 9 months ago simplify setting Download this version
lin xiang 9 months ago Initial upload Download this version

Attached files

File Type Description Last updated
Stickleback Evolution--Eda gene.png preview Preview for 'Stickleback Evolution--Eda gene' 9 months ago, by lin xiang Download

This model does not have any ancestors.

This model does not have any descendants.