SilvioAiello / Epidemiology-on-Temporal-Networks

Simulation of two epidemics diffusion, on two differently evolving temporal networks
2 stars 0 forks source link

Epidemiology on Temporal Networks

Table of Contents

Repository scheme

This repository is structured as follows:

So, the final output will be something like: Networks/N_T_DIRECTNESS_TYPE_name/realizationX/infection_betaX.pkl or /network.pkl.

To make your personal use of this project, you can just create a new "runX.ini" file, following the same rules of the existing ones (better exlpained in howto.md), and let main.py and main_analysis run to get your results and their analysis. Be sure to properly modify the name of the configuration file these scripts imports. Once mains has run, you can keep on operating from your Python IDE; for example, to call a function from "Evolutions", you may just type Evolutions.FUNCTNAME, etc.

For any other clarification, check files in docs/ folder.

Any pending "TODO" you may find across code analysis, reminds future developments of the project.

Project purposes

The purpose of this project is to simulate epidemics on temporal networks, try to correlate it to netwroks' structure, and apply results to real data, took from eMID interbank network. The analysis will be made more complex, and realistic, by violating symmetries such as network underictness and homogeneity of node-parameters.

Epidemic's diffusion should relate to laws of evolution: understanding wheter, and how much, may be achieved by trying to quantify, wheter exists, correlation between temporal centraility measures, and epidemic performances of nodes. If a node is "central", we expect him to be epidemiologically virulent.

Centrality measures state a way to recognize nodes more connected to others, and each measure gives a particoular meaning to this sentence. There is an extended literature about centralities in static networks rather then in temporal, where there are changes and rising in complexity in computing, due to dependence on link existence. Here, are taken into account these measures: Broadcast and Receive Centrality (BC, RC), took from a matrix named Communicability [Grindrod, Communicability across evolving networks], Aggregate Degree, Binarized Degree.

Virulence of a node can be measured in various ways. For example, it can be expressed as the average, or minimum, number of time steps necessary to infect a certain percentage of node population, provived that that node is the "index case". So, for a set realization of a temporal network, one should simulate several realization of the same epidemic, defined by having that node as only initial infected, and extract the minimum of average time that led to an infection of, for example, 60% of nodes. This has to be iterated over all nodes, getting a score for each one.

Once this is done, it is possible to comprare these scores to nodes centralities, extracting an index of correlation. To be sure that the informations one get are not just due to a fortuitous realtization, the whole process shoud be iterated over different temporal realtizations of the same network.

References

  1. Mazzarisi, Lillo et. al., A dynamic network model with persistent links and node-specific latent variables, with an application to the interbank market
  2. Grindrod et. al., Communicability Across Evolving Networks
  3. Chen et. al., Dynamic communicability and epidemic spread: a case study on an empirical dynamic contact network