Ophiocordyceps Unilateralis Model
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This is a model that shows the relation between Ophiocordyceps unilateralis and Carpenter ants. The goal is to have it mimic natural interactions found in the wild while allowing you to change features such as the impacts of hyperparasite and plant density.
Initially, there will be a set number of infected ants. These ants have an infection time where they will need to pass the infection onto the plant before it runs out. The Ophiocordyceps unilateralis can not continue its life cycle. Once the patch is infected, it will have a chance to infect the ants adjacent to it to further spread the infection.
This model has two types of agents, turtles, and patches. The turtles are free-moving agents, whereas the patches are stationary. We have coded the turtles to be ants, and the patches will be our plants.
Within this model, you can manipulate the number of ants that appear in the model. The population is initially set as the carrying capacity as the primary focus is on the Ophiocordyceps unilateralis' life cycle, not the carpenter ants. The following two sliders control the patch variables. The first being the number of initial patches infected. The model interprets how many patches are initially green, then converts them to being infected (red). There is the ability to control the number of plants that appear in the lattice. The model takes the number you input, then randomly scatters the plants throughout the lattice. The final slider is a simple on-off slider that controls the inclusion of hyperparasites.
HOW IT WORKS
The model is initialized with 500 ants, 100 plants, and 10 out of the 100 plants are innoculated with the fungus.The ants then have the ability to move around freely in a random fashion either infected (red) or healthy (black).The fungal spores from the infected red plants have the ability to infect ants that travel through the spores. Once infected, the ants seek out healthy green plants to further the infection.
Further summary of specific variables and components are summarized below with an explanation of how each one functions in this model.
Number of Ants
The population of ants is important within this model, treat the ants in this case as the fuel for the Ophiocordyceps unilateralis. If there is a lack of fuel, the infections can not take hold, and then the fungus dies out. Within this model, you can change the initial ant population size, as it initially starts at 500 (Carrying Capacity).
Number of Plants
The number of plants is how we control forest density. The plants can either be red (infected) or green (healthy). There is an inital amount of the plants that are infected (Initial Infection Slider), the rest of the plants are infected by ants that have been controlled by the fungal spore. When the plant becomes infected, it has a imposed healing time that will return it to a healthy state.
Initial Infection
This feature allows for the control of how many of the plants will start infected. You can select from zero to the number of plants.
Hyperparasites
As found in the wild, hyperparasites will impact how infectious the spores can be. The slider works as a binary function as zero means off and one means that it is turned on.
Graph Analysis
The graph labeled "Ant Population" has three datasets that it tracks as the model runs: Alive (Green), Infected (Red), and Infected Plants (Dark Red). The graph will allow for easy visualization of trends over time, understanding data at a particular point in time, or graphing trends.
Assumptions
Within every model, there is a list of assumptions that are needed to have it fully functioning. There may be a lack of literature to back decisions, efficiency, or simplifications. This model is not an exception to the rule, but all assumptions are justified. The model has four categories of assumptions: being the ants, periods, recovery, and environment.
With the primary focus being on the fungi, there are quite a few simplifications and assumptions made to create the ants. The movement pattern which they follow is a randomized movement pattern that allows for some variety and realism. The ants cannot age or die. The model should focus on them dying from fungal infections, not natural causes. The last assumption with the ants is their reproduction mechanism. As there is no queen, reproduction is handled by the probability function. The numbers for offspring, carrying capacity, and chance to reproduce, were all adjusted by hand to find a natural equilibrium in the populace.
The second set of assumptions is the infection time of both the ants and plants. Both the patches and the turtles have the same infection time. In this case, there is a difference. The patch infection time is multiplied by a factor of seven. This solves two issues, the plants not staying infected long enough to spread the spores. Netlogo's tick speed is too fast to ensure that the agents have the likelihood of infection. The second issue it solves is allowing the ants to succumb to fungal death. The ants then have a fixed amount of time inwhich they can successfully inoculate a plant with the spores or they die off trying.
The second set of assumptions is based on the infection time of both the ants and plants. Both the patches and the turtles have the same infection time. In this case, there is a difference, the patches infection time is multiplied by a factor of seven. This is to solve two issues, the first being that the plant would not stay infected long enough to spread the spores. Netlogo’s tick speed is too fast to ensure that the agents have the likelihood of infection, thus days turned to weeks. The second issue it solves is that the ants will not die once they inoculate a plant, thus the time that they are alive gives them enough time to potentially have a successful inoculation or to die off trying. The recovery period's purpose is to state when the spores will not be viable. It is the same time period of four to ten days, but this decision was based on a lack of literature stating how long the spores can infect ants that roam the forest floor.
The last assumption is the environment. Seasons and weather are not factors within this model due to limitations of technical skills. The fungi also have to compete with predators that feed on the carpenter ants, this is another factor that is not apparent in the model. With both in mind, the model mimics an isolated populace, likely in a controlled environment.
HOW TO USE IT
Each tick is considered to be a day within this model.
The SETUP button resets the interface, plot, and the ticks. It then randomly distributes the ants, plants, and infected plants throughout the lattice.
The GO button starts the movement of the ants, the infection process, the graph, and everything else that runs within the model.
Set the sliders to the desired parameters, then press SETUP, GO. This will run the model until you reclick the GO button.
THINGS TO TRY
Within the model, there are a few interesting outcomes that can arise. The first being that the fungi can easily kill off the carpenter ant species if hyperparasitism is not a factor. The second being how initial infections typically determine whether the population will survive. Finally, it is an interesting tool to experiment with to determine how these two species might interact in the wild.
The first parameters to try out are 500 ants, 50 plants, and 5 initially infected. It was found that you can get two completely different graphs with the inclusion of hyperparasites. One has a stable population whereas the other completely dies out.
The second parameter to try out keeps the 500 ants, 100 plants, and 10 initially infected. The model will output a left skew for the infections which can be mitigated with the inclusion of hyperparasites.
It is an interesting model to see how hyperparasite might be crucial to the survival of Ophiocordyceps unilateralis. Play around with the model to see what other additional outcomes you can come up with.
CREDITS AND REFERENCES
This model was built off of the virus model available within the Netlogo library.
Wilensky, U. (1998). NetLogo Virus model. http://ccl.northwestern.edu/netlogo/models/Virus. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Comments and Questions
turtles-own [ ;Determines the variables that the ant can have. sick? sick-time ticks-since-here] patches-own [ ;Determines the variables that the patches can have. countdown ] globals [ ;This is where we define our variable chance-reproduce carrying-capacity plant-heal-time ] to setup clear-all setup-constants ;Runs the setup-constants command setup-turtles ;Runs the setup-turtles command update-display ;Runs the update-display command ask patches [ ;Sets up the "dirt" and gives all patches a random heal time for plants set pcolor brown set countdown random plant-heal-time ] ask n-of plants patches [ set pcolor green ] ;Asks random patches equal to the number of plants you've selected on the slider to become plants ask n-of(Initial-Infections) patches with [pcolor = green] [ set pcolor 12 ] ;Makes a percentage of the population infected, you are able to control this with the slider on the interface reset-ticks end to setup-turtles ;Sets up the ants as an agent create-turtles number-of-ants [ set shape "bug" ;Changes the ants shape from a dot to an ant setxy random-xcor random-ycor ;This creates the ants and places them randomly throughout the lattice set sick-time 0 ;Makes sure that the ants do not start off infected set size 1.5 ;Sets the size of the ants to be 1.5 times the size of the patches get-healthy ] ;Ensures the ants start off as healthy end to get-sick ;This is a command to ensure the infected ants turn red set sick? true set color red set sick-time 0 end to get-healthy ;This is a command to ensure healthy ants turn black and don't gain the side effects of being sick set sick? false set sick-time 0 end to setup-constants set carrying-capacity 500 ;Fixed Carrying Capacity of the model set chance-reproduce 0.5 ;As there is not a functional queen, we are purely looking at foragers. To keep the population from plummiting we add a chance to reproduce set plant-heal-time (4 + random-float 6) * 7 ;As the model runs quite quickly, this command makes it so the heal time of the plant is converted to weeks. The process still takes 4 - 10 days but it is scaled to weeks for the sake of the model. end to go ask turtles[ ;This is the checklist the ant goes through per tick, it ages, moves, and checks for infection. reproduce ;Runs the reproduce command infect ;Runs the infect command if sick? [ time-to-die ] ;If the ant is sick, it will run the time to die command if sick? [ set sick-time sick-time + 1 ] ;If the ant is sick, starts up the command for sick time as a countdown for the time to die command ask turtles with [ not sick?] [ ;If the turtle is healthy, then it just moves move ] ] ask turtles [ ;This set of code is used to mimic the ant finding a plant in the wild to death grip if sick?[ face min-one-of patches with [pcolor = green] [distance myself] ;Asks the ant to face the direction of the closest green plant if pcolor = brown [ ;Asks the ant if the patch underneath is brown, if so then it must continue to move move ] if pcolor = green [ ;Asks the ant if the patch underneath is green, if so then it must stop and start the infect-plant command infect-plant] if pcolor = 12 [ ;Forces the ant to stay stationary once the plant has turned red forward 0] ] ] ask patches with [pcolor = 12] [ ;Asks if the plant is infected, if so then start the heal plant command heal-plant] ;excel ;Allows for easy data collection tick end to update-display ;Just stops rainbow coloured ants from occuring ask turtles ;Just asks the turtles what their health conditions are like. If they are healthy then they get coloured black, if sick then they are coloured red [set color ifelse-value sick? [ red ] [ black ] ] end to Time-to-die ;Used to kill off sick ants who haven't sucessfully completed the Death Grip if sick-time > (4 + random-float 6) ;This is how long it takes for the whole life cycle to occur 4-10 days. Thus if it has not successfully completed a stage in its life cycle then it shall die out [die] ;Pretty self explanitory end to reproduce ;This is to stabalize the ant population, its a randomized birth rate. ask turtles with [not sick?] [ ;Asks if the number of ants on the screen is less than the carrying capacity, if count turtles < carrying-capacity and random-float 250 < chance-reproduce ;if so then all healthy ants have a chance to produce an offspring [ hatch 1[ lt 45 fd 1 ;Movement pattern for the new ant get-healthy ;Makes sure the new ant is healthy ] ] ] end to move ;Used to mimic ants movement rt random 100 ;Right turn x amount lt random 100 ;Left turn x amount forward 1 ;forward 1 end to infect ;Infects ants that come into contact with plant ask turtles with [not sick?] [ if pcolor = 12[ ;This asks all the turtles that are not sick if they are on an infected plant if random-float 100 < (10 + random-float 15)[ ;Statistical chance of being infected from the spores, this was taken from a study stating that 10 - 15% of the forager population was infected from the spores. get-sick ;Starts the get-sick procedure forward 10 ;This is a feature added to stop the ant from being locked to the infected plant ] ] ] end to infect-plant ;This is the code equivalent of the Death Grip ask one-of turtles [ if sick?[ ;This asks each of the ant if they are sick, if true then move onto the next line of code. if pcolor = green[ ;It then confirms if the patch the ant occupies is green, it cannot be red or brown as these are not viable plants if random-float 100 < (61.8 - (hyperparasite * 55.4)) [ ;This is the statistical chance of a proper a successful inoculation. There is a 64% chance of being successful without hyperparasites involed. If you select the hyperparasites to be in the model, it changes from a zero to a one. This allows for the subtraction of 55.4% success rate as the parasite is only has 8.6% success rate when hyperparasites are involved set pcolor 12] ;Changes the green plant into an infected red plant ] ] ] end to heal-plant ;Allows for the plant to become non contagious if pcolor = 12 [ ;Asks if the patch colour is dark red ifelse countdown <= 0 ;Asks if the countdown is less than or equal to zero, if true then it can run the next command [ set pcolor green ;Sets the patch color back to green set countdown plant-heal-time ] ;Restarts the plant heal time to zero because it is no longer infected [ set countdown countdown - 1 ] ;If the countdown was greater than zero, this command runs which just subtracts one from the countdown ] end ;to excel ;This section of the model is for data collection, It is greyed out so you don't make random excel files on your computer ;if ticks >= 300 [ ;Allows the model to run for 300 ticks prior to running the save command ;export-all-plots (word "High " random-float 1.0 ".csv") ;The premise is that this code will export the plot as a .csv file with the name "high" followed by a randomly generated number. We do this to ensure that the file is not overwritten within the folder. ;export-all-plots (word "Medium " random-float 1.0 ".csv") ;export-all-plots (word "Low " random-float 1.0 ".csv") ;export-all-plots (word "Hyper-High " random-float 1.0 ".csv") ;export-all-plots (word "Hyper-Medium " random-float 1.0 ".csv") ;export-all-plots (word "Hyper-Low " random-float 1.0 ".csv") ;setup] ;Allows for the model to restart to insure a loop is created ;end
There is only one version of this model, created over 3 years ago by Hunter Clark.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Ophiocordyceps Unilateralis Model.png | preview | Preview for 'Ophiocordyceps Unilateralis Model' | over 3 years ago, by Hunter Clark | Download |
This model does not have any ancestors.
This model does not have any descendants.