[BioC] proposed: a bridge between R and Cytoscape
Paul Shannon
pshannon at systemsbiology.org
Mon Jun 21 23:21:43 CEST 2010
Many years ago, a couple of us wrote the first version of Cytoscape. That project has subsequently, in the hands of others, developed into a fairly popular bioinformatics network exploration tool, with a variety of analytical and layout plugins.
I, myself, have spent most of the intervening years analyzing data with R and Bioconductor, doing network visualization with an ad hoc, home-grown rJava & RMI connection I ginned up to an old version of cytoscape.
I propose, now, to redo that, probably using sockets (a la the IGV/R bridge) from R, connecting to, and controlling Cytoscape 2.7 via a new plugin.
I propose to provide a 'little language' in a bioconductor package, which allows graphs (nodes, edges, and arbitrary attributes) to be passed back and forth; to be laid out; rendered; animated (for example, with time course experimental data); along with some simple manipulations. My little language is excerpted below.
The Cytoscape community has expressed some enthusiasm for this idea, and offered some assistance. I hope to find similar interest (and maybe occasional support) from the Bioc and general R communities as well.
If you have any comments or suggestions on this idea, I'd love to hear them. I want to do this in such a way that it will be useful to lots of people.
- Paul Shannon
Institute for Systems Biology
Seattle
--- the existing R/cytoscape little language
send (graph)
get () # current subnetwork displayed in Cytoscape
select (node.names)
selectFirstNeighbors ()
clear () # clears all current selections
invert () # inverts the current selection
hide () # hides selected nodes
unhide () # reveals everything hidden
deleteSelection ()
destroy () # deletes the current graph
layout () # asks that the current layout be applied; actual
write.gml (filename) # save current graph to file
render () # applies all visual mapping ('vizmap') rules, see below
--- vizmap rules: specify node and edge rendering, in which the specified attribute controls visual appearance
nodeLabel (graph, nodeAttributeName)
nodeFontSize (newSize)
nodeShape (graph, nodeAttributeName, keyValuePairs)
defaultNodeShape (graph, shape)
defaultNodeSize (graph, size)
nodeSize (graph, nodeAttributeName, keyValuePairs)
nodeColor (graph, nodeAttributeName, keyValuePairs)
nodeColorDiscrete (graph, nodeAttributeName, keyValuePairs)
defaultNodeColor (graph, color)
nodeBorderStyle (graph, nodeAttributeName, keyValuePairs)
defaultNodeBorderStyle (graph, style)
nodeBorderColor (graph, nodeAttributeName, keyValuePairs)
defaultNodeBorderColor (graph, color)
edgeColor (graph, edgeAttributeName, keyValuePairs)
edgeColorDiscrete (graph, edgeAttributeName, keyValuePairs)
defaultEdgeColor (graph, color)
edgeStyle (graph, edgeAttributeName, keyValuePairs)
defaultEdgeStyle (graph, style)
targetArrow (graph, edgeAttributeName, keyValuePairs)
defaultTargetArrow (graph, arrow)
sourceArrow (graph, edgeAttributeName, keyValuePairs)
defaultSourceArrow (graph, arrow)
More information about the Bioconductor
mailing list