The study of epidemic disease has always been a topic where biological issues mix with social ones.
The aim of this presentation was to modelize in Python language the propagation of Ebola Hemoragic Fever in a modern city thus using SIR model based on Ordinary Differential Equations system and also to produce an amazing Cellular Automaton.
4. The study of epidemic disease has always been a topic where biological issues mix with social ones.
When we talk about epidemic disease, we will be thinking of contagious diseases caused by biological pathogens, things like influenza, measles, and today Ebola or Marburg fever diseases, which spread from person to person.
Epidemics can pass explosively through a population. In extreme cases, a single disease outbreak can have a significant effect on a whole civilization, as with the epidemics started by the arrival of Europeans in the Americas, or the outbreak of bubonic plague that killed 20% of the population of Europe over a seven-year period in the 1300s.
The patterns by which epidemics spread through groups of people is determined not just by the properties of the pathogen carrying it, including its contagiousness, the length of its infectious period, and its severity, but also by network structures within the population it is affecting.
5. But more generally, the opportunities for a disease to spread are given by a contact network: there is a node for each person, and an edge if two people come into contact with each other in a way that makes it possible for the disease to spread from one to the other.
The transmission from one person to another is a sufficiently complex and unobservable process at the person-to-person level that it is most useful to model it as random.
That is, we will generally assume that when two people are directly linked in the contact network, and one of them has the disease, there is a given probability that he or she will pass it to the other.
This use of randomness allows us to abstract away questions about the mechanics of how one person catches a disease from another for which we have no useful simple models.
7. The simplest model of contagion, which we refer to as a branching process is working as follows.
(First wave.) Suppose that a person carrying a new disease enters a population, and transmits it to each person he meets independently with a probability of p. Further, suppose that he meets k people while he is contagious; let’s call these k people the first wave of the epidemic.
Based on the random transmission of the disease from the initial person, some of the people in the first wave may get infected with the disease, while others may not.
(Second wave.) Now, each person in the first wave goes out into the population and meets k different people, resulting in a second wave of k · k = k2 people. Each infected person in the first wave passes the disease independently to each of the k second-wave people they meet, again independently with probability p.
(Subsequent waves.) Further waves are formed in the same way, by having each person in the current wave meet k new people, passing the disease to each independently with probability p.
8. Thus the contact network for this epidemic can be drawn as in figure below
(with k = 3 land only the first three waves shown). We refer to such a network as a tree.
This tree is a representation of the Ebola spreading process where each person contaminated will also contaminate from 1 to 4 other persons.
9. Basic Reproductive Number and a Dichotomy for Branching Processes
So there are only two possibilities for a disease in the branching process model:
If the disease ever reaches a wave where it fails to infect anyone, then it has died out: since people in future waves can only catch the disease from others higher up in the tree, no one in any future wave will be infected either.
Or it continues to infect people in every wave, proceeding infinitely through the contact network.
It turns out that there is a simple condition to tell these two possibilities apart, based on a quantity called the basic reproductive number of the disease.
The basic reproductive number, denoted R0 , is the expected number of new cases of the disease caused by a single individual. Since in our model everyone meets k new people and infects each with probability p, the basic reproductive number here is given by R0 = pk.
The outcome of the disease in a branching process model is determined by whether the basic reproductive number is smaller or larger than 1.
If R0 < 1, then with probability 1, the disease dies out after a finite
number of waves.
If R0 > 1, then with probability greater than 0 the disease
persists by infecting at least one person in each wave.
10. Here below a real Ebola propagation with k = 10 in Gabon in 2001.
Ebola: Human transmission of the disease
13. The SIR epidemic model can be applied to any network model structure.
To do this, we preserve the basic ingredients of the branching process model at the level of individual nodes, but make the contact structure much more general. An individual node in the branching process model goes through three potential stages during the course of the epidemic:
Susceptible: Before the node has caught the disease, it is susceptible to infection from
its neighbors.
Infectious: Once the node has caught the disease, it is infectious and has some probability of infecting each of its susceptible neighbors.
Recovered: After a particular node has experienced the full infectious period, this node is removed from consideration, since it no longer poses a threat of future infection.
14. This model was for the first time proposed by O. Kermack and Anderson Gray McKendrick as a special case of what we now call Kermack-McKendrick theory, and followed work McKendrick had done with the Ronald Ross.
The dynamics of the SIR model are given by the system of Ordinary Differential Equations:
Where b is the rate at which an infected person infects a susceptible, and g is the recovery rate of infected people.
Where:
- S(t) : Number of persons susceptible to be infected by the pathogen agent
- I(t) : Number of infectious persons
- R(t) : Number of persons that recovered
풅푺 풅풕 =− 휷푺푰
풅푰 풅풕 =휷푺푰 − 휸푰
풅푹 풅풕 =휸푰
15. This system is non-linear, and does not admit a generic analytic solution. Nevertheless, significant results can be derived analytically.
Firstly note that from:
it follows that:
expressing in mathematical terms the constancy of population N. Note that the above relationship implies that one need only study the equation for two of the three variables.
Secondly, we note that the dynamics of the infectious class depends on the following ratio:
풅푺 풅풕 + 풅푰 풅풕 + 풅푹 풅풕 =ퟎ
푺풕+ 푰풕+푹(풕) = N = constant
푹ퟎ= 휷 휸 N
16. The SIR model developed in Python is set with the following data for simulating Ebola outbreak in a total population of 1.000 people.
Assuming that the population is quarantined and no additional population is added during the period.
For Ebola:
휸 = 1/10 (Recovery rate)
N = S + I + R = 1.000 (Total population )
I(0) = 1 (Initial infected population )
휷 = 0.3 (Infection rate)
푹ퟎ = 3 ( 1< 푹ퟎ <4 )
17. . Resolution of SIR Ordinary Differential Equation system with python:
18. . Resolution of SIR Ordinary Differential Equation system with python:
20. Cellular Automaton is more appropriate when it comes to visualize the propagation of a disease on a map.
Cellular automata (CA) consist of dicrete agents or particules, which occupy some or all sites of a regular lattice.
These particules have a discrete or continuous internal state variables and a set of rules describing the evolution of their state and position.
The change of state of particule depends on the current state of the particule and those of neighboring particles.
Concerning my Ebola CA developped in Python, 푹ퟎ ∈ {1;4} meaning that each contaminated cell is going to contaminate between 1 to 4 cells during its contagious state. In my model I am using a probabilistic method when deciding which particules are going to be contaminated thus using Normal law and a Monte-Carlo method.
More each contaminated cell will have a probability of 70% to die thus allowing only 30% of recovery rate as per current Ebola disease in west Africa.
21. Cellular Automaton principles
The CA starts with a single infected cell (in red). The first step will test all its eigth neighbors in order to check if they are susceptible (in blue) to be infected.
Assuming that all the eight neighbors are susceptible we launch a random process in order to contaminate between 1 to 4 of these eight susceptible cells.
After that we are starting a new random process implementing a normal law N(0,1) in order to change the internal state of the Infected cell thus killing it with a 70% death rate probability.
In order to take into account that contaminated cells are not statics nor quarantined the CA is simulating some movements and contaminates randomly some cells elsewhere in the city.
22. Presentation of the Cellular Automaton
The CA is representing a city composed by 7.000 cells or houses. Some of them are free (in white), orange cells are representing streets, green cells are for parks, dark blue cell is for susceptible to be infected, red is the infected, and cyan is for recovered .