Murali-group / GraphSpace

The interactive graph sharing website.
http://graphspace.org
GNU General Public License v2.0
30 stars 41 forks source link

My Graph has arrows on all undirected edges #96

Closed ategge closed 8 years ago

ategge commented 9 years ago

All the edges in this graph (http://graphspace.org/graphs/ategge%40vt.edu/LSEC-sansKC-GSEA-leading-edge-enriched-genesets-mcmcBPN-rat-STRING-updatedGS-045/?layout=Final_Layout) are undirected (i.e., "directed": "false" in json), yet every edge now displays an arrowhead. This holds true for all undirected edges in graphspace (using a sample of 5 graphs). This is a SUPER BIG BUG that needs to be fixed ASAP!

ategge commented 9 years ago

Has there been any progress on this issue?

DSin52 commented 9 years ago

Sorry for my sluggish responses... This issue is now fixed. Also, you don't need to specify the directed property in the JSON anymore. The target_arrow_shape being set to none or not including this property at all will cause the graph edge to not have a directed edge.

ategge commented 9 years ago

The issue has not been fixed. The graph I linked to above should have NO directed edges, and every edge still has arrowheads on the end. I checked the JSON and the target_arrow_shape is set to none and directed is false.

You added the note about if an edge has an target_arrow_shape, it will be directed. What occurs if either of the following two scenarios occur: (i) directed = false, target_arrow_shape=triangle, or (ii) directed = true, target_arrow_shape=none?

tmmurali commented 9 years ago

I suspect that what Divit is saying is that you should not use the "directed" property for an edge. Rather, try the target_arrow_shape. Divit, is this change because Cytoscape.js does not have the "directed" property for an edge, so you are not supporting it in your code? I understand Allison's confusion. Murali

On Tue, Jul 7, 2015 at 9:46 AM, ategge notifications@github.com wrote:

The issue has not been fixed. The graph I linked to above should have NO directed edges, and every edge still has arrowheads on the end. I checked the JSON and the target_arrow_shape is set to none and directed is false.

You added the note about if an edge has an target_arrow_shape, it will be directed. What occurs if either of the following two scenarios occur: (i) directed = false, target_arrow_shape=triangle, or (ii) directed = true, target_arrow_shape=none?

— Reply to this email directly or view it on GitHub https://github.com/DSin52/GraphSpace/issues/96#issuecomment-119206171.

DSin52 commented 9 years ago

You are correct @tmmurali. The only reason I still have the directed property supported is so that it works with old graphs. Before I converted all the JSON's from CytoscapeWeb to CytoscapeJS, I made the arrow heads appear using the directed property so that graphs would render properly. I did not bother to delete it after the conversion, so it is still currently supported. @ategge Please don't use directed property in future graphs as it will become deprecated. Use only the properties that are currently in the help section. If target_arrow_shape=triangle, it will be a directed edge. If target_arrow_shape=none or if there is no target_arrow_shape property, it won't be a directed edge.

DSin52 commented 9 years ago

Also, when I look at the graph from my screen, I see no directed edges for http://graphspace.org/graphs/ategge%40vt.edu/LSEC-sansKC-GSEA-leading-edge-enriched-genesets-mcmcBPN-rat-STRING-updatedGS-045/?layout=Final_Layout.
lsec-sanskc-gsea-leading-edge-enriched-genesets-mcmcbpn-rat-string-updatedgs-045

ategge commented 9 years ago

I think I understand now. I should not use the "directed" attribute in all future graphs uploaded. I think this raises several issues: 1) A protocol needs to be established so if an attribute is altered (added, removed, etc) from what cytoscapejs allows, all current graphs in GraphSpace need to be retrofitted to accommodate the change.

2) A protocol needs to be established so if an attribute is altered (added,removed,etc) from what cytoscapejs allows, the graphspace_interface needs to be appropriately altered to accommodate these changes in a seamless way. I.e., if I call the add_node_directionality, then now instead of setting the directed attribute to True, only the arrow shapes are assigned.

3) If a user was to update a graph after alterations to the attributes, how would the user be ensured that the graph will still look the same? Presumably, as long as the user uses the graphspace_interface tool and that tool is up to date, there should not be a problem.

ategge commented 9 years ago

The public graph for cdc55 located at http://graphspace.org/graphs/craigy%40vt.edu/linker-q_0.5-query_CDC55-path_k_50/ contains some directed edges, though no arrows are drawn (all orange edges should have arrows).

tmmurali commented 9 years ago

Divit, you said earlier that "The only reason I still have the directed property supported is so that it works with old graphs."

I looked at the JSON for this graph. Some edges have "directed" set to true but no target_arrow_shape. How do you deal with these edges in your code, i.e., what do you do to draw these edges with an arrowhead? I do not see target_arrow_shape in this graph's JSON. Murali

On Mon, Jul 13, 2015 at 11:38 PM, ategge notifications@github.com wrote:

The public graph for cdc55 located at http://graphspace.org/graphs/craigy%40vt.edu/linker-q_0.5-query_CDC55-path_k_50/ contains some directed edges, though no arrows are drawn (all orange edges should have arrows).

— Reply to this email directly or view it on GitHub https://github.com/DSin52/GraphSpace/issues/96#issuecomment-121124826.

ategge commented 9 years ago

Anna and I figured out the problem with this today!

The JSON for the cdc55 graph does set the 'directed' attribute to true. However, it sets this attribute to the boolean version of true and not the string version of "true."

Take the network http://graphspace.org/graphs/ategge%40vt.edu/NF-kappa-B-TNF-k9/ Visually, there is a mix between directed and undirected edges. If you look at the JSON, ever edge sets 'directed' to be TRUE. However, there are two versions of TRUE, a boolean and a string version. This is why I was so confused as to why some edges were directed (i.e., displayed arrows) and other edges were not.

DSin52 commented 9 years ago

Is this still an issue?