Skip to content
/ NEXTNet Public

C++ implementation of the NEXT-Net algorithm for efficient simulation of epidemics on complex networks

License

Notifications You must be signed in to change notification settings

oist/NEXTNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

The NEXT-NET C++ library contains efficient algorithms for simulating epidemics with time-varying infectiousness (so-called "non-Markovian" epidemics) on complex networks. The main algorithm provided by NEXT-NET is based on the next reaction method, and scales to networks with millions of nodes. The

The functionality of this library can be accessed in Python through the package nextnet (https://github.com/oist/NEXTNetPy) and in R through NEXTNetR (https://github.com/oist/NEXTNetR).

The main algorithms and their performance are discussed in our preprint.

Functionality

The NEXT-NET library offers various epidemic models, static and dynamic networks, transmission time distributions, and simulation algorithms.

Epidemic models

  • SI (Susceptible Infected). Individuals start out susceptible and become infected upon transmission of the disease.
  • SIS (Susceptible Infected Susceptible). Individuals start out susceptible, become infected upon transmission of the disease, and eventually recover and become susceptible again.
  • SIR (Susceptible Infected Recovered). Individuals start out susceptible, become infected upon transmission of the disease, and eventually recover. Recovered individuals do not become susceptible agian.

Types of networks

Static networks

  • Erdős–Rényi. Random networks in two nodes are connected by an edge with a certian probabilitz. These networks exhibit no clustering or hubs.
  • Watts-Strogatz. Random small-world networks exhibiting clustering and hubs.
  • Barabási-Albert. Random preferential attachment networks exhibiting hubs and scale-free degree distributions.
  • Acyclic networks. Random tree-like networks with Poissonian distribution of number of offsprings
  • Configuration model. Random networks with given degree distributions
  • Clustered configuration model. Random networks with given degree distribution and clustering coefficients.
  • Lattice. Regular spatial networks.
  • Empirical networks. Networks defined by an adjacency list, i.e. a list of neighbours of each node.

Temporal networks

  • Temporal Erdös-Réyni. Temporal networks that at any instant resembles an Erdős–Rényi networks, but in which nodes randomly detach from a currently neighbour and reattach to a new, randomly chosen neighbour.
  • SIRX network. A network version of the SIRX model in nodes stochastically deactivate, i.e. remove their links, in response to an epidemic outbreak.
  • Activity-driven network. A temporal network in which nodes stochastically detatch from their current neighbour and reattach elsewhere.
  • Brownian proximity network. A temporal network with spatial structure in which nodes move randomly in two dimensions and links represent spatial proximity between nodes.
  • Epirical contact networks. Networks defined a list (t,i,j) of contact times t between individuals i and j.

Time distributions

Time distributions define (a) the time it takes from the infection of a node until it transmits the disease across a specific link, and (b) the time it takes for a node to recover. NEXT-NET offers the following pre-defined distributions, and allows users to easily implement additional distributions.

  • Exponential.
  • Deterministic.
  • Gamma.
  • Lognormal
  • Weibull
  • Polynomial rate.

Simulation algorithms

  • Next reaction method. The most efficient algorithm available, in which the runtime to find the next infection depends only weakly on the number of infected nodes. Scales to networks with millions of nodes.
  • REGIR (Rejection Gillespie algorithm for non-Markovian Reactions *). Based on a similar approximation as nGMA, but removes the quadratic growth of the time it takes to find the next infection. Typically slower than the next reaction method but scales similarly with network size.
  • nMGA (non-Markovian Gillespie Algorithm). An approximate algorithms which works well on small networks. However, the runtime to find the next infection grows quadratically with the number of infected nodes, which limits the scalability to large networks.

Examples

TBD

About

C++ implementation of the NEXT-Net algorithm for efficient simulation of epidemics on complex networks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages