What is the relation between attributes shared name & shared interaction and name & interaction?

876 views
Skip to first unread message

Matthias König

unread,
Jul 20, 2016, 9:46:07 AM7/20/16
to cytoscape-helpdesk
Hi all,

could someone explain what is the difference and relationship of the node attributes "shared name" <-> "name" and "shared interaction" <-> interaction?
Especially in the context of CyRootNetworks and CySubnetworks?

What are they important for?

Why/where are the shared attributes created?

All my attributes I create a NetworkCollectionColumns, but if I create an attribute "name", only a simple column is created with information not shared between subnetworks, but a "shared name" appears. Same for interaction. This is completely inconsistent to creating all other columns.
Can someone explain this?

Matthias

Barry Demchak

unread,
Jul 21, 2016, 8:01:36 PM7/21/16
to Matthias König, cytoscape...@googlegroups.com

Hi, Matthias –

 

I think I understand the question. I’m not sure about the depth or detail of your knowledge on the background of this, so I’ll give as simple answer and we can go from there.

 

The root network contains all nodes and edges for a collection. You can think of a hypothetical network, node table, and edge table.

 

Subnetworks have subsets of those nodes and edges. The first subnet (which everyone considers to be the real network) has all nodes and edges. Other subnets (however they’re created) have subsets of the root network. Either way, subnets have their own node and edge tables, too.

 

The node / edge tables displayed for a subnet are the merge of the root tables and the subnet tables.

 

The “shared name” is the “name” column in the root network table, and the “name” column is the “name” column for the subnet table.

 

The “shared” is added to the root network’s “name” to avoid a name collision with the subnet’s “name” column.

 

You might notice that when you edit a “shared name” value, the change is reflected across all subnetworks in a collection. When you edit just the “name” value, it’s specific to the subnet.

 

This is important so that all subnetworks can share common annotations, but some subnetworks can have their own.

 

I have attached some UML (especially Networks.png) to illustrate the conceptual relationships, though the classes don’t map to Cytoscape classes.

 

Does this help??

Table.png
Networks.png

Matthias König

unread,
Jul 22, 2016, 2:49:56 AM7/22/16
to cytoscape-helpdesk, koni...@googlemail.com
Hi Barry,
thanks for the explanation.
The thing I don't understand is why this behavior is inconsistent for depending on the "attribute", i.e. column name.
I create different node attributes for my CySubnetwork in an identical way, i.e. only the attribute name is changed.

For the attribute name "name" I get the "name" and "shared name" behavior, for every other attribute "xyz" I don't get a "shared xyz", but only a attribute "xyz" of type NetworkCollectionColumn.
This doesn't make any sense. Same for "interaction" and "shared interaction" (analogue to name) and any other edge attribute "edge xyz".
Are "name" and "interaction" special table columns/attributes which behave different than any other?

Matthias

Matthias König

unread,
Jul 25, 2016, 3:41:00 AM7/25/16
to cytoscape-helpdesk, koni...@googlemail.com
Hi all,
just to add.
The edge attribute "interaction" and node attribute "name" behave differently than all other attributes in Cytoscape. Somehow these are already created for empty networks as NetworkCollectionColumns and empty columns. This part was a bit confusing for me. I would expect if I create an empty network that I also have an empty node and edge table and not some columns in them with different behavior (some simple attributes, the shared attributes being NetworkCollectionColumns).
I could imagine that these attributes exist mainly for the visual mappings and that it is somehow an unspoken convention that a NetworkReader should populate the name/interaction fields. Or is there some other reason for these attributes on empty networks?

Matthias

Barry Demchak

unread,
Jul 25, 2016, 6:47:24 PM7/25/16
to cytoscape...@googlegroups.com, koni...@googlemail.com

Hi, Matthias –

 

Indeed, for nodes, Name is special and inconsistent. This happened long ago, and I think the objective at the time may have been usability … what a user staring at a screen is likely to understand.

 

More directly, the base network Name attribute is shown as “Shared Name”. All base network attributes (including Shared Name) have a “shared” icon in the column header.

 

The subnetwork Name attribute is shown as “Name”. All subnet attributes have no “shared” icon in the column header.

 

So, at least the use of the “shared” icon in the column header is consistent.

 

The inconsistency I see is that “Shared” is added to the base Name attribute name, when it would be sufficient to simply mark it with a “shared” icon.

 

However, from a usability perspective, I can see how the “Shared” adds emphasis that sets the base Name off from the subnet Name. This may even have been smart, and may have been a reaction to a user who was confused by a visual presentation that relied solely on the “shared” icon.

 

The distinction between base and subnet appears to have arisen in v3.x, likely because of the need to share attributes between subnetworks. So, this presentation/logic wouldn’t have been present in v2.x. And given the relationship between a base and subnetwork, it’s quite logical that creating a new subnetwork should inherit from the base.

 

Inconsistent or not, it looks to me that this is how the design came down.

 

Does this clear anything up??

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.
To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

Matthias König

unread,
Jul 26, 2016, 4:29:24 AM7/26/16
to cytoscape-helpdesk, koni...@googlemail.com
Yes. Solved my issues.
Some unit tests failed for me related to the name attribute because the attribute values were not identical in all the subnetworks. I was just very confused because things worked for every other attribute.
The solution is just not to use "name" as an attribute in a NetworkReader. Unfortunately, many people love to call things "name".

This is for instance the reason for
http://code.cytoscape.org/redmine/issues/3548
The SBMLReader should assign to "shared name" and not "name", so subnetworks can use the information.

I would like to fix these SBML related issues, but would need help with
http://code.cytoscape.org/redmine/issues/3638
i.e. a mentor who could supervise me a bit and introduce me to the workflows of core apps.

Thanks for the help.
M

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages