In [1]:
import networkx as nx
import custom_funcs as cf
import pandas as pd

%load_ext autoreload
%autoreload 2

In [2]:
G = nx.read_gpickle('20150902_all_ird Final Graph.pkl')
G = cf.impute_reassortant_status(G)
G = cf.clean_host_species_names(G)
G = cf.impute_weights(G)
G = cf.remove_zero_weighted_edges(G)

In [3]:
len(G.edges())


Out[3]:
25683

In [4]:
G.edges(data=True)[0]


Out[4]:
('A/chicken/Jiangxi/13264/2014',
 'A/chicken/Jiangxi/14535/2014',
 {'edge_type': 'reassortant',
  'pwi': 7.9977480000000005,
  'segments': {6: 1.0},
  'weight': 0.021739130434782608,
  'weight_ct': 1})

In [5]:
# This block of code will dump the data.
edgelist = []
for sc, sk, d in G.edges(data=True):
    edge_data = dict()
    edge_data['source'] = sc
    edge_data['sink'] = sk
    for k, v in d.items():
        if isinstance(v, dict):
            for k2, v2 in v.items():
                edge_data['{0}_{1}'.format(k, k2)] = v2
        else:
            edge_data[k] = v
    edgelist.append(edge_data)

In [7]:
edgelist_df = pd.DataFrame(edgelist)
edgelist_df.to_csv('supp_data/edgelist.csv')

In [ ]: