Evolution of antibiotic resistance
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model reveals the same scenario in the giant petri dish experiment on the evolution of antibiotic resistance conducted by the researchers from Harvard Medical School and Technion-Israel Institute of Technology (http://news.harvard.edu/gazette/story/2016/09/a-cinematic-approach-to-drug-resistance/). Mutation and reproduction rates are included to expand user's exploration of the process.
HOW IT WORKS
- The antibiotic concentrations are set at low, medium, high, and peak levels from two sides to the center of the model.
- The model starts from the strain with resistance between 1-2.
- The bacteria reproduce asexually.
- At a chance of defined mutation-rate, the offspring resistance may increase or decrease within the mutation range.
- In each tick, all bacteria may move a small distance in a random direction.
- User may adjust the growth rates of the strain with different resistance. Note: we should not assume the growth rate being the same or different. Remember, this is a model. It helps us generate ideas. We need empirical evidence to test the ideas.
- The nutrient in a patch may run out and lead to the death of the bacteria on the patch. But the nutrient is refilled in the next tick on the patch (which does not happen in real bacterial culture).
- The model has two views. The bacteria view gives a more realistic view, while the icon view allows the model to run faster.
WHAT CAN YOU TRY?
Quite a few things you can try in this simulation:
- How does the mutation range affect the evolution of antibiotic resistance?
- How does the growth rate affect the competition among strains with different resistance when antibiotics are present?
- How does the growth rate affect the competition among strains with different resistance when antibiotics are absent?
- What happens when all strains have the same growth rate?
- Does the strain with higher resistance always appear where the antibiotic concentration is higher?
- What will happen when you keep increasing dose?
CREDITS AND REFERENCES
This model is made by Dr. Lin Xiang in 2017 and revised in 2021 at the University of Kentucky. If you mention this model in a publication, we ask that you include the citations below.
Xiang, L. (2021). Evolution of antibiotic resistance. Department of STEM Education, University of Kentucky , Lexington, KY.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/.
Comments and Questions
breed [bacteria bacterium] bacteria-own [resistance age division] patches-own [drug] globals [count-clone] to setup ca ifelse Choose-view = "Bacteria" [setup-1][setup-2] reset-ticks end to setup-1 setup-bacteria-1 setup-patches ask bacteria [survival] end to setup-2 setup-bacteria-2 setup-patches ask bacteria [survival] end to setup-bacteria-1 create-bacteria 500 [ set size 0.75 set shape "bacteria" set age 1 set resistance 1 + random-float 1 set-color-resistance setxy random-xcor random-ycor] end to setup-bacteria-2 ask patches with [abs pxcor = max-pxcor] [sprout-bacteria 1 [set size 0.85 set-shape set age 1 set resistance 1 + random-float 1 ;set color 6] set-color-resistance] ] end to set-color-resistance if resistance < 10 [set color 6] if resistance < 25 and resistance >= 10 [set color 66] if resistance < 50 and resistance >= 25 [set color 46] if resistance >= 50 [set color 15] end to set-shape if resistance < 10 [set shape "face happy"] if resistance < 25 and resistance >= 10 [set shape "face neutral" ] if resistance < 50 and resistance >= 25 [set shape "face sad"] if resistance >= 50 [set shape "evil-b"] end to setup-patches ask patches [set pcolor 3.25 set drug 50] ;first set peak drug zone ask patches with [pxcor > max-pxcor * 0.2] [set pcolor 2.5 set drug 25] ;high drug zone ask patches with [pxcor < min-pxcor * 0.2] [set pcolor 2.5 set drug 25] ;high drug zone ask patches with [pxcor >= max-pxcor * 0.5] [set pcolor 1.75 set drug 10] ;medium drug zone ask patches with [pxcor <= min-pxcor * 0.5] [set pcolor 1.755 set drug 10] ;medium drug zone ask patches with [pxcor >= max-pxcor * 0.75] [set pcolor 1 set drug 1] ;low drug zone ask patches with [pxcor <= min-pxcor * 0.75] [set pcolor 1 set drug 1] ;low drug zone end to go tick ifelse Choose-view = "Bacteria" [ask bacteria [move reproduce-1 survival death] overpopulation] [ask bacteria [grow reproduce-2 survival death]] if count bacteria <= 0 [stop] end to move if random 100 < 5 [rt random 360 fd 0.5 survival] set age age + 1 end to survival if drug > resistance [die] end to reproduce-1 if color = 6 [if random 20 < Low-res-growth-rate [reproduction]] if color = 66 [if random 20 < medium-res-growth-rate [reproduction]] if color = 46 [if random 20 < high-res-growth-rate [reproduction]] if color = 15 [if random 20 < superbug-growth-rate [reproduction]] end to reproduction hatch 1 [if random 100 < Mutation-rate [ set age 1 set shape "bacteria" ifelse random 2 = 0 [set resistance resistance + random-float mutation-range][set resistance resistance - random-float mutation-range] set-color-resistance survival fd 1 ]] end to death if age >= 10 [die] end to overpopulation ask patches [ let clone bacteria-here if clone != nobody and count bacteria-here > 25 [ ; if random 2 = 0 [ ask clone [die]]] ; ] end to grow set age age + 1 end to reproduce-2 if color = 6 [if random 20 < Low-res-growth-rate [reproduction-1]] if color = 66 [if random 20 < medium-res-growth-rate [reproduction-1]] if color = 46 [if random 20 < high-res-growth-rate [reproduction-1]] if color = 15 [if random 20 < superbug-growth-rate [reproduction-1]] end to reproduction-1 let p one-of neighbors with [not any? turtles-here] if p != nobody [ hatch 1 [ set age 1 set-color-resistance set-shape if random 100 < Mutation-rate [ ifelse random 2 = 0 [set resistance resistance + random-float mutation-range] [set resistance resistance - random-float mutation-range] ] face p move-to p survival] ] end to increase-dose ask patches [set drug drug + 10 if drug >= 200 [set drug 200]] let no-drug one-of patches with [drug >= 200] if no-drug != nobody [user-message ("Certain zones have reached the highest dose. We can't increase it any higher.Click 'OK' to continue.")] ask patches [ if mean [drug] of patches = 200 and variance [drug] of patches = 0 [set pcolor 0] ] end to decrease-dose ask patches [set drug drug - 5 if drug <= 0 [set drug 0]] let no-drug one-of patches with [drug <= 0] if no-drug != nobody [user-message ("There is no antibiotics in certain zones. Click 'OK' to continue.")] ask patches [ if mean [drug] of patches = 0 and variance [drug] of patches = 0 [set pcolor 3] ] end
There are 4 versions of this model.
This model does not have any ancestors.
This model does not have any descendants.