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