Infectious Disease Outbreak-Immunity durability and booster vaccination

Infectious Disease Outbreak-Immunity durability and booster vaccination 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.2.2 • Viewed 54 times • Downloaded 5 times • Run 0 times
Download the 'Infectious Disease Outbreak-Immunity durability and booster vaccination' 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 allows students to examine the effect of immunity durability on the max daily cases and epidemic duration in a population. It helps students understand why booster vaccination is needed.

HOW IT WORKS

  1. Susceptible-infectious-recovered (SIR) model is used to build the present model.

  2. The model starts with a population of susceptible people (green) and one infectious person (orange). The infectious person carries the virus strain with the defined initial transmission rate.

  3. In each tick, each infectious person produces a new virus. The virus transmission rate either stays the same or mutates to become more or less transmissible at the defined mutation rate. The transmission rates are color codes.

  4. The new virus may float 0.5 steps in a random direction and infect one of the susceptible people within a radius of 1.5 at its transmission rate. The virus loses its ability to infect people if no susceptible people are within the infection radius.

  5. Infectious people remain contagious for six days. They either recover (become blue) or die at a mortality rate of 10%. No new people join this model to maintain the population density.

  6. Users may set up the percentage of vaccinated people in the population. The present model assumes the vaccinated people will not be infected even if viruses mutate.

  7. Vaccinated and recovered people lose immunity after the time defined by the "immunity durability." This model assumes that the durabilities of natural infection and vaccine-induced immunity are the same.

  8. The booster vaccination extends the immunity durability of a defined percentage of vaccinated people. For example, when immunity durability last 30 days, a booster rate of 50% will extend 50% of the vaccinated people's immunity durability for another 30 days. The unboosted people will not be boosted anymore. Therefore, vaccinated people will decrease over time if the booster rate is less than 100%.

HOW TO USE IT

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

  2. Click on Set up/Reset, then Run/Pause. The model is set to stop when there are no infectious people.

  3. Observe the infection changes in the population in the plot and monitor.

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

  5. The people in the model are color-coded in two ways: SIR coloring and transmission rate coloring. The mode of SIR coloring displays the population based on people's health status (i.e., susceptible, infectious, or recovered); the mode of transmission rate coloring displays the population based on the virus transmissibility when the people get infected (i.e., cyan and brown indicate the people who are infected by the less transmissible strains while red and purple indicate the people who are infected by the highly transmissible strains). Use the button Switch color-coding mode or the switch Color-coding-modes to switch between the two modes.

  6. Use the slider "Immunity-durability" to test how the durability of immunity affects the severity and duration of an outbreak.

  7. Use "booster-rate" to test how booster rate affect the severity and duration of an outbreak.

THINGS TO TRY

Observe the prevalence of color-coded strains in the simulation window and plots to examine the prevalence of different strains over time.

Collect the data of the max daily cases and epidemic duration to examine the effect of durabilities of immunity in populations with different densities.

Collect the data of the max daily cases and epidemic duration to examine the effects of booster rates in a population.

RELATED MODELS

Find this model series at http://3dsciencemodeling.com

  • Infectious Disease Outbreak-Basic Phenomenon
  • Infectious Disease Outbreak-Transmission and mortality
  • Infectious Disease Outbreak-Population Comparison
  • Infectious Disease Outbreak-HealthCare, Isolation and Quarantine
  • Infectious Disease Outbreak-Social distancing
  • Infectious Disease Outbreak-Vaccination
  • Infectious Disease Outbreak-SEIR model
  • Infectious Disease Outbreak-variants

CREDITS AND REFERENCES

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

Xiang, L. (2023). Infectious Disease Outbreak-Immunity durability and booster vaccination. Department of STEM Education, University of Kentucky, Lexington, KY.

CC BY-NC-SA 4.0

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

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

Click to Run Model

breed [persons person]
breed [viruses virus]


persons-own [
  infectious-period
  susceptible
  infectious
  recovered
  vaccination
  p-contagious
  immunity
  immunity-duration
]

viruses-own [
  infection   ;viral tranmission rate
  infection-period   ;viral viability
]

Patches-own [ ]
Globals [max-daily-cases infection-number]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;   Setup procedures
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to setup
  clear-all
  set-default-shape viruses "c-virus-0"
  set-default-shape persons "person-0"

  set-patches
  setup-people
  add-an-infectious
  color-code

  reset-ticks
end 

to set-patches
  ask patches [set pcolor 9 + random-float 1]
end 

to setup-people
  ask n-of population patches
  [sprout-persons 1
    [set size 0.9
     set-susceptible
     set immunity 0
     set p-contagious 0
     set infectious-period 0
     set immunity-duration 0]
  ]


 let vaccinated (population * Vaccination-rate / 100)
  ask n-of vaccinated persons with [susceptible = true and infectious = false]
  [set-vaccinated
   set immunity Initial-Transmission-Rate
   set p-contagious Initial-Transmission-Rate
   ]

set infection-number 0
end 

to add-an-infectious
  ask one-of persons
  [set-infectious
   set p-contagious Initial-Transmission-Rate
   hatch-viruses 1 [
      set size 0.5
      set infection Initial-Transmission-Rate
      set-v-color
  ]]
end 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;   Go procedures
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to go

  if ticks > 0 and not any? persons with [susceptible = false and infectious = true] [stop]


  move
  produce-viruses
  infect
  virus-ability
  recover
  immunization-vanishing
  color-code
  find-max-daily-cases
  plot-levels
  tick
end 

to move
  ask viruses
  [right random 360 forward 0.5]
end 

to produce-viruses
  ask persons with [susceptible = false and infectious = true]                   ;ask infectious people
    [hatch-viruses 1                               ;produce a new virus
      [set size 0.5                                ;set the size of a virus
       ifelse random 100 < Virus-mutation-rate           ;set virus mutation rate
          [set infection 1 + random 100]            ;infection mutates to a rate between 1 to 100%
          [set infection [p-contagious] of myself]  ;not mutate
      set-v-color]]                                ;set virus color based on infection rate
end 

to infect
  ask viruses
  [if any? persons with [susceptible = true] in-radius 1.5     ;if any susceptible people nearby
    [let infected-person one-of persons with [susceptible = true] in-radius 1.5       ;pick one of the susceptible people
      if random 100 < infection
       [move-to infected-person
        ask infected-person
          [set-infectious
           set p-contagious [infection] of myself
           set immunity [infection] of myself        ;update immunity to the infected strain
                  ]

       set infection-number infection-number + 1 die]]    ;ask virus to die after infecting a person, update total of infected people
  ]
end 

to virus-ability
 ask viruses
  [ifelse infection-period >= 2
    [die]
    [set infection-period infection-period + 1]
  ]
end 

to recover
  ask persons with [susceptible = false and infectious = true]
  [ifelse infectious-period >= 7
    [ifelse random 100 < 10
      [die]
      [set-recovered set infectious-period 0]]   ;mortality equals 10%
    [set infectious-period infectious-period + 1]
  ]
end 


;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;   supporting procedures
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to set-v-color   ; set colors of viruses
  (ifelse
    infection >= 80  [set color 15]
    infection < 80 and infection >= 60 [set color 127]
    infection < 60 and infection >= 40 [set color 117]
    infection < 40 and infection >= 20 [set color 35]
    infection < 20  [set color 75])
end 

to plot-levels ;; this creates creates the bar graph
    set-current-plot "People infected by variants with different transmissibilities"
    clear-plot
    plot-pen-down
    set-current-plot-pen "< 20%"
  plotxy 0 count persons with [p-contagious < 20 and p-contagious > 0]
    set-current-plot-pen "20%~39%"
  plotxy 1 count persons with [p-contagious < 40 and p-contagious >= 20]
    set-current-plot-pen "40%~59%"
  plotxy 2 count persons with [p-contagious < 60 and p-contagious >= 40]
    set-current-plot-pen "60%~79%"
  plotxy 3 count persons with [p-contagious < 80 and p-contagious >= 60]
    set-current-plot-pen ">= 80%"
  plotxy 4 count persons with [p-contagious >= 80]
end 

to set-p-color  ; set colors of people
  ask persons
 [ (ifelse
    p-contagious >= 80 and vaccination = false [set color 15]
    p-contagious < 80 and p-contagious >= 60 and vaccination = false [set color 127.5]
    p-contagious < 60 and p-contagious >= 40 and vaccination = false [set color 117.5]
    p-contagious < 40 and p-contagious >= 20 and vaccination = false [set color 36]
    p-contagious < 20 and p-contagious > 0 and vaccination = false  [set color 75]
    p-contagious = 0 [set color 7]
    )]
end 

to set-SIR-color
  ask persons
 [ (ifelse
    susceptible = true and infectious = false and recovered = false and vaccination = false [set color 56]
    susceptible = false and infectious = true and recovered = false and vaccination = false [set color 27]
    susceptible = false and infectious = false and recovered = true and vaccination = false [set color 97]
    susceptible = false and infectious = false and recovered = false and vaccination = true [set color 97])]
end 

to color-code
 (ifelse
  Color-coding-modes = "Susceptible-infectious-recovered" [set-SIR-color]
  Color-coding-modes = "Variant transmission rates" [set-p-color])
end 

to find-max-daily-cases
  if count persons with [susceptible = false and infectious = true] > max-daily-cases        ;Count the infectious.If it is greater than the current record of max daily cases
  [set max-daily-cases count persons with [susceptible = false and infectious = true]]       ;update the max daily case
end 

to immunization-vanishing
  ask persons with [susceptible = false and infectious = false]       ;people are vaccinated or recovered
    [ifelse immunity-duration < Immunity-Durability        ;if they have not been vaccinated/recovered for the immunity duration
      [set immunity-duration immunity-duration + 1]        ; update the immunity duration
      [ifelse vaccination = true
       [ifelse random 100 < Booster-rate                ;otherwise, at the chance of booster rate
         [set immunity-duration 0]                      ;get a booster--reset the duration
         [set-susceptible                               ; or become susceptiable
          set immunity 0
          set p-contagious 0
          set infectious-period 0
          set vaccination false
          set immunity-duration 0]]

        [set-susceptible                               ; or become susceptiable
          set immunity 0
          set p-contagious 0
          set infectious-period 0
          set vaccination false
          set immunity-duration 0]]
  ]
end 

to set-susceptible
  set susceptible true
  set infectious false
  set recovered false
  set vaccination false
end 

to set-infectious
  set susceptible false
  set infectious true
  set recovered false
  set vaccination false
end 

to set-recovered
  set susceptible false
  set infectious false
  set recovered true
  set vaccination false
end 

to set-vaccinated
  set susceptible false
  set infectious false
  set recovered false
  set vaccination true
  set color 97
end 

There is only one version of this model, created about 1 year ago by lin xiang.

Attached files

File Type Description Last updated
Infectious Disease Outbreak-Immunity durability and booster vaccination.png preview Preview for 'Infectious Disease Outbreak-Immunity durability and booster vaccination' about 1 year ago, by lin xiang Download

This model does not have any ancestors.

This model does not have any descendants.