Disease Model

The Disease scenario was originally developed from the Basic scenario, though it is now quite different. But like Basic, it is straightforward and useful for illustrating HexSim mechanics. A video titled HexSim Disease Demo was constructed using the output from this model. This model can be thought of as having two principal components: demography and disease.

Unlike the Basic model, individuals from this population live in groups. The groups tend to reside within the habitat patches because the Population Parameters Range Data were set to preclude low quality habitat from being part of groups' ranges. The exact values of these parameters, for example the maximum group size or the stage-stratified resource targets, are not that critical. The basic population dynamics observed in the videos would still emerge if these parameters were altered.

For the non-disease elements of demography, the population really just depends on a single accumulated trait called Stage Class. A location trait is used principally for data gathering, but for simplicity this trait is also used in the vaccination scheme described below. The remaining traits are all tied to the disease components of the model.

The simulation begins with two events that illustrates how a population can be introduced into a map that doesn't exist in the workspace. These two events, Generated Hexmap and Introduction, are housed within the Model Initialization event group, which only triggers during the first time step. This initial Generated Hexmap event produces a map that is all zero except for a single hexagon at the center of patch 3. The subsequent Introduction event places 10 individuals into that single hexagon. The scenario's other introduction event, which initiates the disease epidemic, also makes use of this generated hexmap.

Within the Life Cycle Events event group, an Accumulate events increments each individual's age. Next, a Reproduction event adds new juveniles to the population. A subsequent Transition event is used to assign these offspring the infection status of their parent. Juveniles then disperse away from the natal group (this also aids in disease spread) but they are allowed to join any group that will accept them, including their natal group. A Survival event is then used to impose mortality based upon stage class.

Disease Submodel

Individuals in this model are either unexposed or exposed (in reality the amount of exposure may matter). The probabilistic trait is called Disease Status, and it has four trait values: Susceptible, Infected, Recovered, and Vaccinated.

The initial Accumulate event, and the subsequent two Event Groups are used to introduce the disease into the population, and to vaccinate some or all of the resource patches.

The timing of the disease introduction and vaccination are controlled by Global Variables. These Global Variables affect the status of a Scheduler population (consisting of a single individual), that in turn controls the operation of the two Event Groups via the Use Termination controls. Vaccination functions by moving individuals from the susceptible class into the recovered class.

Global Variables control the rate at which exposed individuals become infected, and the rates at which infected individuals transition to either recovered or deceased. Other than handling disease introduction and vaccination, the simulation of disease dynamics proceeds as follows:

Model Outputs

The Disease scenario includes two Census events, and it uses a Generated Hexmap event to construct maps illustrating the patterns of disease spread. All of these events are contained within the Event Group titled Map Disease Dynamics.

The Disease Dynamics generated Hexmap (see image to the right) illustrates how a small number of specific colors can be used to convey a precise set of conditions. In this case, the variables h1, h2, and h3 represent the habitat map score, the presence or absence of range hexagons, and the number of infected individuals. The generated Hexmap is constructed from four nested Cond() statements. Note that Cond (x, y, z) can be translated: If (x > 0) return y, else return z.

The Generated Hexmap event uses three variables in its map algebra equation:

Working from left to right, the statement:

Cond ( h1, -2, Cond ( h2, 2, Cond ( h3 - 5, 1, Cond ( h1, -1, 0 ))))

says to set hexagons occupied by an infected individual to -2. Otherwise if the hexagon is part of a group's range (meaning it's occupied), set the value to +2. Otherwise if the hexagon has a score greater than 5 (meaning it is good habitat) set the value to +1. Otherwise if the hexagon is nonzero, set the value to -1. Otherwise set it to zero.

The resulting Hexmap will be comprised of the following scores, which correspond to the 5 colors in the image above. This image was constructed using the Blue-Red color scheme, which can be selected from the HexSim menu, using the Set Hexmap Colors option.

When HexSim displays a Hexmap that has both negative and positive scores, it divides the color spectrum up into two equal parts, which it assigns to the ranges [min, 0) and (0, max]. This ensures that the five categories above will be assigned five distinct colors, as in the image above.

Experimenting with the Disease Model

Below are some suggestions for users who'd like to begin exploring the Disease model.

The Disease Model's Global Variables can be used to conduct a range of experiments. Global Variables are accessed from the Scenario menu. The following Global Variables are included in the Disease model:

These Global Variables make it easy for users to run experiments by varying key disease-related parameters. The probability that an infected individual remains infected is 1.0 - (Recovery Rate + Mortality Rate). Increasing the infection or mortality rates can cause the disease to burn itself out, and thus drop out of the population. Recovered individuals never re-enter the susceptible population, and this allows the vaccination scheme to be extremely simple. The patches referenced by the nine Vaccinate Patch N variables can be viewed in the Habitat Patches hexmap. Once vaccination begins, it continues for the reminder of the simulation.

Naturally, users may change other elements of the Disease model beyond the Global Variables. An obvious example would involve altering the movement parameters.