title: Generating an SIS epidemilogical model using Python networkx
body: <p>I have been told <em>networkx</em> library in <em>python</em> is the standard library to use for graph-theoretical applications, but I have found using it quite frustrating so far. </p>
  
  <p>What I want to do is this:
  Generating an SIS epidemiological network, assigning initial contact rates and recovery rates and then following the progress of the disease. </p>
  
  <p>More precisely, imagine a network of <em>n</em> individuals and an adjacency matrix <em>A</em>. Values of <em>A</em> are in <em>[0,1]</em> range and are <em>contact rates</em>. This means that the <em>(i,j)</em> entry shows the probability that disease is transferred from node <em>i</em> to node <em>j</em>. Initially, each node is assigned a random label, which can be either <em>1</em> (for Infective individuals) or <em>0</em> (for Susceptible, which are the ones which have not caught the disease yet). </p>
  
  <p>At each time-step, if the node has a <em>0</em> label, then with a probability equal to the maximum value of weights for incoming edges to the node, it can turn into a <em>1</em>. If the node has a  <em>1</em> label then with a probability specified by its recovery rate, it can turn into a <em>0</em>. Recovery rate is a value assigned to each node at the beginning of the simulation, and is in <em>[0,1]</em> range. </p>
  
  <p>And while the network evolves in each time step, I want to display the network with each node label coloured differently. </p>
  
  <p>If somebody knows of any other library in python that can do such a thing more efficiently than netwrokx, be grateful if you let me know. </p>