Skip to content
Snippets Groups Projects
Commit beef8eba authored by Yoann Dufresne's avatar Yoann Dufresne
Browse files

barcode graph evaluation

parent 2403e42b
No related branches found
No related tags found
No related merge requests found
...@@ -12,7 +12,7 @@ def parse_args(): ...@@ -12,7 +12,7 @@ def parse_args():
parser = argparse.ArgumentParser(description='Process a d2 graph (complete graph or path) to evaluate its quality.') parser = argparse.ArgumentParser(description='Process a d2 graph (complete graph or path) to evaluate its quality.')
parser.add_argument('filename', type=str, parser.add_argument('filename', type=str,
help='The file to evalute') help='The file to evalute')
parser.add_argument('--type', '-t', choices=["d2", "path", "d2-2annotate", "dgraphs"], default="path", required=True, parser.add_argument('--type', '-t', choices=["d2", "path", "bg", "d2-2annotate", "dgraphs"], default="path", required=True,
help="Define the data type to evaluate. Must be 'd2' or 'path' or 'd2-2annotate' (Rayan's hack).") help="Define the data type to evaluate. Must be 'd2' or 'path' or 'd2-2annotate' (Rayan's hack).")
parser.add_argument('--light-print', '-l', action='store_true', parser.add_argument('--light-print', '-l', action='store_true',
help='Print only wrong nodes and paths') help='Print only wrong nodes and paths')
...@@ -43,6 +43,20 @@ def save_graph(g, filename): ...@@ -43,6 +43,20 @@ def save_graph(g, filename):
print("Wrong file format. Require graphml or gefx format", file=sys.stderr) print("Wrong file format. Require graphml or gefx format", file=sys.stderr)
exit() exit()
def transform_bg(graph):
idx = 0
node_names = {}
nx.set_node_attributes(graph, 0, 'score')
nx.set_node_attributes(graph, "", 'barcode_edges')
for node in graph.nodes():
graph.nodes[node]['udg'] = f"[{node}][][]"
node_names[node] = str(idx)
idx += 1
graph = nx.relabel_nodes(graph, node_names)
return graph
...@@ -655,7 +669,11 @@ def main(): ...@@ -655,7 +669,11 @@ def main():
elif args.type == "dgraphs": elif args.type == "dgraphs":
udg_per_node = parse_udg_qualities(graph) udg_per_node = parse_udg_qualities(graph)
# print(udg_per_node) # print(udg_per_node)
elif args.type == "d2": elif args.type == "bg" or args.type == "d2":
if args.type == "bg":
graph = transform_bg(graph)
components = list(nx.connected_components(graph)) components = list(nx.connected_components(graph))
components.sort(key=lambda x: -len(x)) components.sort(key=lambda x: -len(x))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment