2012-10-25 7 views
0

Je suis passé par le manuel, mais ne pourrais pas complètement comprendre.NetworkX écrire dans le fichier

Je dispose d'un fichier massif de 3 colonnes, node1 frappe noeud 2 avec une certaine force. De nombreux clusters sont générés par NetworkX et cela fonctionne parfaitement. Cependant, je ne peux pas charger ces fichiers dans Cytoscape par exemple, alors je dois écrire chaque groupe dans un fichier séparé.

J'ai essayé:

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

Ou regardé en G.number_of_nodes/arêtes, G.graph.keys(), dir (G), mais ce résultat ne marche pas dans ce que je veux.

Y at-il un moyen de stocker chaque groupe séparément avec la force?

Avec je peux obtenir les grappes mais je perds toutes les informations de connexion Clusters = nx.connected_components (G). Lorsque j'utilise cela sur une ligne vide, je pense que ce sont des groupes distincts.

Solution ##########
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"])) 

Répondre

2

Essayez d'utiliser des graphiques = nx.connected_component_subgraphs(). Cela renverra une liste de graphiques que vous pourriez écrire individuellement dans n'importe quel format pour cytoscape.

+0

nuit dernière, je réussi à fixe selon la nouvelle édition ci-dessus. Je vais regarder dans votre exemple aussi bien merci! – Jasper