Entering edit mode
Paul Shannon
★
1.1k
@paul-shannon-578
Last seen 10.2 years ago
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)