Skip to content
/ sir Public

Pretty quick code for regular (continuous time, Markovian) SIR on networks

Notifications You must be signed in to change notification settings

pholme/sir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fast SIR on networks

Pretty quick code for regular (continuous time, Markovian) SIR on simple graphs. I chatty intro to it here: https://petterhol.me/2018/02/07/fastest-network-sir-code-in-the-east/

To get it running you need:

  1. Make dictionary o (for complier object files)
  2. Compile it by make (it has some generic optimization flags now)
  3. Run it like

./sir nwk/iceland.lnk 1.5 11958364283164656333

The first argument is the file containing the network. The input format is an edge list assuming the vertex-id numbers are between 0 and N - 1. The program sets N as one plus the largest index observed, so if your network has isolates make sure at least the largest id has degree > 0. The example network comes from: Haraldsdottir S, Gupta S, Anderson RM, Preliminary studies of sexual networks in a male homosexual community in Iceland, J Acquir Immune Defic Syndr. 1992;5(4):374-81.

The second argument is the per-link infection rate. I assume the recovery rate is one (if some other rate is needed, you just have to divide the infection rate by the recovery rate and divide the output extinction time by the recovery rate).

The third argument is the seed for the RNG = a 64-bit unsigned decimal integer. Ideally this number should be as entropic as possible, i.e. itself generated by a random number generator. In practice sir should be run with a wrapper. A very simple (Python) such is supplied that could be run on the command line as:

python3 run_sir.py nwk/iceland.lnk

It generates: the average outbreak size, error in ditto, the average extinction time, error in ditto . . for seven exponentially increasing beta values.

For more comments, see the files.

About

Pretty quick code for regular (continuous time, Markovian) SIR on networks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published