In [1]:
import networkx as nx
from custom import custom_funcs as cf
from networkx.algorithms import bipartite
from circos import CircosPlot
import numpy as np
import matplotlib.pyplot as plt

%load_ext autoreload
%autoreload 2
%matplotlib inline

Introduction

Bipartite graphs are graphs that have two (bi-) partitions (-partite) of nodes. Nodes within each partition are not allowed to be connected to one another; rather, they can only be connected to nodes in the other partition.

Bipartite graphs can be useful for modelling relations between two sets of entities. We will explore the construction and analysis of bipartite graphs here.

Let's load a crime data bipartite graph and quickly explore it.

This bipartite network contains persons who appeared in at least one crime case as either a suspect, a victim, a witness or both a suspect and victim at the same time. A left node represents a person and a right node represents a crime. An edge between two nodes shows that the left node was involved in the crime represented by the right node.


In [2]:
G = cf.load_crime_network()
G.edges(data=True)[0:5]


Out[2]:
[('p213', 'c262', {'role': 'Witness'}),
 ('p61', 'c112', {'role': 'Suspect'}),
 ('p386', 'c161', {'role': 'Suspect'}),
 ('c55', 'p405', {'role': 'Victim'}),
 ('c55', 'p404', {'role': 'Victim'})]

In [3]:
G.nodes(data=True)[0:10]


Out[3]:
[('p213', {'bipartite': 'person', 'gender': 1}),
 ('p61', {'bipartite': 'person', 'gender': 1}),
 ('p386', {'bipartite': 'person', 'gender': 1}),
 ('c55', {'bipartite': 'crime'}),
 ('c267', {'bipartite': 'crime'}),
 ('p805', {'bipartite': 'person', 'gender': 1}),
 ('p590', {'bipartite': 'person', 'gender': 1}),
 ('p329', {'bipartite': 'person', 'gender': 1}),
 ('c133', {'bipartite': 'crime'}),
 ('p616', {'bipartite': 'person', 'gender': 1})]

Projections

Bipartite graphs can be projected down to one of the projections. For example, we can generate a person-person graph from the person-crime graph, by declaring that two nodes that share a crime node are in fact joined by an edge.

Exercise

Find the bipartite projection function in the NetworkX bipartite module docs, and use it to obtain the unipartite projection of the bipartite graph.


In [4]:
person_nodes = [n for n in G.nodes() if G.node[n]['bipartite'] == 'person']
pG = bipartite.projection.projected_graph(G, person_nodes)
pG.nodes(data=True)[0:5]


Out[4]:
[('p213', {'bipartite': 'person', 'gender': 1}),
 ('p563', {'bipartite': 'person', 'gender': 1}),
 ('p133', {'bipartite': 'person', 'gender': 1}),
 ('p61', {'bipartite': 'person', 'gender': 1}),
 ('p381', {'bipartite': 'person', 'gender': 0})]

Exercise

Try visualizing the person-person crime network by using a Circos plot. Ensure that the nodes are grouped by gender and then by number of connections.


In [5]:
nodes = sorted(pG.nodes(), key=lambda x: (pG.node[x]['gender'], len(pG.neighbors(x))))
edges = pG.edges()
edgeprops = dict(alpha=0.1)
node_cmap = {0:'blue', 1:'red'}
nodecolor = [node_cmap[pG.node[n]['gender']] for n in nodes]

fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot(111)
c = CircosPlot(nodes, edges, radius=10, ax=ax, fig=fig, edgeprops=edgeprops, nodecolor=nodecolor)
c.draw()
c.fig.savefig('images/crime-person.png', dpi=300)


Exercise

Use a similar logic to extract crime links.


In [6]:
crime_nodes = [n for n in G.nodes() if G.node[n]['bipartite'] == 'crime']
cG = bipartite.projection.projected_graph(G, crime_nodes)

Exercise

Can you plot how the crimes are connected, using a Circos plot? Try ordering it by number of connections.


In [7]:
nodes = sorted(cG.nodes(), key=lambda x: len(cG.neighbors(x)))
edges = cG.edges()
edgeprops = dict(alpha=0.1)
nodecolor = plt.cm.viridis(np.arange(len(nodes)) / len(nodes)) 

fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot(111)
c = CircosPlot(nodes, edges, radius=10, ax=ax, fig=fig, edgeprops=edgeprops, nodecolor=nodecolor)
c.draw()
plt.savefig('images/crime-crime.png', dpi=300)


Exercise

NetworkX also implements centrality measures for bipartite graphs, which allows you to obtain their metrics without first converting to a particular projection. This is useful for exploratory data analysis.

Try the following challenges, referring to the API documentation to help you:

  1. Which crimes have the most number of people involved?
  2. Which people are involved in the most number of crimes?

In [8]:
# Degree Centrality
bpdc = bipartite.degree_centrality(G, person_nodes)
sorted(bpdc.items(), key=lambda x: x[1], reverse=True)


Out[8]:
[('p815', 0.045372050816696916),
 ('p2', 0.039927404718693285),
 ('p425', 0.032667876588021776),
 ('p220', 0.0308529945553539),
 ('p56', 0.025408348457350273),
 ('p715', 0.021778584392014518),
 ('c110', 0.02171290711700844),
 ('p356', 0.019963702359346643),
 ('p695', 0.019963702359346643),
 ('p514', 0.019963702359346643),
 ('p531', 0.018148820326678763),
 ('p404', 0.018148820326678763),
 ('c153', 0.0180940892641737),
 ('p336', 0.016333938294010888),
 ('p659', 0.016333938294010888),
 ('p592', 0.016333938294010888),
 ('p497', 0.016333938294010888),
 ('p696', 0.016333938294010888),
 ('p474', 0.016333938294010888),
 ('p115', 0.016333938294010888),
 ('c43', 0.015681544028950542),
 ('c14', 0.015681544028950542),
 ('c95', 0.015681544028950542),
 ('p37', 0.014519056261343012),
 ('p146', 0.014519056261343012),
 ('p88', 0.014519056261343012),
 ('p10', 0.014519056261343012),
 ('p729', 0.014519056261343012),
 ('c39', 0.01447527141133896),
 ('c161', 0.013268998793727381),
 ('p414', 0.012704174228675136),
 ('p277', 0.012704174228675136),
 ('p549', 0.012704174228675136),
 ('p291', 0.012704174228675136),
 ('p74', 0.012704174228675136),
 ('p214', 0.012704174228675136),
 ('p797', 0.012704174228675136),
 ('p690', 0.012704174228675136),
 ('p159', 0.012704174228675136),
 ('p572', 0.012704174228675136),
 ('p384', 0.010889292196007259),
 ('p533', 0.010889292196007259),
 ('p51', 0.010889292196007259),
 ('p62', 0.010889292196007259),
 ('p381', 0.010889292196007259),
 ('p767', 0.010889292196007259),
 ('p128', 0.010889292196007259),
 ('p108', 0.010889292196007259),
 ('p79', 0.010889292196007259),
 ('p736', 0.010889292196007259),
 ('p190', 0.010889292196007259),
 ('p413', 0.010889292196007259),
 ('c187', 0.01085645355850422),
 ('c78', 0.01085645355850422),
 ('c36', 0.01085645355850422),
 ('c189', 0.009650180940892641),
 ('c24', 0.009650180940892641),
 ('c97', 0.009650180940892641),
 ('c225', 0.009650180940892641),
 ('c46', 0.009650180940892641),
 ('c112', 0.009650180940892641),
 ('c19', 0.009650180940892641),
 ('c28', 0.009650180940892641),
 ('p129', 0.009074410163339382),
 ('p577', 0.009074410163339382),
 ('p642', 0.009074410163339382),
 ('p155', 0.009074410163339382),
 ('p681', 0.009074410163339382),
 ('p502', 0.009074410163339382),
 ('p17', 0.009074410163339382),
 ('p536', 0.009074410163339382),
 ('p788', 0.009074410163339382),
 ('p811', 0.009074410163339382),
 ('p242', 0.009074410163339382),
 ('p344', 0.009074410163339382),
 ('p396', 0.009074410163339382),
 ('c262', 0.008443908323281062),
 ('c206', 0.008443908323281062),
 ('c87', 0.008443908323281062),
 ('c442', 0.008443908323281062),
 ('c50', 0.008443908323281062),
 ('c290', 0.008443908323281062),
 ('c152', 0.008443908323281062),
 ('c60', 0.008443908323281062),
 ('p67', 0.007259528130671506),
 ('p397', 0.007259528130671506),
 ('p812', 0.007259528130671506),
 ('p131', 0.007259528130671506),
 ('p600', 0.007259528130671506),
 ('p680', 0.007259528130671506),
 ('p54', 0.007259528130671506),
 ('p304', 0.007259528130671506),
 ('p1', 0.007259528130671506),
 ('p333', 0.007259528130671506),
 ('p515', 0.007259528130671506),
 ('p221', 0.007259528130671506),
 ('p87', 0.007259528130671506),
 ('p410', 0.007259528130671506),
 ('p405', 0.007259528130671506),
 ('p112', 0.007259528130671506),
 ('p343', 0.007259528130671506),
 ('p345', 0.007259528130671506),
 ('p351', 0.007259528130671506),
 ('p174', 0.007259528130671506),
 ('p763', 0.007259528130671506),
 ('c56', 0.00723763570566948),
 ('c155', 0.00723763570566948),
 ('c29', 0.00723763570566948),
 ('c413', 0.00723763570566948),
 ('c251', 0.00723763570566948),
 ('c114', 0.00723763570566948),
 ('c435', 0.00723763570566948),
 ('c72', 0.00723763570566948),
 ('c47', 0.00723763570566948),
 ('c169', 0.00723763570566948),
 ('c62', 0.00723763570566948),
 ('c86', 0.006031363088057901),
 ('c480', 0.006031363088057901),
 ('c94', 0.006031363088057901),
 ('c35', 0.006031363088057901),
 ('c52', 0.006031363088057901),
 ('c405', 0.006031363088057901),
 ('c271', 0.006031363088057901),
 ('c248', 0.006031363088057901),
 ('c432', 0.006031363088057901),
 ('c79', 0.006031363088057901),
 ('c309', 0.006031363088057901),
 ('c257', 0.006031363088057901),
 ('c116', 0.006031363088057901),
 ('c77', 0.006031363088057901),
 ('c204', 0.006031363088057901),
 ('c23', 0.006031363088057901),
 ('c61', 0.006031363088057901),
 ('c332', 0.006031363088057901),
 ('c263', 0.006031363088057901),
 ('c379', 0.006031363088057901),
 ('c104', 0.006031363088057901),
 ('c300', 0.006031363088057901),
 ('c22', 0.006031363088057901),
 ('c138', 0.006031363088057901),
 ('c63', 0.006031363088057901),
 ('c80', 0.006031363088057901),
 ('c82', 0.006031363088057901),
 ('c181', 0.006031363088057901),
 ('c67', 0.006031363088057901),
 ('p202', 0.0054446460980036296),
 ('p225', 0.0054446460980036296),
 ('p686', 0.0054446460980036296),
 ('p411', 0.0054446460980036296),
 ('p818', 0.0054446460980036296),
 ('p352', 0.0054446460980036296),
 ('p452', 0.0054446460980036296),
 ('p663', 0.0054446460980036296),
 ('p439', 0.0054446460980036296),
 ('p57', 0.0054446460980036296),
 ('p543', 0.0054446460980036296),
 ('p245', 0.0054446460980036296),
 ('p219', 0.0054446460980036296),
 ('p746', 0.0054446460980036296),
 ('p809', 0.0054446460980036296),
 ('p406', 0.0054446460980036296),
 ('p216', 0.0054446460980036296),
 ('p82', 0.0054446460980036296),
 ('p584', 0.0054446460980036296),
 ('p303', 0.0054446460980036296),
 ('p106', 0.0054446460980036296),
 ('p89', 0.0054446460980036296),
 ('p723', 0.0054446460980036296),
 ('p472', 0.0054446460980036296),
 ('p613', 0.0054446460980036296),
 ('p466', 0.0054446460980036296),
 ('p370', 0.0054446460980036296),
 ('p719', 0.0054446460980036296),
 ('p363', 0.0054446460980036296),
 ('p362', 0.0054446460980036296),
 ('p152', 0.0054446460980036296),
 ('p392', 0.0054446460980036296),
 ('p764', 0.0054446460980036296),
 ('p512', 0.0054446460980036296),
 ('p567', 0.0054446460980036296),
 ('p12', 0.0054446460980036296),
 ('p636', 0.0054446460980036296),
 ('p740', 0.0054446460980036296),
 ('c151', 0.0048250904704463205),
 ('c160', 0.0048250904704463205),
 ('c40', 0.0048250904704463205),
 ('c30', 0.0048250904704463205),
 ('c42', 0.0048250904704463205),
 ('c227', 0.0048250904704463205),
 ('c166', 0.0048250904704463205),
 ('c75', 0.0048250904704463205),
 ('c212', 0.0048250904704463205),
 ('c438', 0.0048250904704463205),
 ('c59', 0.0048250904704463205),
 ('c245', 0.0048250904704463205),
 ('c90', 0.0048250904704463205),
 ('c388', 0.0048250904704463205),
 ('c140', 0.0048250904704463205),
 ('c315', 0.0048250904704463205),
 ('c236', 0.0048250904704463205),
 ('c119', 0.0048250904704463205),
 ('c173', 0.0048250904704463205),
 ('c296', 0.0048250904704463205),
 ('c232', 0.0048250904704463205),
 ('c217', 0.0048250904704463205),
 ('c44', 0.0048250904704463205),
 ('c81', 0.0048250904704463205),
 ('c417', 0.0048250904704463205),
 ('c238', 0.0048250904704463205),
 ('c320', 0.0048250904704463205),
 ('c65', 0.0048250904704463205),
 ('c31', 0.0048250904704463205),
 ('c425', 0.0048250904704463205),
 ('c370', 0.0048250904704463205),
 ('c111', 0.0048250904704463205),
 ('c26', 0.0048250904704463205),
 ('c293', 0.0048250904704463205),
 ('c378', 0.0048250904704463205),
 ('c117', 0.0048250904704463205),
 ('c218', 0.0048250904704463205),
 ('c419', 0.0048250904704463205),
 ('c107', 0.0048250904704463205),
 ('c344', 0.0048250904704463205),
 ('c11', 0.0048250904704463205),
 ('c126', 0.0048250904704463205),
 ('c316', 0.0048250904704463205),
 ('c301', 0.0048250904704463205),
 ('c33', 0.0048250904704463205),
 ('c51', 0.0048250904704463205),
 ('c297', 0.0048250904704463205),
 ('c108', 0.0048250904704463205),
 ('c515', 0.0048250904704463205),
 ('c294', 0.0048250904704463205),
 ('c57', 0.0048250904704463205),
 ('p662', 0.003629764065335753),
 ('p243', 0.003629764065335753),
 ('p97', 0.003629764065335753),
 ('p454', 0.003629764065335753),
 ('p313', 0.003629764065335753),
 ('p424', 0.003629764065335753),
 ('p490', 0.003629764065335753),
 ('p45', 0.003629764065335753),
 ('p41', 0.003629764065335753),
 ('p481', 0.003629764065335753),
 ('p162', 0.003629764065335753),
 ('p778', 0.003629764065335753),
 ('p776', 0.003629764065335753),
 ('p449', 0.003629764065335753),
 ('p676', 0.003629764065335753),
 ('p299', 0.003629764065335753),
 ('p437', 0.003629764065335753),
 ('p199', 0.003629764065335753),
 ('p400', 0.003629764065335753),
 ('p634', 0.003629764065335753),
 ('p249', 0.003629764065335753),
 ('p334', 0.003629764065335753),
 ('p524', 0.003629764065335753),
 ('p284', 0.003629764065335753),
 ('p775', 0.003629764065335753),
 ('p779', 0.003629764065335753),
 ('p335', 0.003629764065335753),
 ('p354', 0.003629764065335753),
 ('p117', 0.003629764065335753),
 ('p637', 0.003629764065335753),
 ('p739', 0.003629764065335753),
 ('p305', 0.003629764065335753),
 ('p338', 0.003629764065335753),
 ('p793', 0.003629764065335753),
 ('p420', 0.003629764065335753),
 ('p435', 0.003629764065335753),
 ('p692', 0.003629764065335753),
 ('p783', 0.003629764065335753),
 ('p184', 0.003629764065335753),
 ('p470', 0.003629764065335753),
 ('p58', 0.003629764065335753),
 ('p326', 0.003629764065335753),
 ('p33', 0.003629764065335753),
 ('p568', 0.003629764065335753),
 ('p744', 0.003629764065335753),
 ('p774', 0.003629764065335753),
 ('p315', 0.003629764065335753),
 ('p48', 0.003629764065335753),
 ('p114', 0.003629764065335753),
 ('p269', 0.003629764065335753),
 ('p412', 0.003629764065335753),
 ('p283', 0.003629764065335753),
 ('p46', 0.003629764065335753),
 ('p331', 0.003629764065335753),
 ('p821', 0.003629764065335753),
 ('p253', 0.003629764065335753),
 ('p666', 0.003629764065335753),
 ('p371', 0.003629764065335753),
 ('p297', 0.003629764065335753),
 ('p264', 0.003629764065335753),
 ('p101', 0.003629764065335753),
 ('p73', 0.003629764065335753),
 ('p652', 0.003629764065335753),
 ('p267', 0.003629764065335753),
 ('p415', 0.003629764065335753),
 ('p167', 0.003629764065335753),
 ('p357', 0.003629764065335753),
 ('p532', 0.003629764065335753),
 ('p633', 0.003629764065335753),
 ('p77', 0.003629764065335753),
 ('p40', 0.003629764065335753),
 ('p418', 0.003629764065335753),
 ('p702', 0.003629764065335753),
 ('p513', 0.003629764065335753),
 ('p441', 0.003629764065335753),
 ('p78', 0.003629764065335753),
 ('p398', 0.003629764065335753),
 ('p145', 0.003629764065335753),
 ('p561', 0.003629764065335753),
 ('p731', 0.003629764065335753),
 ('p171', 0.003629764065335753),
 ('p664', 0.003629764065335753),
 ('p361', 0.003629764065335753),
 ('p511', 0.003629764065335753),
 ('p649', 0.003629764065335753),
 ('p244', 0.003629764065335753),
 ('p365', 0.003629764065335753),
 ('p119', 0.003629764065335753),
 ('p563', 0.003629764065335753),
 ('p294', 0.003629764065335753),
 ('p247', 0.003629764065335753),
 ('p104', 0.003629764065335753),
 ('p758', 0.003629764065335753),
 ('p21', 0.003629764065335753),
 ('p476', 0.003629764065335753),
 ('c55', 0.00361881785283474),
 ('c130', 0.00361881785283474),
 ('c216', 0.00361881785283474),
 ('c416', 0.00361881785283474),
 ('c326', 0.00361881785283474),
 ('c235', 0.00361881785283474),
 ('c349', 0.00361881785283474),
 ('c318', 0.00361881785283474),
 ('c383', 0.00361881785283474),
 ('c361', 0.00361881785283474),
 ('c243', 0.00361881785283474),
 ('c185', 0.00361881785283474),
 ('c399', 0.00361881785283474),
 ('c313', 0.00361881785283474),
 ('c298', 0.00361881785283474),
 ('c219', 0.00361881785283474),
 ('c88', 0.00361881785283474),
 ('c91', 0.00361881785283474),
 ('c284', 0.00361881785283474),
 ('c207', 0.00361881785283474),
 ('c277', 0.00361881785283474),
 ('c341', 0.00361881785283474),
 ('c339', 0.00361881785283474),
 ('c53', 0.00361881785283474),
 ('c85', 0.00361881785283474),
 ('c122', 0.00361881785283474),
 ('c71', 0.00361881785283474),
 ('c282', 0.00361881785283474),
 ('c98', 0.00361881785283474),
 ('c241', 0.00361881785283474),
 ('c157', 0.00361881785283474),
 ('c352', 0.00361881785283474),
 ('c467', 0.00361881785283474),
 ('c324', 0.00361881785283474),
 ('c398', 0.00361881785283474),
 ('c196', 0.00361881785283474),
 ('c83', 0.00361881785283474),
 ('c221', 0.00361881785283474),
 ('c41', 0.00361881785283474),
 ('c274', 0.00361881785283474),
 ('c356', 0.00361881785283474),
 ('c343', 0.00361881785283474),
 ('c451', 0.00361881785283474),
 ('c396', 0.00361881785283474),
 ('c13', 0.00361881785283474),
 ('c146', 0.00361881785283474),
 ('c73', 0.00361881785283474),
 ('c406', 0.00361881785283474),
 ('c172', 0.00361881785283474),
 ('c308', 0.00361881785283474),
 ('c156', 0.00361881785283474),
 ('c174', 0.00361881785283474),
 ('c58', 0.00361881785283474),
 ('c6', 0.00361881785283474),
 ('c165', 0.00361881785283474),
 ('c321', 0.00361881785283474),
 ('c380', 0.00361881785283474),
 ('c353', 0.00361881785283474),
 ('c452', 0.00361881785283474),
 ('c360', 0.00361881785283474),
 ('c162', 0.00361881785283474),
 ('c461', 0.00361881785283474),
 ('c234', 0.00361881785283474),
 ('c310', 0.00361881785283474),
 ('c211', 0.00361881785283474),
 ('c530', 0.00361881785283474),
 ('c322', 0.00361881785283474),
 ('c365', 0.00361881785283474),
 ('c242', 0.00361881785283474),
 ('c269', 0.00361881785283474),
 ('c259', 0.00361881785283474),
 ('c20', 0.00361881785283474),
 ('c136', 0.00361881785283474),
 ('c487', 0.00361881785283474),
 ('c400', 0.00361881785283474),
 ('c177', 0.00361881785283474),
 ('c334', 0.00361881785283474),
 ('c287', 0.00361881785283474),
 ('c190', 0.00361881785283474),
 ('c481', 0.00361881785283474),
 ('c266', 0.00361881785283474),
 ('c68', 0.00361881785283474),
 ('c199', 0.00361881785283474),
 ('c188', 0.00361881785283474),
 ('c254', 0.00361881785283474),
 ('c101', 0.00361881785283474),
 ('c390', 0.00361881785283474),
 ('c115', 0.00361881785283474),
 ('c494', 0.00361881785283474),
 ('c514', 0.00361881785283474),
 ('c214', 0.00361881785283474),
 ('c460', 0.00361881785283474),
 ('c70', 0.00361881785283474),
 ('c158', 0.00361881785283474),
 ('c267', 0.0024125452352231603),
 ('c535', 0.0024125452352231603),
 ('c397', 0.0024125452352231603),
 ('c202', 0.0024125452352231603),
 ('c139', 0.0024125452352231603),
 ('c458', 0.0024125452352231603),
 ('c484', 0.0024125452352231603),
 ('c92', 0.0024125452352231603),
 ('c372', 0.0024125452352231603),
 ('c303', 0.0024125452352231603),
 ('c215', 0.0024125452352231603),
 ('c443', 0.0024125452352231603),
 ('c424', 0.0024125452352231603),
 ('c233', 0.0024125452352231603),
 ('c45', 0.0024125452352231603),
 ('c184', 0.0024125452352231603),
 ('c54', 0.0024125452352231603),
 ('c359', 0.0024125452352231603),
 ('c457', 0.0024125452352231603),
 ('c144', 0.0024125452352231603),
 ('c517', 0.0024125452352231603),
 ('c439', 0.0024125452352231603),
 ('c125', 0.0024125452352231603),
 ('c392', 0.0024125452352231603),
 ('c433', 0.0024125452352231603),
 ('c512', 0.0024125452352231603),
 ('c374', 0.0024125452352231603),
 ('c265', 0.0024125452352231603),
 ('c194', 0.0024125452352231603),
 ('c100', 0.0024125452352231603),
 ('c8', 0.0024125452352231603),
 ('c106', 0.0024125452352231603),
 ('c393', 0.0024125452352231603),
 ('c376', 0.0024125452352231603),
 ('c228', 0.0024125452352231603),
 ('c264', 0.0024125452352231603),
 ('c375', 0.0024125452352231603),
 ('c191', 0.0024125452352231603),
 ('c342', 0.0024125452352231603),
 ('c295', 0.0024125452352231603),
 ('c1', 0.0024125452352231603),
 ('c229', 0.0024125452352231603),
 ('c358', 0.0024125452352231603),
 ('c371', 0.0024125452352231603),
 ('c268', 0.0024125452352231603),
 ('c279', 0.0024125452352231603),
 ('c490', 0.0024125452352231603),
 ('c513', 0.0024125452352231603),
 ('c347', 0.0024125452352231603),
 ('c289', 0.0024125452352231603),
 ('c369', 0.0024125452352231603),
 ('c168', 0.0024125452352231603),
 ('c505', 0.0024125452352231603),
 ('c373', 0.0024125452352231603),
 ('c418', 0.0024125452352231603),
 ('c489', 0.0024125452352231603),
 ('c389', 0.0024125452352231603),
 ('c10', 0.0024125452352231603),
 ('c401', 0.0024125452352231603),
 ('c468', 0.0024125452352231603),
 ('c407', 0.0024125452352231603),
 ('c473', 0.0024125452352231603),
 ('c99', 0.0024125452352231603),
 ('c131', 0.0024125452352231603),
 ('c459', 0.0024125452352231603),
 ('c348', 0.0024125452352231603),
 ('c148', 0.0024125452352231603),
 ('c96', 0.0024125452352231603),
 ('c147', 0.0024125452352231603),
 ('c508', 0.0024125452352231603),
 ('c220', 0.0024125452352231603),
 ('c93', 0.0024125452352231603),
 ('c511', 0.0024125452352231603),
 ('c351', 0.0024125452352231603),
 ('c501', 0.0024125452352231603),
 ('c479', 0.0024125452352231603),
 ('c118', 0.0024125452352231603),
 ('c302', 0.0024125452352231603),
 ('c537', 0.0024125452352231603),
 ('c384', 0.0024125452352231603),
 ('c270', 0.0024125452352231603),
 ('c3', 0.0024125452352231603),
 ('c4', 0.0024125452352231603),
 ('c299', 0.0024125452352231603),
 ('c154', 0.0024125452352231603),
 ('c437', 0.0024125452352231603),
 ('c261', 0.0024125452352231603),
 ('c203', 0.0024125452352231603),
 ('c192', 0.0024125452352231603),
 ('c25', 0.0024125452352231603),
 ('c541', 0.0024125452352231603),
 ('c503', 0.0024125452352231603),
 ('c253', 0.0024125452352231603),
 ('c387', 0.0024125452352231603),
 ('c37', 0.0024125452352231603),
 ('c292', 0.0024125452352231603),
 ('c408', 0.0024125452352231603),
 ('c502', 0.0024125452352231603),
 ('c516', 0.0024125452352231603),
 ('c183', 0.0024125452352231603),
 ('c135', 0.0024125452352231603),
 ('c364', 0.0024125452352231603),
 ('c402', 0.0024125452352231603),
 ('c223', 0.0024125452352231603),
 ('c291', 0.0024125452352231603),
 ('c258', 0.0024125452352231603),
 ('c120', 0.0024125452352231603),
 ('c434', 0.0024125452352231603),
 ('c368', 0.0024125452352231603),
 ('c453', 0.0024125452352231603),
 ('c27', 0.0024125452352231603),
 ('c222', 0.0024125452352231603),
 ('c200', 0.0024125452352231603),
 ('c186', 0.0024125452352231603),
 ('c280', 0.0024125452352231603),
 ('c143', 0.0024125452352231603),
 ('c38', 0.0024125452352231603),
 ('c469', 0.0024125452352231603),
 ('c536', 0.0024125452352231603),
 ('c529', 0.0024125452352231603),
 ('c441', 0.0024125452352231603),
 ('c141', 0.0024125452352231603),
 ('c509', 0.0024125452352231603),
 ('c278', 0.0024125452352231603),
 ('c391', 0.0024125452352231603),
 ('c319', 0.0024125452352231603),
 ('c445', 0.0024125452352231603),
 ('c415', 0.0024125452352231603),
 ('c340', 0.0024125452352231603),
 ('c362', 0.0024125452352231603),
 ('c249', 0.0024125452352231603),
 ('c5', 0.0024125452352231603),
 ('c346', 0.0024125452352231603),
 ('c124', 0.0024125452352231603),
 ('c447', 0.0024125452352231603),
 ('c34', 0.0024125452352231603),
 ('c410', 0.0024125452352231603),
 ('c256', 0.0024125452352231603),
 ('c345', 0.0024125452352231603),
 ('c121', 0.0024125452352231603),
 ('c499', 0.0024125452352231603),
 ('c197', 0.0024125452352231603),
 ('c255', 0.0024125452352231603),
 ('c69', 0.0024125452352231603),
 ('c272', 0.0024125452352231603),
 ('c260', 0.0024125452352231603),
 ('c132', 0.0024125452352231603),
 ('c134', 0.0024125452352231603),
 ('c48', 0.0024125452352231603),
 ('c252', 0.0024125452352231603),
 ('c16', 0.0024125452352231603),
 ('c519', 0.0024125452352231603),
 ('c240', 0.0024125452352231603),
 ('c208', 0.0024125452352231603),
 ('c32', 0.0024125452352231603),
 ('c317', 0.0024125452352231603),
 ('c444', 0.0024125452352231603),
 ('c493', 0.0024125452352231603),
 ('c137', 0.0024125452352231603),
 ('c210', 0.0024125452352231603),
 ('c304', 0.0024125452352231603),
 ('c307', 0.0024125452352231603),
 ('c102', 0.0024125452352231603),
 ('c64', 0.0024125452352231603),
 ('c314', 0.0024125452352231603),
 ('c486', 0.0024125452352231603),
 ('c15', 0.0024125452352231603),
 ('c129', 0.0024125452352231603),
 ('c382', 0.0024125452352231603),
 ('c171', 0.0024125452352231603),
 ('c176', 0.0024125452352231603),
 ('c525', 0.0024125452352231603),
 ('c21', 0.0024125452352231603),
 ('c17', 0.0024125452352231603),
 ('c49', 0.0024125452352231603),
 ('c142', 0.0024125452352231603),
 ('c394', 0.0024125452352231603),
 ('c175', 0.0024125452352231603),
 ('c395', 0.0024125452352231603),
 ('c495', 0.0024125452352231603),
 ('c474', 0.0024125452352231603),
 ('c436', 0.0024125452352231603),
 ('c198', 0.0024125452352231603),
 ('c182', 0.0024125452352231603),
 ('c244', 0.0024125452352231603),
 ('c2', 0.0024125452352231603),
 ('c167', 0.0024125452352231603),
 ('c133', 0.0024125452352231603),
 ('c333', 0.0024125452352231603),
 ('c195', 0.0024125452352231603),
 ('c385', 0.0024125452352231603),
 ('c193', 0.0024125452352231603),
 ('c404', 0.0024125452352231603),
 ('c311', 0.0024125452352231603),
 ('c109', 0.0024125452352231603),
 ('c12', 0.0024125452352231603),
 ('c246', 0.0024125452352231603),
 ('p213', 0.0018148820326678765),
 ('p61', 0.0018148820326678765),
 ('p386', 0.0018148820326678765),
 ('p805', 0.0018148820326678765),
 ('p590', 0.0018148820326678765),
 ('p329', 0.0018148820326678765),
 ('p462', 0.0018148820326678765),
 ('p616', 0.0018148820326678765),
 ('p566', 0.0018148820326678765),
 ('p434', 0.0018148820326678765),
 ('p130', 0.0018148820326678765),
 ('p499', 0.0018148820326678765),
 ('p693', 0.0018148820326678765),
 ('p282', 0.0018148820326678765),
 ('p188', 0.0018148820326678765),
 ('p432', 0.0018148820326678765),
 ('p540', 0.0018148820326678765),
 ('p122', 0.0018148820326678765),
 ('p5', 0.0018148820326678765),
 ('p677', 0.0018148820326678765),
 ('p166', 0.0018148820326678765),
 ('p571', 0.0018148820326678765),
 ('p281', 0.0018148820326678765),
 ('p358', 0.0018148820326678765),
 ('p359', 0.0018148820326678765),
 ('p694', 0.0018148820326678765),
 ('p608', 0.0018148820326678765),
 ('p92', 0.0018148820326678765),
 ('p258', 0.0018148820326678765),
 ('p564', 0.0018148820326678765),
 ('p795', 0.0018148820326678765),
 ('p164', 0.0018148820326678765),
 ('p161', 0.0018148820326678765),
 ('p769', 0.0018148820326678765),
 ('p471', 0.0018148820326678765),
 ('p140', 0.0018148820326678765),
 ('p385', 0.0018148820326678765),
 ('p154', 0.0018148820326678765),
 ('p34', 0.0018148820326678765),
 ('p614', 0.0018148820326678765),
 ('p657', 0.0018148820326678765),
 ('p262', 0.0018148820326678765),
 ('p194', 0.0018148820326678765),
 ('p275', 0.0018148820326678765),
 ('p196', 0.0018148820326678765),
 ('p347', 0.0018148820326678765),
 ('p328', 0.0018148820326678765),
 ('p292', 0.0018148820326678765),
 ('p457', 0.0018148820326678765),
 ('p36', 0.0018148820326678765),
 ('p368', 0.0018148820326678765),
 ('p293', 0.0018148820326678765),
 ('p596', 0.0018148820326678765),
 ('p732', 0.0018148820326678765),
 ('p427', 0.0018148820326678765),
 ('p223', 0.0018148820326678765),
 ('p132', 0.0018148820326678765),
 ('p52', 0.0018148820326678765),
 ('p626', 0.0018148820326678765),
 ('p560', 0.0018148820326678765),
 ('p624', 0.0018148820326678765),
 ('p287', 0.0018148820326678765),
 ('p286', 0.0018148820326678765),
 ('p493', 0.0018148820326678765),
 ('p201', 0.0018148820326678765),
 ('p625', 0.0018148820326678765),
 ('p170', 0.0018148820326678765),
 ('p643', 0.0018148820326678765),
 ('p317', 0.0018148820326678765),
 ('p15', 0.0018148820326678765),
 ('p816', 0.0018148820326678765),
 ('p290', 0.0018148820326678765),
 ('p191', 0.0018148820326678765),
 ('p530', 0.0018148820326678765),
 ('p555', 0.0018148820326678765),
 ('p440', 0.0018148820326678765),
 ('p701', 0.0018148820326678765),
 ('p252', 0.0018148820326678765),
 ('p9', 0.0018148820326678765),
 ('p760', 0.0018148820326678765),
 ('p587', 0.0018148820326678765),
 ('p554', 0.0018148820326678765),
 ('p712', 0.0018148820326678765),
 ('p782', 0.0018148820326678765),
 ('p784', 0.0018148820326678765),
 ('p618', 0.0018148820326678765),
 ('p477', 0.0018148820326678765),
 ('p374', 0.0018148820326678765),
 ('p168', 0.0018148820326678765),
 ('p473', 0.0018148820326678765),
 ('p150', 0.0018148820326678765),
 ('p521', 0.0018148820326678765),
 ('p388', 0.0018148820326678765),
 ('p730', 0.0018148820326678765),
 ('p318', 0.0018148820326678765),
 ('p539', 0.0018148820326678765),
 ('p320', 0.0018148820326678765),
 ('p484', 0.0018148820326678765),
 ('p810', 0.0018148820326678765),
 ('p722', 0.0018148820326678765),
 ('p631', 0.0018148820326678765),
 ('p266', 0.0018148820326678765),
 ('p63', 0.0018148820326678765),
 ('p748', 0.0018148820326678765),
 ('p660', 0.0018148820326678765),
 ('p622', 0.0018148820326678765),
 ('p725', 0.0018148820326678765),
 ('p203', 0.0018148820326678765),
 ('p118', 0.0018148820326678765),
 ('p19', 0.0018148820326678765),
 ('p395', 0.0018148820326678765),
 ('p178', 0.0018148820326678765),
 ('p25', 0.0018148820326678765),
 ('p436', 0.0018148820326678765),
 ('p558', 0.0018148820326678765),
 ('p426', 0.0018148820326678765),
 ('p438', 0.0018148820326678765),
 ('p408', 0.0018148820326678765),
 ('p611', 0.0018148820326678765),
 ('p319', 0.0018148820326678765),
 ('p710', 0.0018148820326678765),
 ('p711', 0.0018148820326678765),
 ('p628', 0.0018148820326678765),
 ('p90', 0.0018148820326678765),
 ('p586', 0.0018148820326678765),
 ('p296', 0.0018148820326678765),
 ('p771', 0.0018148820326678765),
 ('p342', 0.0018148820326678765),
 ('p737', 0.0018148820326678765),
 ('p13', 0.0018148820326678765),
 ('p483', 0.0018148820326678765),
 ('p685', 0.0018148820326678765),
 ('p727', 0.0018148820326678765),
 ('p55', 0.0018148820326678765),
 ('p260', 0.0018148820326678765),
 ('p724', 0.0018148820326678765),
 ('p749', 0.0018148820326678765),
 ('p529', 0.0018148820326678765),
 ('p44', 0.0018148820326678765),
 ('p523', 0.0018148820326678765),
 ('p31', 0.0018148820326678765),
 ('p733', 0.0018148820326678765),
 ('p378', 0.0018148820326678765),
 ('p85', 0.0018148820326678765),
 ('p428', 0.0018148820326678765),
 ('p23', 0.0018148820326678765),
 ('p49', 0.0018148820326678765),
 ('p217', 0.0018148820326678765),
 ('p265', 0.0018148820326678765),
 ('p409', 0.0018148820326678765),
 ('p376', 0.0018148820326678765),
 ('p72', 0.0018148820326678765),
 ('p337', 0.0018148820326678765),
 ('p187', 0.0018148820326678765),
 ('p485', 0.0018148820326678765),
 ('p233', 0.0018148820326678765),
 ('p791', 0.0018148820326678765),
 ('p518', 0.0018148820326678765),
 ('p594', 0.0018148820326678765),
 ('p39', 0.0018148820326678765),
 ('p648', 0.0018148820326678765),
 ('p364', 0.0018148820326678765),
 ('p403', 0.0018148820326678765),
 ('p807', 0.0018148820326678765),
 ('p479', 0.0018148820326678765),
 ('p545', 0.0018148820326678765),
 ('p488', 0.0018148820326678765),
 ('p254', 0.0018148820326678765),
 ('p644', 0.0018148820326678765),
 ('p520', 0.0018148820326678765),
 ('p808', 0.0018148820326678765),
 ('p734', 0.0018148820326678765),
 ('p803', 0.0018148820326678765),
 ('p759', 0.0018148820326678765),
 ('p238', 0.0018148820326678765),
 ('p450', 0.0018148820326678765),
 ('p713', 0.0018148820326678765),
 ('p557', 0.0018148820326678765),
 ('p578', 0.0018148820326678765),
 ('p550', 0.0018148820326678765),
 ('p76', 0.0018148820326678765),
 ('p670', 0.0018148820326678765),
 ('p757', 0.0018148820326678765),
 ('p177', 0.0018148820326678765),
 ('p475', 0.0018148820326678765),
 ('p99', 0.0018148820326678765),
 ('p234', 0.0018148820326678765),
 ('p308', 0.0018148820326678765),
 ('p197', 0.0018148820326678765),
 ('p671', 0.0018148820326678765),
 ('p24', 0.0018148820326678765),
 ('p224', 0.0018148820326678765),
 ('p654', 0.0018148820326678765),
 ('p464', 0.0018148820326678765),
 ('p609', 0.0018148820326678765),
 ('p461', 0.0018148820326678765),
 ('p526', 0.0018148820326678765),
 ('p639', 0.0018148820326678765),
 ('p646', 0.0018148820326678765),
 ('p579', 0.0018148820326678765),
 ('p789', 0.0018148820326678765),
 ('p198', 0.0018148820326678765),
 ('p289', 0.0018148820326678765),
 ('p83', 0.0018148820326678765),
 ('p391', 0.0018148820326678765),
 ('p582', 0.0018148820326678765),
 ('p718', 0.0018148820326678765),
 ('p259', 0.0018148820326678765),
 ('p738', 0.0018148820326678765),
 ('p193', 0.0018148820326678765),
 ('p330', 0.0018148820326678765),
 ('p401', 0.0018148820326678765),
 ('p726', 0.0018148820326678765),
 ('p603', 0.0018148820326678765),
 ('p827', 0.0018148820326678765),
 ('p180', 0.0018148820326678765),
 ('p360', 0.0018148820326678765),
 ('p185', 0.0018148820326678765),
 ('p186', 0.0018148820326678765),
 ('p380', 0.0018148820326678765),
 ('p84', 0.0018148820326678765),
 ('p314', 0.0018148820326678765),
 ('p762', 0.0018148820326678765),
 ('p591', 0.0018148820326678765),
 ('p621', 0.0018148820326678765),
 ('p195', 0.0018148820326678765),
 ('p120', 0.0018148820326678765),
 ('p754', 0.0018148820326678765),
 ('p537', 0.0018148820326678765),
 ('p684', 0.0018148820326678765),
 ('p576', 0.0018148820326678765),
 ('p589', 0.0018148820326678765),
 ('p509', 0.0018148820326678765),
 ('p389', 0.0018148820326678765),
 ('p605', 0.0018148820326678765),
 ('p377', 0.0018148820326678765),
 ('p306', 0.0018148820326678765),
 ('p151', 0.0018148820326678765),
 ('p544', 0.0018148820326678765),
 ('p656', 0.0018148820326678765),
 ('p109', 0.0018148820326678765),
 ('p126', 0.0018148820326678765),
 ('p687', 0.0018148820326678765),
 ('p205', 0.0018148820326678765),
 ('p29', 0.0018148820326678765),
 ('p675', 0.0018148820326678765),
 ('p658', 0.0018148820326678765),
 ('p559', 0.0018148820326678765),
 ('p717', 0.0018148820326678765),
 ('p236', 0.0018148820326678765),
 ('p340', 0.0018148820326678765),
 ('p136', 0.0018148820326678765),
 ('p556', 0.0018148820326678765),
 ('p581', 0.0018148820326678765),
 ('p714', 0.0018148820326678765),
 ('p773', 0.0018148820326678765),
 ('p64', 0.0018148820326678765),
 ('p14', 0.0018148820326678765),
 ('p272', 0.0018148820326678765),
 ('p231', 0.0018148820326678765),
 ('p505', 0.0018148820326678765),
 ('p645', 0.0018148820326678765),
 ('p635', 0.0018148820326678765),
 ('p175', 0.0018148820326678765),
 ('p311', 0.0018148820326678765),
 ('p310', 0.0018148820326678765),
 ('p826', 0.0018148820326678765),
 ('p263', 0.0018148820326678765),
 ('p535', 0.0018148820326678765),
 ('p332', 0.0018148820326678765),
 ('p16', 0.0018148820326678765),
 ('p346', 0.0018148820326678765),
 ('p248', 0.0018148820326678765),
 ('p704', 0.0018148820326678765),
 ('p700', 0.0018148820326678765),
 ('p204', 0.0018148820326678765),
 ('p820', 0.0018148820326678765),
 ('p465', 0.0018148820326678765),
 ('p312', 0.0018148820326678765),
 ('p176', 0.0018148820326678765),
 ('p169', 0.0018148820326678765),
 ('p307', 0.0018148820326678765),
 ('p623', 0.0018148820326678765),
 ('p237', 0.0018148820326678765),
 ('p341', 0.0018148820326678765),
 ('p500', 0.0018148820326678765),
 ('p27', 0.0018148820326678765),
 ('p210', 0.0018148820326678765),
 ('p407', 0.0018148820326678765),
 ('p752', 0.0018148820326678765),
 ('p753', 0.0018148820326678765),
 ('p492', 0.0018148820326678765),
 ('p7', 0.0018148820326678765),
 ('p375', 0.0018148820326678765),
 ('p498', 0.0018148820326678765),
 ('p355', 0.0018148820326678765),
 ('p43', 0.0018148820326678765),
 ('p607', 0.0018148820326678765),
 ('p599', 0.0018148820326678765),
 ('p620', 0.0018148820326678765),
 ('p113', 0.0018148820326678765),
 ('p641', 0.0018148820326678765),
 ('p650', 0.0018148820326678765),
 ('p780', 0.0018148820326678765),
 ('p551', 0.0018148820326678765),
 ('p141', 0.0018148820326678765),
 ('p750', 0.0018148820326678765),
 ('p661', 0.0018148820326678765),
 ('p133', 0.0018148820326678765),
 ('p669', 0.0018148820326678765),
 ('p251', 0.0018148820326678765),
 ('p241', 0.0018148820326678765),
 ('p829', 0.0018148820326678765),
 ('p181', 0.0018148820326678765),
 ('p508', 0.0018148820326678765),
 ('p445', 0.0018148820326678765),
 ('p516', 0.0018148820326678765),
 ('p570', 0.0018148820326678765),
 ('p206', 0.0018148820326678765),
 ('p230', 0.0018148820326678765),
 ('p761', 0.0018148820326678765),
 ('p772', 0.0018148820326678765),
 ('p580', 0.0018148820326678765),
 ('p139', 0.0018148820326678765),
 ('p817', 0.0018148820326678765),
 ('p593', 0.0018148820326678765),
 ('p324', 0.0018148820326678765),
 ('p575', 0.0018148820326678765),
 ('p588', 0.0018148820326678765),
 ('p218', 0.0018148820326678765),
 ('p638', 0.0018148820326678765),
 ('p121', 0.0018148820326678765),
 ('p467', 0.0018148820326678765),
 ('p486', 0.0018148820326678765),
 ('p595', 0.0018148820326678765),
 ('p348', 0.0018148820326678765),
 ('p93', 0.0018148820326678765),
 ('p688', 0.0018148820326678765),
 ('p91', 0.0018148820326678765),
 ('p4', 0.0018148820326678765),
 ('p278', 0.0018148820326678765),
 ('p706', 0.0018148820326678765),
 ('p519', 0.0018148820326678765),
 ('p525', 0.0018148820326678765),
 ('p390', 0.0018148820326678765),
 ('p800', 0.0018148820326678765),
 ('p463', 0.0018148820326678765),
 ('p116', 0.0018148820326678765),
 ('p806', 0.0018148820326678765),
 ('p647', 0.0018148820326678765),
 ('p268', 0.0018148820326678765),
 ('p448', 0.0018148820326678765),
 ('p766', 0.0018148820326678765),
 ('p279', 0.0018148820326678765),
 ('p257', 0.0018148820326678765),
 ('p478', 0.0018148820326678765),
 ('p157', 0.0018148820326678765),
 ('p653', 0.0018148820326678765),
 ('p673', 0.0018148820326678765),
 ('p801', 0.0018148820326678765),
 ('p619', 0.0018148820326678765),
 ('p228', 0.0018148820326678765),
 ('p53', 0.0018148820326678765),
 ('p20', 0.0018148820326678765),
 ('p751', 0.0018148820326678765),
 ('p455', 0.0018148820326678765),
 ('p239', 0.0018148820326678765),
 ('p574', 0.0018148820326678765),
 ('p527', 0.0018148820326678765),
 ('p562', 0.0018148820326678765),
 ('p59', 0.0018148820326678765),
 ('p691', 0.0018148820326678765),
 ('p565', 0.0018148820326678765),
 ('p447', 0.0018148820326678765),
 ('p123', 0.0018148820326678765),
 ('p367', 0.0018148820326678765),
 ('p125', 0.0018148820326678765),
 ('p689', 0.0018148820326678765),
 ('p270', 0.0018148820326678765),
 ('p798', 0.0018148820326678765),
 ...]