Exemple #1
0
N = 100
P = [0.5]
rewiring_rate = [(0.0, 1.0)]
t_run_total = 500.0
tmax = 1000.0
seed = 7925
infection_rate = 1.0
recovery_rate = 0.1

E = flockwork_P_equilibrium_configuration(N, P[0])

fwP_ec = tc.flockwork_P_varying_rates(E,
                                      N,
                                      P,
                                      t_run_total,
                                      rewiring_rate,
                                      tmax,
                                      seed=seed)
fwP_el = tc.convert(fwP_ec)

start = time.time()
SIS = tc.node_based_SIS(N,
                        t_run_total * 2,
                        infection_rate,
                        recovery_rate,
                        N // 2,
                        seed=seed,
                        verbose=True)
tc.gillespie_node_based_SIS(fwP_ec, SIS, verbose=True)
end = time.time()
Exemple #2
0
import time
import numpy as np

# ======== get original network =============
socio = tc.load_json_taco("~/.tacoma/dtu_1_weeks.taco")
socio_binned = tc.bin(socio, dt=300)

socio_result = tc.measure_group_sizes_and_durations(socio)

# ============== generate surrogate network from flockwork_P model ==============
fwP_params = estimate_flockwork_P_args(
    socio_binned, dt=3600., aggregated_network=socio_result.aggregated_network)
fwP = tc.flockwork_P_varying_rates_neighbor_affinity(**fwP_params)

fwP_params = estimate_flockwork_P_args(socio_binned, dt=3600.)
fwP = tc.flockwork_P_varying_rates(**fwP_params)

fwP_binned = tc.bin(fwP, dt=300)

N = fwP.N

R0 = 2.0
rho = 1.0 / (3 * 24 * 3600.)
dt = 3600.
t_simulation = 4 * fwP.tmax
t_sample = np.arange(int(t_simulation / dt) + 1, dtype=float) * dt

N_meas = 30

fig, ax = pl.subplots(1, 3, figsize=(12, 4))
import scipy.sparse as sprs
import time

dtu_week = tc.dtu_week()
E = []
P = dtu_week.P
gamma = dtu_week.gamma
N = dtu_week.N
tmax = dtu_week.tmax
t_run_total = tmax
seed = 45

edge_changes = tc.flockwork_P_varying_rates(E,
                                            N,
                                            P,
                                            t_run_total,
                                            gamma,
                                            tmax,
                                            seed=seed)

print("measuring groups and durations, ignore histograms differences =", True)
start = time.time()
result = tc.measure_group_sizes_and_durations_for_edge_changes(
    edge_changes, ignore_size_histogram_differences=True)
end = time.time()
print("took", end - start, "seconds")

new_fig, axes = pl.subplots(2, 2)
axes = axes.flatten()

for group_size in range(1, 10):
# plot properties
result = tc.measure_group_sizes_and_durations(zsbb_binned)
#print result.group_durations[4]
fig, ax, data = temporal_network_group_analysis(result, max_group=5)
fig.tight_layout()
traj = tc.get_edge_trajectories(zsbb_binned)
draw_edges(traj.trajectories, ax=ax[3])

# ============== generate surrogate network from flockwork_P model ==============
#fwP_params = estimate_flockwork_P_args(socio_binned,dt=1800.,aggregated_network=socio_result.aggregated_network)
fwP_params = estimate_flockwork_P_args(socio_binned,
                                       dt=3600.,
                                       k_over_k_real_scaling=1.2)
#tc.write_fwP_args(fwP_params,"./fwP_args_dtu_1_weeks.json")
#fwP = tc.flockwork_P_varying_rates_neighbor_affinity(**fwP_params)
fwP = tc.flockwork_P_varying_rates(seed=45, **fwP_params)
fwP_binned = tc.bin(fwP, dt=300)

result = tc.measure_group_sizes_and_durations(fwP_binned)
fig, ax, data = temporal_network_group_analysis(result,
                                                time_unit='h',
                                                time_normalization_factor=1 /
                                                3600.)
fig.tight_layout()
traj = tc.get_edge_trajectories(fwP_binned)
draw_edges(traj.trajectories,
           ax=ax[3],
           time_unit='h',
           time_normalization_factor=1 / 3600.)

# ============== generate surrogate network from dynamic RGG model ==============
import matplotlib.pyplot as pl
from itertools import izip

N = 100

dtu_week = tc.dtu_week()
E = []
P = dtu_week.P
gamma = dtu_week.gamma
tmax = dtu_week.tmax
t_run_total = tmax
seed = 45
plot_size = False

print "simulating"
result = tc.flockwork_P_varying_rates(E,N,P,t_run_total,gamma,tmax,seed=seed)
print "done"


this = tc.edge_changes()
this.t = result.t
this.N = result.N
this.edges_initial = result.edges_initial
this.t0 = result.t0
this.tmax = result.tmax
this.edges_in = result.edges_in
this.edges_out = result.edges_out
print len(this.t), len(this.edges_in)
print "first time point: ", this.t[0]

second_result = tc.measure_group_sizes_and_durations_for_edge_changes(
n_k_meas = 6

for iscl, scaling in enumerate([k_scaling, 1.0]):

    these_ks = []

    for meas in range(n_k_meas):

        args = estimate_flockwork_P_args(
            orig,
            dt=dt_for_inference,
            k_over_k_real_scaling=scaling,
            ensure_empty_network=True,
            adjust_last_bin_if_dt_does_not_fit=True)

        fwP = tc.flockwork_P_varying_rates(**args)

        fwP_binned = tc.bin(fwP, dt_binning)

        t_fw, k_fw = tc.mean_degree(fwP_binned)
        these_ks.append(k_fw)
        print("scaling =", scaling, " ; measurement =", meas)
        ndx = np.where(np.logical_and(k_orig > 0.0, k_fw > 0.0))
        print("k_fw / k_orig = ", np.mean(k_fw[ndx] / k_orig[ndx]))

    these_ks = np.array(these_ks).mean(axis=0)

    ax[iscl].plot(t_fw,
                  these_ks,
                  '-',
                  c=tc.color_sequence[iscl + 1],
Exemple #7
0
import tacoma as tc
ec = tc.flockwork_P_varying_rates([],
                                  10, [0.4, 0.8],
                                  600, [(0, 1.), (300, 2.)],
                                  600,
                                  seed=25456)

print(ec.edges_out[:5])
print(ec.edges_in[:5])

import numpy as np

ec = tc.flockwork_P_varying_rates_for_each_node(
    [],
    10, [np.random.random(10).tolist(),
         np.random.random(10).tolist()],
    600, [(0, np.random.random(10).tolist()),
          (300, np.random.random(10).tolist())],
    600,
    seed=25456)

print(ec.edges_out[:5])
print(ec.edges_in[:5])
Exemple #8
0
    return kwargs


if __name__ == "__main__":
    import tacoma as tc
    import matplotlib.pyplot as pl
    from tacoma.analysis import temporal_network_group_analysis
    
    # THESE TESTS ARE DEPRECATED

    test = tc.dtu_week()
    rewiring_rate = test.gamma
    P = test.P

    fw = tc.flockwork_P_varying_rates([],100,P,24*3600,rewiring_rate,tmax=24*3600*7)
    fw_binned = tc.sample(fw,dt=300)
    fw_binned_result = tc.measure_group_sizes_and_durations(fw_binned)

    kwargs = get_ZSBB_parameters(fw_binned,fw_binned_result,fit_discrete=True,dt=300.)
    print("lambda =", kwargs['lambda'])
    print("b0 =", kwargs['b0'])
    print("b1 =", kwargs['b1'])
    kwargs['t_run_total'] = (len(fw_binned.t) + 1)*kwargs['N']
    zsbb = tc.ZSBB_model(**kwargs)
    zsbb_binned = tc.sample(zsbb,dt=kwargs['N'])
    zsbb_binned_result = tc.measure_group_sizes_and_durations(zsbb_binned)


    fig, ax, data = temporal_network_group_analysis(fw_binned_result)
    temporal_network_group_analysis(zsbb_binned_result,