summaryrefslogtreecommitdiff
path: root/structure/metrics/aggregate_layers_w.py
diff options
context:
space:
mode:
Diffstat (limited to 'structure/metrics/aggregate_layers_w.py')
-rw-r--r--structure/metrics/aggregate_layers_w.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/structure/metrics/aggregate_layers_w.py b/structure/metrics/aggregate_layers_w.py
new file mode 100644
index 0000000..cd5ea1d
--- /dev/null
+++ b/structure/metrics/aggregate_layers_w.py
@@ -0,0 +1,37 @@
+####
+##
+## Aggregate the layers of a multiplex, weigthing each edge according
+## to the number of times it occurs in the different layers
+##
+
+import sys
+import networkx as net
+
+
+if len(sys.argv) < 3:
+ print "Usage: %s <file1> <file2> [<file3>....]" % sys.argv(0)
+ sys.exit(1)
+
+G = net.Graph()
+
+lines = open(sys.argv[1], "r").readlines()
+
+for l in lines:
+ s,d = [int(x) for x in l.strip(" \n").split(" ")[:2]]
+ G.add_edge(s,d)
+ G[s][d]['weigth'] = 1
+
+for f in sys.argv[2:]:
+ lines = open(f, "r").readlines()
+ for l in lines:
+ s,d = [int(x) for x in l.strip(" \n").split(" ")[:2]]
+ if (G.has_edge(s,d)):
+ G[s][d]['weigth'] += 1
+ else:
+ G.add_edge(s,d)
+ G[s][d]['weigth'] = 1
+
+for s,d in G.edges():
+ print s,d, G[s][d]['weigth']
+
+