FluTE is an individual-based simulation model of influenza epidemics. In this section, we describe the model's community structure, natural history of influenza, and simulated interventions. Briefly, all individuals in the model are members of social mixing groups, within which influenza is transmitted by random mixing. The model can simulate several intervention strategies, and these can either change the transmission characteristics of influenza (e.g., vaccination) or change the contact probabilities between individuals (e.g., social distancing). Interventions can occur before the epidemic or in response to an ongoing epidemic.
Community structure and social contacts
The simulation creates synthetic populations based on typical American communities. The population is divided into census tracts, and each tract is subdivided into communities of 500–3000 individuals based on earlier models 
. Each community is populated by randomly generated households of size 1–7 using the US-wide family size distribution from the 2000 Census (). The household is the closest social mixing group, within which contacts between individuals occur most frequently and thus influenza is transmitted most often. The population is organized as a hierarchy of increasingly large but less intimate mixing groups, from the household cluster (sets of four socially close households), neighborhoods (1/4 of a community), and the community. Although the model results are not sensitive to the exact size of these groups, including such groups creates a realistic contact network for disease transmission 
. At night, everyone can make contact with other individuals in their families, household clusters, home neighborhoods, and home communities. In the daytime, individuals might interact with additional groups. During the day, most children attend school or a playgroup, where there is a relatively high probability of transmission. Preschool-age children usually belong to either a playgroup of four children or a neighborhood preschool, which typically has 14 students. Each community has mixing groups that represent two elementary schools, one middle school, and one high school, which typically have 79, 128, and 155 students, respectively.
Frequency of household sizes.
Most working-age adults (about 72% of 19–64 year-olds) are employed. Employment rates are determined on a tract-by-tract basis using data from the US Census 2000's Summary File 3, table PCT35. Employed individuals often work outside of their home communities. Each employed individual is assigned to work in a destination census tract based on commuting data taken from Part 3 of the Census Transportation Planning Package (http://www.fhwa.dot.gov/ctpp/dataprod.htm
), which provides information on the home and destination census tracts of workers in the United States. We eliminated commutes over 100 miles from the data as in 
because many of these trips represent sporadic long-distance travel rather than daily commutes. Working individuals are assigned to communities and neighborhoods within their destination tracts to simulate casual community contacts during the day, and a work group of about 20 people to represent their close contacts at the workplace. Unemployed individuals remain in their home communities and do not have close daytime contacts except with members of their households who are not employed or enrolled in school.
Individuals can engage in short-term, long-distance domestic travel to represent vacations and other trips. Travel in our model is based on the implementation in 
, which uses data from the 1995 American Travel Survey data available from the U. S. Department of Transportation, Bureau of Transportation Statistics (http://www.bts.gov/publications/national_transportation_statistics/
). Each day, an individual has a fixed probability of starting a trip based on an age-specific probability of traveling: 0.0023 for 0–4 year olds, 0.0023 for 5–18, 0.0050 for 19–29, 0.0053 for 30–64, and 0.0028 for 65 and older. The traveler will stay at the destination for 0–11 nights, with 23.9% of trips lasting for a single day (and no nights), 50.2% including 1–3 nights away, 18.5% including 4–7 nights away, and 7.4% for 8–11 nights. We do not include differences in travel frequency or duration during different times of the year (e.g., summer and holiday trips). The destination is a randomly selected census tract, in which a random community, neighborhood, and workplace (if the traveler is between 19 and 64 years old) are assigned to be the traveler's mixing groups. A random member of this community is assigned to be the traveler's contact person, and at night the traveler will behave as if he/she belongs to the contact's household, household cluster, and neighborhood. The traveler may withdraw to this household if ill. The exact implementation of short-term, long-distance travel is not important, but some long-distance travel is required in large populations for the epidemic to spread in a realistic manner. For simulations of smaller regions, such as a single county, there is no need to include long-distance travel.
New infected individuals are introduced to a simulation by infecting randomly selected people. This epidemic seeding process can occur once at the beginning of a simulation or daily. In addition, one can simulate an epidemic that is seeded from international travelers. In this scenario, randomly selected individuals in the counties with one of the United States' 15 busiest international airports are infected each day, proportional to the daily traffic of these airports (see ).
International traffic to the 15 US airports built into FluTE.
Influenza natural history and transmission
The current modeling of the natural history of influenza is as follows: An individual is infectious for six days starting the day after becoming infected. The individual's infectiousness is proportional to the log of the daily viral titers taken from a randomly chosen one of the six experimentally infected patients described in 
(). An individual is asymptomatic during the incubation period, which lasts from one, two, or three days (with 30%, 50%, and 20% probabilities, respectively). After incubation, the individual has a 67% chance of becoming symptomatic 
. Symptomatic individuals are twice as infectious as asymptomatic people and may withdraw to the home after 0 to 2 days 
(with probabilities summarized in ). People who withdraw interact only with their households. Six days after infection, an individual recovers and is no longer susceptible.
The natural history of influenza of simulated individuals in FLuTE.
Probabilities that an individual will withdraw to the home 0, 1, or 2 days after becoming symptomatic.
The simulation runs in discrete time, with two time steps per simulated day to represent daytime and nighttime social interactions. The contact probability of two individuals in the same mixing group is the probability that they will have sufficient contact for transmission during a time step. Contact probabilities of individuals within families were tuned so that the simulated household secondary attack rates match estimates from 
(). Contact probabilities within other mixing groups were tuned so that the final age-specific illness attack rates were similar to past influenza pandemics (), particularly Asian A (H2N2) and 2009 novel influenza A(H1N1) influenza, and the percentage of transmissions that can be attributed to each mixing group matched those in 
, although these values depend on the transmissibility (
) of the disease (). These contact probabilities are in general agreement with other simulation models 
and with a recent study of physical contacts between individuals 
. Contact probabilities for all types of mixing groups are summarized in .
Table 4 Estimates of secondary household attack rates from  and illness attack rates using FluTE, stratified by the ages of the index and secondary cases.
Table 5 Age-specific influenza illness attack rates in past influenza epidemics (from ) and in a simulation of metropolitan Seattle.
Major sources of influenza transmission in simulations of metropolitan Seattle.
Person-to-person contact probabilities for all social mixing groups in FluTE.
Transmission probabilities in the simulation are adjusted by multiplying all contact probabilities by a scalar,
, to obtain the desired
, the basic reproductive number, which is defined as the average number of secondary infections from a typical infected individual in a fully susceptible population 
. To derive the relationship between
, we infected a single randomly selected person in an otherwise fully susceptible 2000-person community with a 74% working-age adult employment rate and counted the number of individuals that person infected, repeating this procedure 1,000 times for several values of
. The relationship between
the average number of secondary cases was approximately linear for a biologically plausible range of values:
(). However, the average number of secondary cases was higher when the index case was a child because children tend to infect more individuals (and become infected more often) than adults. Therefore, in a procedure borrowed from 
, we measured the age distribution of secondary cases when the index case was randomly selected and used this distribution to weight the contribution from the various age groups to the
calculation to define
. The definition of
applies to a population with no pre-existing immunity, an assumption that may be violated for seasonal influenza. One can use the model to simulate seasonal influenza epidemics by substituting
with the desired
, the average number of people a typical infected case infects in a population with pre-existing immunity.
Influenza transmission properties in the simulation.
The simulated case generation time, or the time between infection of an individual and the transmission to susceptibles, was 3.4 days for a wide range of
in a fully susceptible population (). This is consistent with other estimates for seasonal and pandemic influenza 
The primary pharmaceutical intervention is vaccination. Vaccinated individuals in the simulation have a reduced probability of becoming infected (VES
), of becoming ill given infection (VEP
), and of transmitting infection (VEI
. In the model, these efficacy parameters are implemented by multiplying the transmission probability per time step by (1−VES
) if the susceptible individual is vaccinated and by (1−VEI
) if the infectious individual is vaccinated. The probability of vaccinated individuals becoming symptomatic (ill) after they are infected is the baseline probability (67%) multiplied by (1−VEP
Vaccines do not reach full efficacy immediately – their protective effects may gradually increase over several weeks. The default behavior in the model is that the vaccine takes two weeks to reach maximum efficacy, with the efficacy increasing exponentially starting the day after the vaccination. Because of the delay in reaching maximum efficacy, it may be necessary to vaccinate the population early. In the simulation, vaccines can be administered at least four weeks before the epidemic (i.e., pre-vaccination), during the epidemic (reactive), or one dose can be administered at least three weeks before the epidemic and the boost can be administered reactively (prime-boost).
Antiviral agents (neuraminidase inhibitors) can be used for treatment of cases and for prophylaxis of susceptibles. A single course of antiviral agents is enough for 10 days of prophylaxis or 5 days of treatment. In the model, 5% of individuals taking antiviral agents prophylactically stop after 2 days and 5% taking them for treatment stop after 1 day 
. As with vaccines, individuals taking antiviral agents can have reduced susceptibility (AVES
), probability of becoming ill given infection (AVEP
), and transmitting infection (AVEI
). However, unlike vaccines, the protective effects of the antiviral agents last only as long as they are being taken (5 to 10 days). When a case is ascertained, the individual is treated with antiviral agents, and that individual's household members will also each be given a course if household targeted antiviral prophylaxis (HHTAP) is in effect.
Several non-pharmaceutical interventions can be simulated in the model. School closures are simulated by eliminating school group contacts (including preschools and daycares but not playgroups) for those enrolled in school, but adding daytime contacts with other household members not in school or at work and doubling their daytime neighborhood and community contact probabilities to account for their non-school activities. Schools can be closed when cases are ascertained in communities or in the schools, and they can be closed for a fixed number of days or for the duration of the simulation.
During an epidemic, individuals may be requested to stay at home if they become ill. When simulating isolation of cases, individuals withdraw to the home one day after becoming symptomatic (with a certain probability to represent the compliance probability). This will eliminate any daytime social contacts that they have other than with household members who are not working or at school. We simulate a liberal leave policy in a similar manner: employed individuals withdraw to the home with a pre-set compliance probability for one week one day after becoming symptomatic.
During an epidemic, those living with symptomatic individuals may be requested to stay home 
. In simulations of household quarantine
, family members of symptomatic individuals will independently decide (based on a compliance probability) whether to obey quarantine for 7 days one day after the first individual becomes symptomatic. Individuals electing to quarantine themselves withdraw to the household and interact only with household members. If other family members become ill during quarantine, household members independently decide whether to obey quarantine for 7 days one day after each individual becomes symptomatic.
Implementation of the stochastic model
FluTE is written in C/C++ and is released under the GNU General Public License (GPLv3, see http://www.gnu.org/licenses/gpl.html
). The source code is available at http://www.csquid.org/software
, and the Models of Infectious Disease Agent Study (MIDAS) repository 
. The software includes two source code files that are also freely distributable but may come with different licenses because they were written by others: one for the pseudorandom number generator (SIMD oriented Fast Mersenne Twister (SFMT) pseudorandom number generator 
) and one to generate binomially distributed random numbers (from Numerical Recipes in C 
). Version 1.11 of FluTE was used to produce the results in this manuscript.
A configuration file is used to specify the population to use for the simulation, the parameters for starting the epidemic, the transmissibility of the infectious agent, and the desired intervention strategies. The configuration file is text-based and can be typed in by a user or generated with a script. The simulation outputs results to text files, which can be easily parsed for plotting or statistical analysis.
A parallelized version of the code supports simulations of large populations (up to the entire continental United States). This version of the program assigns the populations of different counties to different processors, and OpenMPI is used to update the status of individuals who travel between communities that are located on different processors and to update the global status of the epidemic and the interventions (e.g., the total number of vaccines used). The simulation uses approximately 80 megabytes of memory per million simulated individuals.
The simulation was written with several competing goals: to explicitly represent each individual in the population, to conserve memory, to run quickly, and to be (relatively) easy to read and modify. Each simulated individual is represented by a C structure that includes unique identifiers for the person and for each of the social mixing groups to which that person belongs, the age of the individual, the person's infection and vaccination status and dates, and other attributes. For each infected individual, the simulation identifies all susceptible individuals in that person's community who share a common mixing group, the infectiousness of the infected individual, the susceptibility of the susceptible, and the probability that transmission takes place for every time step. Although comparing each individual with every other within a community results in the number of comparisons increasing with the square of the number of individuals, community sizes are always smaller than 3,000 residents. Therefore, the number of comparisons made between individuals scales approximately linearly with the number of individuals in the simulation. More sophisticated algorithms could improve the simulation's performance, but may do so at the expense of the code's flexibility and readability.
The running time depends on the number of individuals infected during the course of a simulation. Simulating an epidemic in a population of 10 million people can take up to two hours (on a single processor on an Intel Core2 Duo T9400), but it may take only seconds if the virus is not highly transmissible (low
) or if there are effective interventions (e.g., high vaccination rates). On a cluster of 32 processors, simulating an epidemic covering the continental United States (population of 280 million) takes about 6 hours (192 hours of total CPU time).