Cytoscape: Advice on best analysis methods for PPI network


Hello there!

We are working on our first protein interaction network analyses and would like to know if there is a program/plugin available that will spatially arrange (cluster) nodes based on significant GO terms. We have found packages that arrange things in rows or color-code nodes based on GO, but so far it has always then required manual intervention to drag the nodes out into clusters and arrange shared nodes in between, etc. We want to examine some fairly large networks that will likely have several clusters, so it would be really helpful if the clustering was automated and allowed us to choose specific parent/child GO terms to cluster by from a list. Basically, we want to enrich our protein-protein interaction network with the GO terms represented in the network and, instead of looking at all of the GO terms represented, we want to find a way to ‘move up the tree’ to examine the less-specific GO terms to get a general idea of what our proteins of interest are associated with. For example, if we see there is an enrichment of GO terms related to cell division, is there an automated way to visually separate out the nodes in the network after selecting that GO term from a list? Are there any programs or Cytoscape plugins that can do this? We are new to this type of analysis so any advice would be greatly appreciated.

Thanks so much for your help!








updated 2 hours ago by



written 8 days ago by



Hello again!

Others in BioStars might have some ideas, but for completeness, here is what I answered on the helpdesk:

Hi Haley, There are really two questions here. First, how do you
assign a single GO term to a cluster (or list of nodes) and, second,
once you've assigned a single GO term, how do you visualize it as a
separate cluster. You can use clusterMaker to do the second part, but
I don't know of an automated way to assign a single GO term to a
protein in a PPI. One suggestion that's a little manual would be do
your enrichment and select all of the proteins with the term that you
want and then manually apply that term to a column. You don't say
what you are using for your enrichment. If you are using the
stringApp, that's pretty easy. Other apps might be more difficult.

-- scooter

There's no good way to associate a protein with only one term. The most straightforward way would be to reduce the ontology to a list of terms of interest and assign terms from this list to proteins.
A potential way forward that side-steps this issue could be to compute a semantic similarity between the proteins using their GO annotations. You can then either use this alone as a graph adjacency matrix or combine it with the interaction graph (using the semantic similarities as weights of the interaction graph) depending on whether the clusters you want to identify should reflect only the functions or the combination of interactions and functions.
From there you can apply a graph clustering algorithm or use semi-supervised or supervised approaches to identify groups of interest.

before adding your answer.

Traffic: 2155 users visited in the last hour

Source link