Evolution of Gamete Dimorphism (Anisogamy)
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model is a thought experiment related to the evolution of the two sexes as we know them: males producing numerous small sperm cells and females producing only a handful of big egg cells.
The model has two pseudo-sexes (red and blue). The adult organisms of each pseudo-sex begin with the same reproductive strategy: produce medium sized gametes in approximately the same quantities. Every time an adult produces new gametes, there is a chance of a small, random mutation in the gamete size strategy. These mutations introduce a competition among multiple reproductive strategies. The model explores the conditions that may lead to this competition resulting in the emergence of two evolutionarily stable reproductive strategies: 1. produce numerous small gametes and 2. produce a handful of big gametes.
This model also allows you to test many different assumptions related to the evolution of the sperm-egg dichotomy (anisogamy) from a uniform gamete size strategy by changing the various parameters.
HOW IT WORKS
Adults move around randomly and produce gametes after random time intervals. The number of gametes produced by an adult in a given reproduction cycle depends on its reproduction budget and its gamete size strategy. The smaller the gamete size, the more gametes an adult can produce in a cycle. The larger the gamete size, the fewer gametes an adult can produce in a cycle.
The gametes also move around randomly. When two gametes touch each other, they initiate a fusion process to form a zygote. One of the zygote's parents is selected randomly to pass on both its sex and its gamete size strategy to the zygote. However, the gamete size strategy is subject to small mutations that make the target gamete size smaller or bigger.
These new zygotes are non-mobile agents. They stay put and incubate. When they reach the end of their incubation period, they become adults if their mass is equal to or larger than the critical mass. If a zygote cannot reach the critical mass, it turns black and slowly dies off.
HOW TO USE IT
The SETUP button creates the initial adult population. Each adult in the initial population is assigned one of the mating types (red or blue) randomly. They all start with the same gamete size strategy, which is half of the fixed reproduction budged.
Once the model has been set up, you are now ready to run it by pushing the GO button. The GO button starts the simulation and runs it continuously until it is pushed again.
The POPULATION-SIZE slider determines both the initial number of adults and the carrying capacity of the ecosystem. The carrying-capacity is enforced at the end of each tick, randomly removing the necessary number of adults from the ecosystem when the total number of adults exceeds the value set by the POPULATION-SIZE slider.
The GAMETE-PRODUCTION-BUDGET slider controls the total mass an adult can use to produce gametes.
The ZYGOTE-CRITICAL-MASS slider controls the critical mass a zygote needs to achieve in order to survive.
The MUTATION-STDEV slider controls the standard deviation of the random mutation in the gamete size strategy. A standard deviation is used because the mutation algorithm is based on a normal distribution with an expected value of the gamete size of the adult.
The SPEED-SIZE-RELATION? switch allows you to decide whether smaller gametes move faster than the larger gametes or all the gametes move at the same speed.
The ADULTS-MOVE? switch allows you to decide whether adults in the system move around or not.
The SAME-TYPE-MATING-ALLOWED? switch lets you choose whether or not gametes of the same color are allowed to fuse.
The ENFORCE-CRITICAL-MASS? switch lets you override the critical mass assumption. When ON, the undersized zygotes die. When OFF, all zygotes survive regardless of their total mass.
Because the some of the gametes in the model can be very very small, it is sometimes hard to observe them. Clicking the FOLLOW A RED GAMETE or FOLLOW A BLUE GAMETE button picks a randomly chosen gamete of that color and lets you follow it until it dies or fuses with another gamete.
THINGS TO NOTICE
It takes quite some time to see any meaningful changes in the adults’ gamete size strategies. Even if it seems like the system is stable, let the model run at least for 5000 to 10000 ticks.
Notice that even if the gamete size strategies of the red adults and the blue adults may evolve to be dramatically different, this does not disrupt the overall population balance. The number of the red adults and the number of blue adults stay relatively stable no matter what.
The number of adults and the of the zygotes stay relatively constant in the model, regardless of the changes in the gamete size strategies. However, the number of gametes may dramatically change. Keep an eye out for spikes in the number of gametes and see how these spikes correspond to changes in the distribution of the gamete size strategies.
THINGS TO TRY
Try changing the mutation rate (MUTATION-STDEV) and see if it makes any difference in terms of the eventual outcome of the model. Is there a scenario where anisogamy does not evolve? Is there a scenario where it evolves even faster?
Would anisogamy still evolve even if gametes of the same color can fuse? Try turning on the SAME-TYPE-MATING-ALLOWED? switch and see how it affects the eventual outcome of the model.
Does the initial distribution of mating types have an impact on the eventual outcome of the model? Try to run the model multiple times and see if the initial number of red adults versus the initial number of blue adults has anything to do with the eventual outcome of the model.
The ZYGOTE-CRITICAL-MASS value defaults to 0.45, which is just 0.05 less than the total reproduction budget of adults (0.5 or 50% of the total mass). Try modifying this value to discover whether smaller and larger critical masses requirements still result in anisogamy.
Initially, the adults in the model move around randomly. Try removing this ability by turning the ADULTS-MOVE? switch OFF. Does this make a difference in the model?
EXTENDING THE MODEL
There might be scenarios where a population might have more than 2 mating types. Try increasing the number of mating types in this model to explore if it will still evolve to an anisogamous state.
In the model, it is assumed that all gametes have relatively similar lifetimes. However, this is not the case for many organisms: often sperm have brief lives while eggs survive for a much longer period of time. What would happen if the smaller gametes in this model had a shorter lifetime and the larger gametes had longer lifetimes? Try to implement this in the model by creating an algorithm that calculates the lifetime of each gamete based on its size.
NETLOGO FEATURES
The RANDOM-NORMAL primitive is used to simulate the random mutations in gamete size strategy between the generations of adults through a normal distribution. The lifetime of adults and gametes, as well as the incubation time of zygotes, are also randomly selected from a normal distribution.
The DIFFUSE primitive is used to create a background that transitions from darker to lighter tones of cyan fluidly. This background represents a marine environment.
The PRECISION primitive is used to limit the number of floating point numbers in the size of gametes. This is a synthetic measure to prevent the model from evolving to a state where too many gametes are produced and the performance of the simulation is negatively affected.
The INSPECT and the STOP-INSPECTING-DEAD-AGENTS primitives are used to allow users to follow randomly selected gametes so that they can better observe gametes’ behavior at the individual level since the gametes are often hard to see in this model.
RELATED MODELS
- Genetic drift models
- BEAGLE Evolution curricular models
- EACH curricular models
CREDITS AND REFERENCES
Bulmer, M. G., & Parker, G. A. (2002). The evolution of anisogamy: a game-theoretic approach. Proceedings of the Royal Society B: Biological Sciences, 269(1507), 2381–2388. http://rspb.royalsocietypublishing.org/content/269/1507/2381
Togashi, T., & Cox, P. A. (Eds.). (2011). The evolution of anisogamy: a fundamental phenomenon underlying sexual selection. Cambridge University Press.
HOW TO CITE
If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.
For the model itself:
- Aslan, U., Dabholkar, S. and Wilensky, U. (2016). NetLogo Anisogamy model. http://ccl.northwestern.edu/netlogo/models/Anisogamy. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Please cite the NetLogo software as:
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
COPYRIGHT AND LICENSE
Copyright 2016 Uri Wilensky.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.
Comments and Questions
globals [ average-lifetime ; the average lifetime of adults, used to pick a random lifetime for each adult and gamete when they are born ] breed [adults adult] breed [gametes gamete] ; gametes are produced by adults for reproductive purposes breed [zygotes zygote] ; a zygote forms when two gametes fuse. they then incubate and grow into adults breed [dead-zygotes dead-zygote] ; this pseudo-breed is used to visualize zygote deaths adults-own [ mating-type ; this variable denotes the pseudo-sex of each adult, either red or yellow gamete-size ; each adult has its own evolutionary strategy for the gamete size, which is a decimal number remaining-lifetime ; adults have limited lifetimes ] zygotes-own [ mating-type gamete-size remaining-incubation-time ; zygotes have to incubate (approximately adult life / 5) before turning into adults or dying ] gametes-own [ mating-type remaining-lifetime ; gametes have limited lifetime, too (approximately adult life / 10) ] to setup clear-all ; create the blue background that represents a marine environment ask patches [ set pcolor 87 + random 5 - random 5 ] repeat 20 [ diffuse pcolor 0.25 ] ; initialize global variables set average-lifetime 500 ; create the initial adult population create-adults population-size [ set shape "adult" setxy random-xcor random-ycor ; choose the mating type randomly and change the color accordingly set mating-type one-of [ red blue ] set color mating-type ; all adults begin with the same gamete size strategy, which is the reproduction budget / 2. set gamete-size (size * gamete-production-budget) / 200 ; adult lifetime is drawn from a normal distribution with a standard deviation that is 1/10th of the average lifetime. set remaining-lifetime round (random-normal average-lifetime (average-lifetime / 10)) ] reset-ticks end to go let my-speed 1 ; the default speed for all agents ask adults[ if adults-move? [ wiggle-and-move my-speed ] maybe-produce-gametes age-and-maybe-die ] ask gametes [ if speed-size-relation? [ set my-speed precision (gamete-production-budget / (size)) 2 ] wiggle-and-move my-speed maybe-fuse age-and-maybe-die ] ask zygotes [ incubate ] ask dead-zygotes[ slowly-disappear ] enforce-carrying-capacity tick end ;;;; gamete & adult procedure ;;;; simulates a random walk to wiggle-and-move [ my-speed ] rt random 360 fd my-speed end ;;;; gamete and adult procedure ;;;; counts down the remaining lifetime of an agent and asks it to die when it has no lifetime remaining to age-and-maybe-die set remaining-lifetime remaining-lifetime - 1 if remaining-lifetime < 1 [ die ] end ;;;; adult procedure ;;;; produces gametes at random times and passes down the gamete-size strategy with the chance of a small mutation to maybe-produce-gametes ; the probability of an adult producing new gametes at each tick let gamete-production-probability 1.5 ; dictates the maximum number of decimal places in the gamete size, hence limits the minimum gamete size let gamete-size-sensitivity 2 if random-float 100 < gamete-production-probability [ ; introduce a small random mutation to the gamete size for the current reproduction cycle let inherited-gamete-size precision (random-normal gamete-size mutation-stdev) gamete-size-sensitivity if inherited-gamete-size > 0 [ ; determine the number of gametes that you will produce in the current reproduction cycle let number-of-gametes floor (((size * gamete-production-budget) / 100) / inherited-gamete-size) ; the hatch primitive automatically passes down the basic properties such as the mating type and the color hatch-gametes number-of-gametes [ set size inherited-gamete-size set shape "default" set remaining-lifetime round (random-normal (average-lifetime / 10) (average-lifetime / 100)) ] ] ] end ;;;; gamete procedure ;;;; if a gamete touches another gamete, they fuse and hatch a zygote ;;;; the hatched zygote inherits the mating type and gamete-size strategies from one of the gametes randomly to maybe-fuse if any? other gametes-here [ ; because there might be multiple other gametes on the same patch, choose one of them to be your partner randomly. let mating-partner nobody ; if same type mating is allowed, any gametes here are possible mates ifelse same-type-mating-allowed? [ set mating-partner one-of other gametes-here ] [ ; otherwise, we only consider gametes of a different type set mating-partner one-of other gametes-here with [ mating-type != [ mating-type ] of myself ] ] if mating-partner != nobody [ ; pool the mating type and gamete size strategies that are inherited from both gametes let mating-type-pool list (mating-type) ([ mating-type ] of mating-partner) let gamete-size-pool list (size) ([ size ] of mating-partner) ; choose one of the parent strategies randomly let inherited-strategy random 2 ; fuse into a zygote that has the combined size of the two gametes hatch-zygotes 1 [ set gamete-size (item inherited-strategy gamete-size-pool) set mating-type (item inherited-strategy mating-type-pool) set color (mating-type + 3) set size (sum (gamete-size-pool) * 2) set shape "zygote" ; incubation time is drawn from a normal distribution set remaining-incubation-time round (random-normal (average-lifetime / 5) (average-lifetime / 50)) ] ; after the zygote is hatched, the gametes are both taken out of the system ask mating-partner [ die ] die ] ] end ;;;; zygote procedure ;;;; counts down the incubation time, and then turns into an adult if the critical mass is achieved ;;;; if critical mass is not achieved and ENFORCE-CRITICAL-MASS? is ON, the zygote turns into a dead zygote to incubate set remaining-incubation-time remaining-incubation-time - 1 if remaining-incubation-time < 1 [ if enforce-critical-mass? [ if (size / 2) < zygote-critical-mass [ hatch-dead-zygotes 1 [ set size 1 set shape "zygote" set color black ] die ] ] set breed adults set color mating-type set shape "adult" set size 1 set remaining-lifetime round (random-normal average-lifetime (average-lifetime / 10)) ] end ;;;; dead zygote procedure ;;;; dead zygotes slowly shrink and then die when it's time to slowly-disappear set size size - 0.05 if size < 0.1 [ die ] end ;;;; observer procedure ;;;; ensures that the adult population does not exceed the carrying capacity of the system to enforce-carrying-capacity if count adults > population-size [ ask n-of (count adults - population-size) adults [ die ] ] ; if there aren't multiple adults left, stop the model if count adults < 2 [ stop ] end ;;;; interface procedure ;;;; allows the user to follow a randomly chosen gamete ;;;; as the gametes in the model are too small to see to follow-a-gamete [col] if not netlogo-web? [ ifelse any? gametes with [ color = col and remaining-lifetime > average-lifetime / 12 ] [ stop-inspecting-dead-agents let target-gamete one-of gametes with [ color = col and remaining-lifetime > average-lifetime / 12 ] inspect target-gamete watch target-gamete ][ user-message "There are no more gametes to follow!" ] ] end ; Copyright 2016 Uri Wilensky. ; See Info tab for full copyright and license.
There are 2 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Anisogamy-Plots-Revised.xlsx | data | Results of Behaviorspace Tests | over 8 years ago, by Umit Aslan | Download |
Evolution of Gamete Dimorphism (Anisogamy).png | preview | Preview for 'Evolution of Gamete Dimorphism (Anisogamy)' | over 8 years ago, by Umit Aslan | Download |
This model does not have any ancestors.
This model does not have any descendants.