5351
Comment:
|
6868
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
Line 7: | Line 6: |
Line 9: | Line 7: |
Line 13: | Line 10: |
Line 18: | Line 14: |
"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] |
. "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] |
Line 28: | Line 20: |
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 Info``Vis. There is a movie of the prototype available on the ["InfoVis_Toolkit"] page. |
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 Info{{{}}}Vis. There is a movie of the prototype available on the ["InfoVis Toolkit"] page. |
Line 32: | Line 23: |
Line 38: | Line 28: |
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. |
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 42: | Line 31: |
Line 44: | Line 32: |
Line 46: | Line 33: |
Line 50: | Line 36: |
''AJK: Since the functionality is related to QuickFind and Filters, should there perhaps be a button on the Toolbar that, when clicked, results in a control panel being brought up on West CytoPanel. Options on the control panel would include on/off, radius, max labels.'' |
|
Line 51: | Line 39: |
* Do we want to enable interactive setting of excentric label parameters, e.g. the "lens" size and the maximum number of labels shown? |
''AJK: I'm leaning towards a 'regular' plugin in that it is an advanced user interface feature that is not for everybody, particularly if it impacted performance.'' * Do we want to enable interactive setting of excentric label parameters, e.g. the "lens" size and the maximum number of labels shown? Seems like a good idea, but fewer options might keep the feature much more intuitive. ''AJK: as an information visualization tool, its controls should be very accessible to the end user. Every time I've used the tool so far, I've ended up tinkering with the radius and max labels. I think these are values the end users will want to be able to manipulate interactively.'' |
Line 53: | Line 44: |
''AJK: Yes, on the control panel.'' * 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. * What should we do about really long labels? Truncate them? * Should we provide support for multi-line labels? Or, HTML within the labels, so that we can provide node "summaries"? ''AJK: I'd opt for HTML within the labels.'' * Can we integrate with the vizmapper? For example, if you roll-over a red node, should the label border also be red? == Technical Issues == The following is a list of issues / limitations of the current prototype plugin. These will need to be addressed: |
|
Line 54: | Line 53: |
== 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 Cy``Nodes that they correspond to. This is due to limitations of the Cytoscape renderer. There are methods for mapping a point in Cytoscape``Desktop coordinates to the corresponding position in Cy``Network coordinates, but no inverse methods for mapping a point in Cy``Network coordinates back to Cytoscape``Desktop. 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. |
* It has been difficult to get the endpoints of the lines emanating from the excentric labels to coincide exactly with the centerpoints of Cy{{{}}}Nodes that they correspond to. This is due to limitations of the Cytoscape renderer. There are methods for mapping a point in Cytoscape{{{}}}Desktop coordinates to the corresponding position in Cy{{{}}}Network coordinates, but no inverse methods for mapping a point in Cy{{{}}}Network coordinates back to Cytoscape{{{}}}Desktop. 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. |
Line 63: | Line 58: |
* Is the Info{{{}}}Vis jar file big? If so, could we extract only those classes we need for the Excentric label feature? == 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. |
|
Line 64: | Line 62: |
== 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. |
|
Line 70: | Line 63: |
Line 72: | Line 64: |
Line 74: | Line 65: |
Line 76: | Line 66: |
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?
AJK: Since the functionality is related to QuickFind and Filters, should there perhaps be a button on the Toolbar that, when clicked, results in a control panel being brought up on West CytoPanel. Options on the control panel would include on/off, radius, max labels.
- Should we make this a core plugin or a "regular" plugin?
AJK: I'm leaning towards a 'regular' plugin in that it is an advanced user interface feature that is not for everybody, particularly if it impacted performance.
- Do we want to enable interactive setting of excentric label parameters, e.g. the "lens" size and the maximum number of labels shown? Seems like a good idea, but fewer options might keep the feature much more intuitive.
AJK: as an information visualization tool, its controls should be very accessible to the end user. Every time I've used the tool so far, I've ended up tinkering with the radius and max labels. I think these are values the end users will want to be able to manipulate interactively.
- 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.
AJK: Yes, on the control panel.
- 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.
- What should we do about really long labels? Truncate them?
- Should we provide support for multi-line labels? Or, HTML within the labels, so that we can provide node "summaries"?
AJK: I'd opt for HTML within the labels.
- Can we integrate with the vizmapper? For example, if you roll-over a red node, should the label border also be red?
Technical Issues
The following is a list of 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.
Is the InfoVis jar file big? If so, could we extract only those classes we need for the Excentric label feature?
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...