2011-04-29 15 views
7

Quiero usar networkx para generar un diseño para un gráfico. ¿Es posible transferir este diseño al cytoscape y dibujarlo allí? Intenté simplemente escribir un gráfico comoTransferir diseño de networkx a cytoscape

import networkx as nx 
G = nx.Graph() 
G.add_edge(0,1,weight=.1) 
G.add_edge(2,1,weight=.2) 
nx.write_gml(G,'g.gml') 
nx.write_graphml(G,'g.xml') 

Pero ninguno de estos se lee en cytoscape. No estoy seguro de cómo transferir el gráfico en un formato que puede incluir posiciones.

Respuesta

9

Su archivo GraphML g.xml se ve bien y se carga en Cytoscape para mí (estoy en una Mac). ¿Has instalado el complemento graphmlreader?

Si no es así, descárguelo y colóquelo en su carpeta de complementos, luego reinicie Cytoscape e intente cargar la red g.xml nuevamente.

Actualización Aquí hay algunos códigos para agregar la apariencia y el posicionamiento de los gráficos a un gráfico de red. Es un poco prolijo, y usted puede ser capaz de omitir algunos de los atributos en función de sus necesidades:

import networkx as nx 

G = nx.Graph() 
G.add_edge(0, 1, weight=0.1, label='edge', graphics={ 
    'width': 1.0, 'fill': '"#0000ff"', 'type': '"line"', 'Line': [], 
    'source_arrow': 0, 'target_arrow': 0}) 
nx.set_node_attributes(G, 'graphics', { 
    0: {'x': -85.0, 'y': -97.0, 'w': 20.0, 'h': 20.0, 
     'type': '"ellipse"', 'fill': '"#889999"', 'outline': '"#666666"', 
     'outline_width': 1.0}, 
    1: {'x': -16.0, 'y': -1.0, 'w': 40.0, 'h': 40.0, 
     'type': '"ellipse"', 'fill': '"#ff9999"', 'outline': '"#666666"', 
     'outline_width': 1.0} 
    }) 
nx.set_node_attributes(G, 'label', {0: "0", 1: "1"}) 
nx.write_gml(G, 'network.gml') 

Resultado:

enter image description here

+1

+1 por la punta. Así que pude leer en el archivo graphml en cytoscape. ¿Cómo codifico ahora las posiciones de nodo en el archivo graphml? – highBandWidth

+0

Cool - Le daré un ejemplo de cómo agregar los atributos de 'gráficos' del nodo en GML, ya que es un formato más compacto, y es posible que pueda traducir esto a GraphML. – samplebias

+1

¡Solo quería decir GRACIAS! ¡Este fragmento de código explicaba solo un poco más para convertir mis gráficos en cytoscape! Ahora puedo generar y visualizar con probabilidades interactivas completos mapas metabólicos. – Jasper

Cuestiones relacionadas