Changes from v 1.0

New in v 1.2rc1

  • Corrected bug affecting code with rates weighted by node for new networkx. Due to this change, those parts of the code require networkx 2.0 or greater.
  • updated Gillespie_simple_contagion so that if both random and numpy.random keys are set, the code will produce reproducible results.

New in v 1.1

  • Hierarchy_Pos has an extraneous print statement removed.
  • Gillespie_simple_contagion should now accept a directed graph G.
  • Small bug fix in Gillespie_simple_contagion which would cause any attempt to assign a rate function to crash

New in v 1.0.8

  • Bug fixes in basic_discrete_SIS.
  • The Simulation_Investigation objects can now handle arbitrary statuses, rather than just SIS and SIR.
  • The display and animate functions now allow an optional statuses_to_plot argument, allowing us to leave some statuses out. This may require networkx v2.3 or later to work right.
  • The Simulation_Investigation code now handles plotting things like 'S+V' if we add a time series appropriately. The last example of Visualizing or animating disease spread shows this.
  • The Gillespie_simple_contagion and Gillespie_complex_contagion code can now handle return_full_data=True.
  • Gillespie_simple_contagion is now more flexible in how it handles heterogeneity. The user can now define a function which will give the ‘transmission’ rates between a pair of nodes and the ‘recovery’ rates of individual nodes. So it can be more general than the original version. (a heterogeneous SIRS example is now provided)
  • There is now a hierarchy_pos function which allows us to plot transmission trees in a nice way.
  • Changed the discrete SIS and SIR code so that the initial infections occur at t=-1 for the simulation_investigation objects.
  • Small change to the default color for infected nodes (FF2020->FF2000) in simulation_investigation

New in v 1.0.7

No changes (fixing an error in a tag)

New in v 1.0.6

Documentation for Gillespie_complex_contagion now includes an example.

Removed print command (left over from debugging) from Gillespie_complex_contagion.

New in v 1.0.5

Reintroduced Gillespie_Arbitrary which just calls Gillespie_simple_contagion and provides a warning that it will be discontinued later.

New in v 1.0.4

Have added Gillespie_complex_contagion which can handle complex contagions.

The old Gillespie_Arbitrary has been renamed Gillespie_simple_contagion. I have fixed a bug in previous versions that prevented it from handling weighted graphs.

Gillespie_Arbitrary is now back-compatible to networkx 1.11 (but it has been renamed – see above).

Readthedocs is now providing documentation for each function.

New in v 1.0.3

No changes to package, but a small change attempting to get readthedocs to correctly build.

New in v 1.0.2

No changes (I accidentally made a typo just before uploading v1.0.1 to pypi and I can’t reupload with the same name).

New in v 1.0.1

Returning transmission chains

When simulations have return_full_data=True, the returned object now includes information on who infected whom at each time. This can be accessed through:

transmissions which returns a list of tuples (t,u,v) stating that node u infected node v at time t.

transmission_tree which returns a directed multi graph where an edge from u to v with attribute ‘time’ equal to t means u infected v at time t.

(note that in an SIS epidemic, this “tree” may have cycles and repeated edges)

(addresses issue 21 )

Non-SIS/SIR processes

It is now possible to run a wide range of non-SIS/SIR processes spreading in a network. These processes include competing diseases, SIRS disease, SEIR disease, and quite a few other options. This is done using:


Examples are here.

Currently this does not accept return_full_data=True, and it requires that the events all occur as Poisson processes (that is, it makes sense to say that there is a rate at which things happen, and that rate depends on the status of the nodes and perhaps some property of the node or the partnership, but nothing else).

(addresses issues 13 & 17)