Question: How to use Cytoscape to analyze molecular relationships between genes
gravatar for mdgallagher71
7 months ago by
United States
mdgallagher7120 wrote:

Hi, I am interested in using Cytoscape to analyze molecular relationships between genes, and I have been reading the tutorials on the Cytoscape website, but am unsure how to use Cytoscape for "one-to-many" comparisons.

For example, each gene is typically assigned as a "node", with "edges" that correspond interactions with other genes. Cytoscape used "Attributes" to map node or edge names to specific data values. In a simple "one-to-one" comparison, you might have a list of 10 genes with their expression values, such that the attribute for each gene would be 1) the name of the gene and 2) the expression value. It looks clear how Cytoscape would use these types of data to construct the interaction network.

However, I have multiple data values for each gene (node), e.g. for Gene X, I will have data values that indicate the predicted interactions between Gene X and all other genes in the analysis. It isn't clear to me how to use attributes or other Cytoscape features to translate this type of "one-to-many" data set into the format that Cytoscape can read.

My goal is to have a certain number of genes as the nodes, with edges connecting each gene to any other gene that it is predicted to interact with, just like the canonical gene interaction analysis plots that Cytoscape and similar software produce.

Please let me know if anyone has advice on how to properly use "one-to-many" data as input for Cytoscape.


ADD COMMENTlink modified 7 months ago by scooter410 • written 7 months ago by mdgallagher7120

so if I understand this correctly, for every gene you have values in between this gene to all other genes. One possibility that I can think on the top of my head would be to make these "values" as the weights of your edges? For the purpose of visualization, you can use these "weights" to construct a spring embedded layout. Just a curious question for the values : for any nodes i,j in the dataset and a being the "value" - is aij == aji ?

ADD REPLYlink written 7 months ago by manaswwm130

Thanks for your response. I'm not sure if I understand your question, but are you asking if the values that represent the interactions between two genes equal and reciprocal? For example, would the value (edge) between genes A and B (nodes) also be the same as the value between genes B and A?

If that is your question, the answer is no. Each pairwise interaction between genes could be unique, although depending on how we calculate the value based on the input data, there could be values that are the same, either between different pairs of interacting genes, or between the same pair. Do you think that complicates the analysis? My guess is that each "edge" between two "nodes" has to have a single value, whereas the analysis I want to do actually requires two values (e.g. one value represents the regulation of gene B by gene A, and the other value represents the regulation of gene A by gene B).

Thanks again

ADD REPLYlink written 7 months ago by mdgallagher7120

ah, okay. I had imagined that the two values shared between two nodes would be the same, which does not seem to be the case. If I had such "values", the very first thing that I would do in network construction is to use these values as weights of my edges to visualize if the network has any clusters (nodes with lower/higher "values" among themselves would cluster together, as an example?). Optionally, what I would also consider doing is filtering the "values" for certain threshold (i.e if the "value" between two nodes is above a certain threshold, only then connect them with an edge). That being said, I am not sure what is the cleanest way to do this when you have two edges in between two nodes

ADD REPLYlink written 7 months ago by manaswwm130
gravatar for scooter
7 months ago by
scooter410 wrote:

Greetings, Cytoscape can support multiple attributes on either nodes or edges. In your case, it sounds like you have a situation where you have (for example) a node that links to several other nodes and that link has multiple attributes, so something like this:

source,target,attr1,attr2 node1,node2,0.1,0.2 node1,node3,0.01,0.0 node1,node4,0.5,0.0 node2,node3,0,0.1 ...

Alternatively, if you have, for example, your values represent two different relationships or two different directions, you could split them up:

source,target,attr node1,node2,0.1 node2,node1,0.2 node1,node3,0.01 node1,node4,0.5 node3,node2,0.1

Note that I dropped edges with a 0 values -- you may or may not what to do that. Cytoscape's underlying model is a multigraph, so you can have as many edges between two nodes as you want.

-- scooter

ADD COMMENTlink written 7 months ago by scooter410
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1558 users visited in the last hour