2012-10-25 77 views
0

我通過手動去,但想不出完全弄明白。NetworkX寫入文件

我有3列的一個巨大的文件,節點1打節點2具有一定實力。由此產生的許多集羣是由NetworkX完成的。但是我無法將這些文件加載​​到例如cytoscape中,因此我需要將每個羣集寫入單獨的文件。

我想:

for n in G: nx.write_weighted_edgelist(G[n], 'test'+str(count)) 

或者看着G.number_of_nodes /邊緣,G.graph.keys(),DIR(G),但這並不導致我想要的東西。

是否有單獨存儲每個集羣強度的一種方式?

隨着集羣= nx.connected_components(G)我能獲得簇但我失去所有的連接信息。

for n,nbrs in G.adjacency_iter(): 
      for nbr,eattr in nbrs.items(): 
        data=eattr['weight'] 
        if data < 2: 
          print('(%s, %s, %s)' % (n,nbr,data)) 

當在空行上使用它時,我認爲那些是單獨的集羣。

##########解
Clusters = nx.connected_components(G) 
    for Cluster in Clusters: 
      count = count + 1 
      cfile = open("tmp/Cluster_"+str(count)+".clus","w") 
      for C in Cluster: 
        hit = G[C] 
        for h in hit: 
          cfile.write('\t'.join([str(C),str(h),str(hit[h].values()[0]),"\n"])) 

回答

2

嘗試使用圖表= nx.connected_component_subgraphs()。這將返回一個圖表列表,您可以單獨編寫任何適用於細胞視圖的格式。

+0

昨晚我設法根據上面的新編輯進行修復。我會看看你的例子,謝謝! – Jasper