Infectious disease outbreak-Mutation and Breakthrough

Infectious disease outbreak-Mutation and Breakthrough preview image

1 collaborator

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

Tags

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.2.2 • Viewed 222 times • Downloaded 21 times • Run 0 times
Download the 'Infectious disease outbreak-Mutation and Breakthrough' 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?

This model simulates the infectious disease outbreak in which the viral transmissibility evolves and breakthrough infections occur. It allows students to compare the maximum active cases and total deaths of an outbreak when 1) viral transmissibility mutation is present and absent and 2) breakthrough is present and absent. They can also investigate these scenarios at different vaccination levels.

HOW IT WORKS

The model starts with a population of susceptible (green) and vaccinated (blue) people if the vaccination rate is above 0%. Once an infected case (orange) appears in the population, it will pass infectious disease to one of the susceptible people nearby (within a radius of 1.5) at the defined original transmission rate. The infected people can transmit the disease for 14 days. No isolation or quarantine is considered in this model. By the 15th day of being infected, the infected people either die (disappear from the model) at mortality of 10%, or recover and become immune (blue).

When the mutation is enabled, some viruses' transmissibilities may mutate randomly. For example, the strain with the transmissibility of 50% may become more transmissible, e.g., 75%, or less transmissible, e.g., 30%. The infected person will infect the next susceptible person at the new transmission rate.

When breakthrough infections are enabled, the vaccinated or recovered people can be infected again (magenta color). They will be infected by the original strain at a low chance, about 0.5-1%, which is still much higher than the reality. The vaccinated or recovered people have a higher chance of being infected by the mutated strains.

A constant mortality (10%) is used to simplify the model.

Buttons, Sliders, and Switches:

*The buttons of Set up/Reset, Run/Pause, and Run a day are self-explanatory

  • The population size slider is also self-explanatory. Note, when you change the population size, you also change the population density because the simulation area remains the same.

  • The Vaccination-rate slider determined the vaccination coverage of the population.

  • The Original-transmission-rate slider determines the transmissibility of the original strain carried by the first infected case.

  • The Mutation? switch enables or disables mutation during each infection event.

  • The Breakthrough-infection? switch enables or disables the breakthrough events.

  • The +1 Infected Case button adds an infected person into the population.

  • The Watch 1 Infected Case button allows you to focus on a single infected person or stop watching the person. You may see this person eventually recover or die.

HOW TO USE IT

  1. First, choose the factors, such as population size, original transmission rate, etc.

  2. Input the Days to determine how long to run the model.

  3. Click on Set up/Reset, then +1 Infected Case, and then Run/Pause. The number of days represents the duration of the outbreak.

  4. Observe the infection changes in the population in the plots and monitors.

  5. Use Run one day to run the model in a controlled way and collect day-by-day data.

  6. Use Default Settings to retrieve the default settings.

THINGS TO TRY

There are so many things you can try in this model. Here are only very a few quick ideas:

  • How does mutation affect the outbreak duration, max active cases, and the number of breakthrough infections?

  • How does viral transmissibility evolve over an outbreak? Do you see any patterns when you use different starting transmission rates, i.e., low, medium, and high?

  • What factors may affect the number of breakthrough infections?

  • How do the breakthrough infections affect outbreak duration, max active cases, and total deaths at different vaccination levels?

RELATED MODELS

Find more epidemic models at https://sites.google.com/view/3d-science-abm/COVID-19

CREDITS AND REFERENCES

Dr. Lin Xiang (lin.xiang@uky.edu) created this module at the University of Kentucky in 2022. If you mention this model in a publication, we ask that you include the citations below.

Xiang, L. (2022). Infectious Disease Outbreak-Mutation and breakthrough infections. Department of STEM Education, University of Kentucky, Lexington, KY.

Comments and Questions

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

Click to Run Model

;;
;; This model is developed by Dr. Lin Xiang at the University of Kentucky. Contact: lin.xiang@uky.edu
;;
;; If you see this page rather than a "download" button when downloading the model, click the "download" icon
;; in your browser to download this model file.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



turtles-own [day transmissibility immunity infection mortality]
Patches-own [ ]
Globals [watching max-daily-cases Transmission-rate num-of-breakthrough current-mortality]

to-report average-transmission-rate
  report mean [transmissibility] of turtles with [color > 22 and color < 28]
end 

to setup
  clear-all
  setup-turtles
  setup-patches

  set watching false
  set num-of-breakthrough 0

  reset-ticks
end 

to setup-turtles
  create-turtles Population-size * (100 - vaccination-rate) * 0.01
  [set color 68
    set size 1.25
    set shape "person-1"
    set day 0
    set transmissibility 0
    set immunity 0
    set infection 0
    set mortality 0
    setxy random-xcor random-ycor
  ]

  create-turtles Population-size * (vaccination-rate * 0.01)
  [set color blue
    set size 1.25
    set shape "person-1"
    set day 0
    set transmissibility 0
    set immunity 50
    set infection 1
    set mortality 0
    setxy random-xcor random-ycor
  ]
end 

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

to go

  if ticks >= Days [stop]
  move
  transmission
  sickness
  find-max-daily-cases
  tick
end 

to move
  ask turtles
  [right random 360 forward 1]
end 

to add-an-infected-person
  ask one-of turtles with [color = 68]
  [ set transmissibility Original-transmission-rate
    set immunity transmissibility
    set infection infection + 1
    set color (transmissibility + 444.5) / 19.8
    set mortality 10
    setxy random-xcor random-ycor
  ]
end 

to transmission
  ask turtles with [color > 22 and color < 28]
  [let susceptible-person one-of other turtles in-radius 1.5 with [color = 68]
    if susceptible-person != nobody
    [ set transmission-rate [transmissibility] of self
      set current-mortality [mortality] of self
      ask susceptible-person
      [ if random 100 < transmission-rate
        [ifelse Mutation? = true
          [ifelse random 100 < 25
              [set transmission-rate (1 + random 100)         ;transmissibility mutate randomly
               set infection infection + 1                    ;count the times being infected
               set transmissibility transmission-rate        ;set the mutated transmissibility
               set color (transmissibility + 444.5) / 19.8   ;set the color according to the transmissibility
               set immunity transmissibility]                 ;set the immunity level the same as the trasmissibility level
               ;set mortality (1 + random 20)]
              [set infection infection + 1
               set transmissibility transmission-rate
               set color (transmissibility + 444.5) / 19.8
               set immunity transmissibility
               set mortality current-mortality]]
          [set infection infection + 1
            set transmissibility transmission-rate
            set color (transmissibility + 444.5) / 19.8
            set immunity transmissibility
            set mortality current-mortality]]
        ]
      ]
    ]


  if Breakthrough-infection? = true              ;breakthrough
  [if count turtles with [color = blue] > 0
   [ask turtles with [color > 22 and color < 28]
   [let breakthrough-person one-of other turtles in-radius 1.5 with [color >= blue]
    if breakthrough-person != nobody
    [ set transmission-rate [transmissibility] of self
      set current-mortality [mortality] of self
      ask breakthrough-person
       [if random 1000 < (0.05 * abs ([immunity] of self - transmission-rate) + 2)   ; compare the imminuty level with the stain transmissibility to determine the probability of breakthrough (larger difference lead to more breakthrough. Plus 2 to represent there is no 100% vaccination protection.
        [if random 100 < transmission-rate
        [ifelse Mutation? = true
         [ifelse random 100 < 25
          [set transmission-rate (1 + random 100)
             set infection infection + 1
             set transmissibility transmission-rate
             set color (transmissibility + 444.5) / 19.8
             set immunity transmissibility
             ;set mortality (1 + random 20)
             set num-of-breakthrough num-of-breakthrough + 1]
          [set transmissibility transmission-rate
             set infection infection + 1
             set mortality current-mortality
             set color (transmissibility + 444.5) / 19.8
             set immunity transmissibility
             set num-of-breakthrough num-of-breakthrough + 1]]
         [set transmissibility transmission-rate
             set infection infection + 1
             set mortality current-mortality
             set color (transmissibility + 444.5) / 19.8
             set immunity transmissibility
             set num-of-breakthrough num-of-breakthrough + 1]]
        ]
      ]
     ]
    ]
   ]
  ]
end 

to sickness
  ask turtles with [color > 22 and color < 28]
  [set day day + 1
    if day >= 15
    [ifelse random 100 < 10
     [die]
     [ifelse infection <= 1  [set color blue ][set color 126]]
  ]
  ]
end 

to watch-an-infected-person
  watch one-of turtles with [color > 22 and color < 28]
end 

to find-max-daily-cases
  if count turtles with [color > 22 and color < 28] > max-daily-cases        ;Count the infectious.If it is greater than the current record of max daily cases
  [set max-daily-cases count turtles with [color > 22 and color < 28]]       ;update the max daily case
end 

There are 5 versions of this model.

Uploaded by When Description Download
lin xiang about 2 years ago Add modes of transmission Download this version
lin xiang about 2 years ago Minor adjustment Download this version
lin xiang about 2 years ago Add the time control Download this version
lin xiang about 2 years ago update the existing settings Download this version
lin xiang over 2 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Infectious disease outbreak-Mutation and Breakthrough.png preview Preview for 'Infectious disease outbreak-Mutation and Breakthrough' over 2 years ago, by lin xiang Download

This model does not have any ancestors.

This model does not have any descendants.