From 153334a766ed5f266c6ff062d20e69a403933268 Mon Sep 17 00:00:00 2001
From: Lionel GUEZ <guez@lmd.ens.fr>
Date: Fri, 3 Mar 2023 22:01:09 +0100
Subject: [PATCH] Import files

---
 Overlap/edgelist_to_Graphviz.py   | 16 ++++++++++++++++
 Trajectories/edgelist_test.csv    | 28 ++++++++++++++++++++++++++++
 Trajectories/extract_component.py | 25 +++++++++++++++++++++++++
 3 files changed, 69 insertions(+)
 create mode 100755 Overlap/edgelist_to_Graphviz.py
 create mode 100644 Trajectories/edgelist_test.csv
 create mode 100644 Trajectories/extract_component.py

diff --git a/Overlap/edgelist_to_Graphviz.py b/Overlap/edgelist_to_Graphviz.py
new file mode 100755
index 00000000..7232483d
--- /dev/null
+++ b/Overlap/edgelist_to_Graphviz.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+
+import csv
+import pygraphviz as pgv
+import sys
+
+if len(sys.argv) != 3:
+    sys.exit("Required arguments: input-edgelist output-Graphviz")
+
+G = pgv.AGraph(directed = True)
+
+with open(sys.argv[1], newline = '') as f:
+    reader = csv.reader(f, delimiter = " ")
+    for row in reader: G.add_edge(*row)
+
+G.write(sys.argv[2])
diff --git a/Trajectories/edgelist_test.csv b/Trajectories/edgelist_test.csv
new file mode 100644
index 00000000..3a6eb289
--- /dev/null
+++ b/Trajectories/edgelist_test.csv
@@ -0,0 +1,28 @@
+1 2
+2 3
+2 4
+3 4
+4 5
+4 9
+5 6
+6 7
+7 8
+9 10
+9 13
+10 11
+11 12
+12 16
+13 14
+14 15
+15 16
+16 26
+26 27
+27 17
+27 20
+17 18
+18 19
+20 21
+21 22
+23 24
+23 25
+25 3
diff --git a/Trajectories/extract_component.py b/Trajectories/extract_component.py
new file mode 100644
index 00000000..50d51523
--- /dev/null
+++ b/Trajectories/extract_component.py
@@ -0,0 +1,25 @@
+import graph_tool
+import csv
+from graph_tool import topology
+
+g = graph_tool.load_graph_from_csv("edgelist.csv", directed = True,
+                                   csv_options = {'delimiter': ' ',
+                                                  'skipinitialspace': True})
+g.set_directed(False)
+
+for v in g.vertices():
+    if g.vp.name[v] == "109114663": break
+
+label = topology.label_out_component(g, v)
+g.set_vertex_filter(label)
+g.purge_vertices()
+g.set_vertex_filter(None)
+g.set_directed(True)
+
+with open("component.csv", "w", newline = "") as f:
+    writer = csv.writer(f, lineterminator = "\n", delimiter = " ")
+
+    for e in g.edges():
+        v_source = e.source()
+        v_target = e.target()
+        writer.writerow([g.vp.name[v_source], g.vp.name[v_target]])
-- 
GitLab