4696
Comment:
|
5565
|
Deletions are marked like this. | Additions are marked like this. |
Line 14: | Line 14: |
This is an RFC to create a core Cytoscape plugin that will support "Excentric Labeling". | This is an RFC to create a Cytoscape plugin that will support "Excentric Labeling". |
Line 37: | Line 37: |
##== Biological Questions / Use Cases == |
== Biological Questions / Use Cases == Large networks and pathways can be difficult to interpret and navigate because of the difficulty in identifying individual nodes. Quick``Find helps end users quickly find nodes of interest, but does not help users identify neighboring nodes of interest. Excentric labeling provides a dynamic method of quickly identifying nodes within a neighborhood, and will help end users interpret and navigate biological networks and pathways. |
Line 47: | Line 49: |
* Do we want to enable users to interactively set the excentric label parameters, e.g. the "lens" size and the maximum number of labels shown? * Do we want to enable users to interactively specificy the attribute value shown within labels? For example, a user could select to view BioPAX Entity Types within the node labels, rather than the default canonical name. |
* How will users activate/de-activate the plugin? * Should we make this a core plugin or a "regular" plugin? * Do we want to enable interactive setting of excentric label parameters, e.g. the "lens" size and the maximum number of labels shown? * Do we want to enable interactive setting of label content? For example, a pull-down menu, where a user can choose which attribute is shown within the label. * Should we provide an mechanism whereby each graph reader can register a default attribute for label content? For example, the Bio``PAX graph reader would probably want to use biopax.node_label as the default. |
Line 57: | Line 62: |
* Code currently only works with exactly one network. We need to be able to handle multiple networks. * Code currently does not function properly when the viewport is resized. |
RFC Name : Excentric Labeling in Cytoscape |
Editor(s): Allan Kuchinsky, Ethan Cerami |
Status: Open to comment |
Proposal
This is an RFC to create a Cytoscape plugin that will support "Excentric Labeling".
First off, what exactly is "Excentric Labeling"?
- "Excentric labeling is a dynamic technique of neighborhood labeling for data visualization. When the cursor stays more than one second over an area where objects are available, all labels in the neighborhood of the cursor are shown without overlap, and aligned to facilitate rapid reading. A circle centered on the position of the cursor defines the neighborhood or focus region. A line connects each label to the corresponding object."[1]
Here is an example, taken from [1]:
attachment:excentric1.png
Background
This RFC is the result of Allan Kuchinsky's initial exploration / evaluation of the ["InfoVis_Toolkit"]. As part of his evaluation, Allan built several prototypes, including one which demonstrates the excentric label features provided by InfoVis. There is a movie of the prototype available on the ["InfoVis_Toolkit"] page.
Status of Code
The plugin is currently available as a prototype, and is available in Subversion:
http://chianti.ucsd.edu/svn/csplugins/trunk/agilent/kuchinsky/ExcentricLabelsPlugin/
Biological Questions / Use Cases
Large networks and pathways can be difficult to interpret and navigate because of the difficulty in identifying individual nodes. QuickFind helps end users quickly find nodes of interest, but does not help users identify neighboring nodes of interest. Excentric labeling provides a dynamic method of quickly identifying nodes within a neighborhood, and will help end users interpret and navigate biological networks and pathways.
Feature List
The following is a list of feature questions, which we should discuss:
- How will users activate/de-activate the plugin?
- Should we make this a core plugin or a "regular" plugin?
- Do we want to enable interactive setting of excentric label parameters, e.g. the "lens" size and the maximum number of labels shown?
- Do we want to enable interactive setting of label content? For example, a pull-down menu, where a user can choose which attribute is shown within the label.
Should we provide an mechanism whereby each graph reader can register a default attribute for label content? For example, the BioPAX graph reader would probably want to use biopax.node_label as the default.
Technical Issues
The following is a list of current issues / limitations of the current prototype plugin. These will need to be addressed:
It has been difficult to get the endpoints of the lines emanating from the excentric labels to coincide exactly with the centerpoints of CyNodes that they correspond to. This is due to limitations of the Cytoscape renderer. There are methods for mapping a point in CytoscapeDesktop coordinates to the corresponding position in CyNetwork coordinates, but no inverse methods for mapping a point in CyNetwork coordinates back to CytoscapeDesktop. Allan has attempted to build such methods, without success. One source of difficulty is that the mapping of desktop to network coordinates is destructive of the original transforms.
[RESOLVED] There is a flickering effect when the density of the labels in an area is over a certain amount. It's possible that the labels are overwriting each other on the display.
[POSSIBLY RESOLVED; REQUIRES FURTHER TESTING] Cytoscape slows appreciably when the excentric labels are activated. This may likely be due to faulty logic in the prototype code itself, possibly the unintentional introduction of tight loops. Some profiling is needed to better characterize the problem.
- Code currently only works with exactly one network. We need to be able to handle multiple networks.
- Code currently does not function properly when the viewport is resized.
References
[1] Jean-Daniel Fekete and Catherine Plaisant, Excentric Labeling: Dynamic Neighborhood Labeling for Data Visualization, HCIL Technical Report 99-09 (December 1998); http://www.cs.umd.edu/hcil CHI’99 Pittsburgh, PA, USA, May 15-20, 1999, 512-519.
Comments
How to Comment
Edit the page and add your comments under the provided header. By adding your ideas to the Wiki directly, we can more easily organize everyone's ideas, and keep clear records. Be sure to include today's date and your name for each comment. Try to keep your comments as concrete and constructive as possible. For example, if you find a part of the RFC makes no sense, please say so, but don't stop there. Take the extra step and propose alternatives.
Add your comments below...