File: draft_assembly.py

package info (click to toggle)
hinge 0.5.0-8
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,972 kB
  • sloc: cpp: 9,480; ansic: 8,826; python: 5,023; sh: 340; makefile: 10
file content (36 lines) | stat: -rwxr-xr-x 864 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/python3

import networkx as nx
import sys
from collections import Counter

def linearize(filename):
    graph_name = filename.split('.')[0]+'.graphml'
    g = nx.read_graphml(graph_name)
    
    print(nx.info(g))
    
    # get first strong connected component
    
    con = list(nx.strongly_connected_component_subgraphs(g))
    
    con.sort(key = lambda x:len(x), reverse = True)
    print([len(item) for item in con])
    
    print(nx.info(con[0]))
    
    dfs_edges = list(nx.dfs_edges(con[0]))

    
    dfs_edges.append((dfs_edges[-1][-1], dfs_edges[0][0]))
    
    #print dfs_edges
    
    with open(filename.split('.')[0]+'.linear.edges', 'w') as f:
        for item in dfs_edges:
            f.write(item[0] + ' ' + item[1] + ' ' + str(con[0].edge[item[0]][item[1]]['ew'])+'\n')
            


filename = sys.argv[1]
linearize(filename)