SEIR-Model-Antivirals
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 susceptible-exposed-infectious-recovered (SEIR) model for seasonal influenza, incorporating the disease control strategy of antivirals. The model uses gamma-distributions to determine the lengths of the incubation (latency) and infectious periods for each individual.
Susceptible individuals are white, exposed individuals are yellow, infectious individuals are red, and recovered individuals are green. Non-treated individuals have people shape; antiviral treated individuals have kite (default) shape.
HOW IT WORKS
Prior to the start of the simulation, a single individual is infectious; all others are susceptible. Individuals move randomly in the world and turn around at the world's edge.
When a susceptible individual comes into contact with an infectious individual there is a probability (chance) that the susceptible individual will become infected. If a susceptible individual becomes infected, the individual moves into the exposed class. After a gamma-distributed time, an exposed individual moves into the infectious class. Infectious individuals are able to infect others. After a gamma-distributed time, an infectious individual recovers and moves into the recovered class. Recovered individuals gain permanent immunity.
Once each day, an infectious individual, who has not been infectious too long, may be treated with antivirals. A gamma-distributed time benefit reduces the length the treated infectious individual will be infectious.
The model simulation ends when no individuals are infected (exposed or infectious).
HOW TO USE IT
The INITIAL-POPULATION slider sets the number of individuals; units = individuals.
The TICKS-PER-DAY slider sets the number of computational ticks that correspond to one day; units = ticks / day.
The TRANSMISSION-CHANCE slider sets the probability that contact between an infectious individual and a susceptible individual will result in the susceptible individual becoming infected; units = percent.
The AVERAGE-INCUBATION-PERIOD slider sets the mean value of the incubation period, which is used in calculating the gamma-distribution for the time in the exposed class; units = days.
The INCUBATION-STANDARD-DEVIATION slider sets the standard deviation of incubation length, which is used in calculating the gamma-distribution for the time in the exposed class; units = days.
The AVERAGE-INFECTIOUS-PERIOD slider sets the mean value of the infectious period, which is used in calculating the gamma-distribution for the time in the infectious class; units = days.
The INFECTIOUS-STANDARD-DEVIATION slider sets the standard deviation of time the individual is infectious, which is used in calculating the gamma-distribution for the time in the infectious class; units = days.
The ANTIVIRAL-TREATMENT-CHANCE slider sets the probability that an infectious individual will receive antiviral treatment; units = percent / day.
The LATEST-ANTIVIRALS-GIVEN slider sets the length of the infectious period past which antiviral use is no longer effective and thus antivirals will not be given past this time; units = days.
The AVERAGE-ANTIVIRAL-EFFECT slider sets the mean value of the benefit of taking antivirals has on the length an infectious individual will be infectious, which is used in lowering the infectious-time of the individual; units = days.
The ANTIVIRAL-EFFECT-STANDARD-DEVIATION slider sets the standard devition of the benefit of taking antivirals has on the length an infectious individual will be infectious, which is used in lowering the infectious-time of the individual; units = days.
THINGS TO NOTICE
Setting the ANTIVIRAL-TREATMENT-CHANCE or the LATEST-ANTIVIRALS-GIVEN to 0 percent per day or days, respectively, results in a model identical to the Base Model for seasonal influenza.
Increasing the ANTIVIRAL-TREATMENT-CHANCE, the LATEST-ANTIVIRALS-GIVEN, or the AVERAGE-ANTIVIRAL-EFFECT-PERIOD slightly increases the chance that the disease will die out quickly before causing an outbreak in the population.
When increasing the ANTIVIRAL-TREATMENT-CHANCE, the LATEST-ANTIVIRALS-GIVEN, or the AVERAGE-ANTIVIRAL-EFFECT-PERIOD, if an outbreak occurs, the length of the outbreak will increase, the attack rate will decrease, and the maximum number infected at one time will decrease.
RELATED MODELS
NetLogo Models Library: epiDEM Basic epiDEM Travel and Control AIDS Disease Solo
Seasonal influenza model: Base Model
The following models for pandemic influenza and control strategies are modifications of the Base Seasonal Model.
Pandemic influenza models: Waning Immunity Periodic Transmission Chance Two Weakly-Interacting Subpopulations
The pandemic influenza models will result in two peaks in the number of infectious individuals with appropriate parameter selection.
Control strategies for seasonal influenza:
Quarantine
Isolation
Antivirals (this model)
Seasonal Vaccination
Pandemic Vaccination
The models incorporating control strategies demonstrate the effect of different control strategies on the attack rate during an outbreak of seasonal influenza.
CREDITS AND REFERENCES
Authors:
Roger Estep, Robert Hughes, and Jessica Shiltz, supervised by Dr. Anna Mummert.
Work was completed as part of the Marshall University NSF-UBM grant.
Marshall University, Huntington, WV, USA.
Summer 2013 -- Fall 2014.
Comments and Questions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; globals [ maximum-infectious ;; The maximum number of infectious individuals at one simulation tick. tick-at-maximum-infectious ;; The first tick when the maximum number of infectious individuals is realized. number-infectious-vector ;; Vector of the number of infectious individuals at each simulation tick. incubation-alpha ;; Alpha parameter for the gamma distribution used in calculating incubation-time. incubation-lambda ;; Lambda parameter for the gamma distribution used in calculating incubation-time. infectious-alpha ;; Alpha parameter for the gamma distribution used in calculating infectious-time. infectious-lambda ;; Lambda parameter for the gamma distribution used in calculating infectious-time. antiviral-effect-alpha ;; Alpha parameter for the gamma distribution used in calculating antiviral-effect-time. antiviral-effect-lambda ;; Lambda parameter for the gamma distribution used in calculating antiviral-effect-time. number-vaccinated ] turtles-own [ susceptible? ;; If true, the individual is a member of the susceptible class. exposed? ;; If true, the individual is a member of the exposed (incubation) class. infectious? ;; If true, the individual is a member of the infectious class. recovered? ;; If true, the individual is a member of the recovered class. antiviral-treated? ;; If true, the individual has received the antiviral. incubation-length ;; How long the individual has been in the exposed class, increasing by 1 each tick. This is compared against the incubation-time, selected from a gamma-distribution. incubation-time ;; The randomly chosen gamma-distribution value for how long the individual will be in the exposed class. infectious-length ;; How long the individual has been in the infectious class, increasing by 1 each tick. This is compared against the infectious-time, selected from a gamma-distribution. infectious-time ;; The randomly chosen gamma-distribution value for how long the individual will be in the infectious class. antiviral-effect-time ;; The randomly chosen gamma-distribution value for the benefit, in reduced days of infectiousness, of receiving the antiviral. total-contacts ;; A count of all contacts of the individual. ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Setup Procedures ;;;; to setup clear-all setup-gamma-distributions setup-population reset-ticks end to setup-gamma-distributions ;; The calculation from mean and standard deviation (in days) to the alpha and lambda parameters required for the gamma-distributions (in ticks). set incubation-alpha (average-incubation-period * ticks-per-day)^ 2 / (incubation-standard-deviation * ticks-per-day)^ 2 set incubation-lambda (average-incubation-period * ticks-per-day) / (incubation-standard-deviation * ticks-per-day)^ 2 set infectious-alpha (average-infectious-period * ticks-per-day)^ 2 / (infectious-standard-deviation * ticks-per-day)^ 2 set infectious-lambda (average-infectious-period * ticks-per-day) / (infectious-standard-deviation * ticks-per-day)^ 2 set antiviral-effect-alpha (average-antiviral-effect-period * ticks-per-day)^ 2 / (antiviral-effect-standard-deviation * ticks-per-day)^ 2 set antiviral-effect-lambda (average-antiviral-effect-period * ticks-per-day) / (antiviral-effect-standard-deviation * ticks-per-day)^ 2 end to setup-population create-turtles initial-population [ setxy random-xcor random-ycor ;; All individuals are placed on random patches in the world. set susceptible? true ;; All individuals are set as susceptible. set exposed? false set infectious? false set recovered? false set antiviral-treated? false set shape "person" set total-contacts 0 ask turtle 0 ;; Individual 0 begins as infectious. Its infectious-time is selected from the gamma distribution and infectious-length set to 0. [ set susceptible? false set infectious? true set infectious-time random-gamma infectious-alpha infectious-lambda set infectious-length 0 ] set number-infectious-vector [ 1 ] ;; The number-infectious-vector vector is initiallized. set number-vaccinated 0 assign-color ] end to assign-color if susceptible? [ set color white ] if exposed? [ set color yellow ] if infectious? [ set color red ] if recovered? [ set color lime ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Go Procedure ;;;; to go if all? turtles [ susceptible? or recovered? ] ;; The simulation ends when no individuals are infected (exposed or infectious). [ stop ] ask turtles [ move ] ask turtles with [ infectious? ] ;; Infectious individuals might expose susceptible neighbors. If infectious individuals have been infectious for infectious-time ticks, they will recover. [ expose-neighbors chance-of-recovery ] ask turtles with [ infectious? ] ;; Some infectious individuals are given the antiviral. [ chance-of-receiving-antiviral ] ask turtles with [ exposed? ] ;; If exposed individuals have been in the exposed class for incubation-time ticks, they will become infectious. [ chance-of-becoming-infectious ] ask turtles [ assign-color count-contacts ] compute-maximum-infectious tick end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Nested Functions ;;;; to move ;; Individuals turn a random angle between -40 and 40 degrees then step forward 1 unit. right (random 80) - 40 forward 1 if not can-move? 1 [ right 180 ] ;; If an individual is at the world's boundary, it turns around. end to count-contacts ;; Contacts are defined as other individuals within a 1 unit radius. set total-contacts total-contacts + count other turtles in-radius 1 end to expose-neighbors ask other turtles in-radius 1 with [ susceptible? ] ;; Susceptible individuals who come into contact with an infectious individual will become infected with probability transmission-chance. [ if random-float 100 < transmission-chance [ set susceptible? false set exposed? true set incubation-time random-gamma incubation-alpha incubation-lambda ;; A newly exposed individual selects an incubation-time from the gamma-distribution and its incubation-length is set to 0. set incubation-length 0 ] ] end to chance-of-becoming-infectious ;; When an infected individual has been in the exposed class longer than its incubation-time, it will become infectious. set incubation-length incubation-length + 1 if incubation-length > incubation-time [ set exposed? false set infectious? true set infectious-time random-gamma infectious-alpha infectious-lambda ;; A newly infectious individual selects an infectious-time from the gamma-distribution and its infection-length is set to 0. set infectious-length 0 ] end to chance-of-recovery ;; When an infectious individual has been in the infectious class longer than its infection-time, it will recover. set infectious-length infectious-length + 1 if infectious-length > infectious-time [ set infectious? false set recovered? true ] end to chance-of-receiving-antiviral ;; Once each day, infectious individuals who have not been infectious too long will receive the antiviral with probability antiviral-treatment-chance. if ( ticks / ticks-per-day mod 1 = 0 and ( infectious-length / ticks-per-day < latest-antivirals-given ) ) [ if random-float 100 < antiviral-treatment-chance [ set antiviral-treated? true set shape "default" set antiviral-effect-time random-gamma antiviral-effect-alpha antiviral-effect-lambda ;; An individual receiving the antiviral selects a antiviral-effect-time from the gamma-distribution and its infectious-time is reduced by that amount. set infectious-time infectious-time - antiviral-effect-time ] ] end to compute-maximum-infectious ;; A vector of the number of infectious individuals at each tick is stored. The maximum and time of the maximum are computed. set number-infectious-vector lput count turtles with [infectious?] number-infectious-vector set maximum-infectious max number-infectious-vector set tick-at-maximum-infectious position maximum-infectious number-infectious-vector end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
There is only one version of this model, created over 10 years ago by Anna Mummert.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.
Anna Mummert
Case Study "Modeling Seasonal Influenza"
This model is part of a suite of infectious disease models, including SEIR-Model-Base-Seasonal, SEIR-Model-Vaccination-Seasonal, SEIR-Model-Antivirals, SEIR-Model-Isolation, and SEIR-Model-Periodic-Transmission. These five models are part of the case study "Modeling Seasonal Influenza", 2016, by Marcia Harrison-Pitaniello, Jessica Shiltz, Rober Hughes, Roger Estep, and Anna Mummert published by the National Center for Case Study Teaching in Science (http://sciencecases.lib.buffalo.edu/cs/).
Posted over 9 years ago