Aside from the based SIR-framework models, our platform can also captures more complex context of epidemiology. In such context, the population has more than one degree of subdivision due to different attributes rather than status such as: sex, age, space, etc. In this section we consider an epidemiological concern, the heterogeneous-host population models.
We consider here the the SIS model in which the population is structured into multiple risk groups (host-heterogeneous model) labelled 1, 2, ... The group labelled 1 is the lowest risk. The group labelled 5 is the highest risk. The interaction between risk groups is captured by the contact network.
| model graph |
model := KEModel new.
model population: KEMetaPopulation new.
model population attributes: {#riskGroup->(1 to: 5). #status->#(S I)}.
model
buildFromAttributes: #(#status #riskGroup)
compartments: {
(#(#S 1) -> 6000). (#(#I 1) -> 0).
(#(#S 2) -> 31000). (#(#I 2) -> 0).
(#(#S 3) -> 52000). (#(#I 3) -> 0).
(#(#S 4) -> 8000). (#(#I 4) -> 0).
(#(#S 5) -> 2999). (#(#I 5) -> 1).
}.
model addParameter: #beta value: 16e-9.
model addParameter: #gamma value: 0.2.
graph := KEContactNetwork
newOn: model population
atAttribute: #riskGroup.
graph edges: { 2->2. 2->3. 2->4. 2->5. 3->3. 3->4. 3->5. 4->4. 4->5. 5->5 };
strengthOfConnections: #(9 30 180 300 100 600 1000 3600 6000 10000).
model addEquation: 'S:t=gamma*I-beta*S*I' parseAsAnEquation.
model addEquation: 'I:t=beta*S*I-gamma*I' parseAsAnEquation.
This model is constructed from the SIS based model. We specify another attribute riskGroup with the value from 1 to 5. Due to two attributes, we have 10 compartments so that 10 equations. These equations are generated automatically from the two basic equations specified in this model. In our platform, epidemiological concerns are implemented separately from the core system (the basic concepts of epidemiology) so that allowing a wide range of complex model to be described. In order to represent the coupling infection between heterogeneous groups, we define an instance of KEContactNetwork.
graph := KEContactNetwork
newOn: model population
atAttribute: #riskGroup.
Other networks are also implemented to capture other type of contact patterns: KEMigrationNetwork and KECommutingNetwork. We specify this model in Workspace and define the simulation, the result is shown in Figures 1.1, 1.2, 1.3. In the case of IBM, we reduce the size of population and increase the value of parameter for speed up the simulation.