Skip to content

Instantly share code, notes, and snippets.

@daemonfire300
Created November 16, 2014 19:45
Show Gist options
  • Save daemonfire300/158372afcf8ed94783e6 to your computer and use it in GitHub Desktop.
Save daemonfire300/158372afcf8ed94783e6 to your computer and use it in GitHub Desktop.
import igraph as ig
#from networkx import *
f = open('facebook-links.txt.anon', 'r')
def largest_graph(cur_graph):
if not is_connected(cur_graph):
# get a list of unconnected networks
sub_graphs = list(connected_component_subgraphs(cur_graph))
main_graph = sub_graphs[0]
# find the largest network in that list
for sg in sub_graphs:
if len(sg.nodes()) > len(main_graph.nodes()):
main_graph = sg
cur_graph = main_graph
else:
print("is connected")
g = ig.Graph()
#nxg = Graph()
v_i = 0
v_uniq = set()
for line in f:
l = line.split('\t')
v_start = l[0]
v_end = l[1]
v_uniq.add(l[0])
v_uniq.add(l[1])
f.seek(0)
g.add_vertices(len(v_uniq))
# print(g)
edges = list()
for line in f:
l = line.split('\t')
v_start = l[0]
v_end = l[1]
if not v_start.isdigit() or not v_end.isdigit():
continue
v_start = int(l[0]) - 1
v_end = int(l[1]) - 1
edge = (v_start, v_end)
v_i += 1
edges.append(edge)
#nxg.add_edge(v_start, v_end)
g.add_edges(edges)
g.simplify()
g.to_undirected(mode="mutual")
# nxg.add_edges_from(edges)
print("k")
"""
nxg = nxg.to_undirected()
#print(len(sorted(connected_component_subgraphs(nxg), key = len, reverse=True)[0].nodes()))
# get largest subgraph
sgs = sorted(connected_component_subgraphs(nxg), key=len, reverse=True)
print(len(sgs))
nxg = sgs[0]"""
'''nxg.add_edges_from(sgs[1].edges())
print("s", is_connected(nxg))
nxg.add_edges_from(sgs[1].edges())
print("s", is_connected(nxg))
nxg.add_edges_from(sgs[1].edges())
print("s", is_connected(nxg))'''
print("A")
#cb = nx.betweenness_centrality(nxg)
"""print("|V|", len(nxg)
)print("|E|", nxg.size())"""
#dia = g.diameter(directed=False, unconn=True) # nxg.size() # diameter(nxg)
print("_")
#print("Diameter: ", dia)
cb = g.betweenness(directed=False)
print("_")
print("Centrality:", cb[0])
print("max Centrality:", max(cb))
print("_._")
g.to_directed(mutual=True)
trc = g.triad_census()
print("_._")
print("Triad Census:", trc["300"])
print("Triad Census:", trc["030C"])
g.simplify()
g.to_undirected(mode="mutual")
cc = g.transitivity_undirected()
print("Clustering Coeff:", cc)
'''
g.to_undirected(mode="mutual")
g.simplify()
print("ehm ich glaube ich bin fertig, yolo")
ig.summary(g)
print("Diameter:", g.diameter(directed=False, unconn=False))
print("Reciprocity:", g.density())
#ecc = g.eccentricity()
betweenness = g.betweenness()
triads = g.triad_census()
print(betweenness[0])
print("done")'''
#g.write_svg('graph.svg', width=1920, height=1080)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment