# 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.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)

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).