I have a network of 201 genes with around 703 edges. I have to find high-scoring, functionally enriched subnetworks. I tried to use mcode plugin for this purpose. I got around 14 subnetworks with very low score. Moreover, the functional enrichment for these networks were not very significant. There are many other cytoscape plugins as well as many ways to find such subnetworks. I would like to know which other plugins I could use for this purpose..
Have you tried the cytoscape plug-in BiNGO ?
I think BiNGO will be an ideal choice for your problem as it performs functional enrichment analysis using GO annotations using genes in a network. See the BiNGO manuscript here.
EDIT: Added after Sanchari's question on 'modules':
AFAIK, Module is a conceptual framework to group a set of nodes in a network based on a prior biological knowledge. For example module in a network could be a group of physically interacting or proteins that share similar functional properties (as in protein complex, signaling, transcription). BiNGO will group your proteins based on GO annotations, where as MCODE perform clustering (highly interconnected regions). Even if you provide a random bunch of interconnected proteins, MCODE will give you a subnetwork, but that won't have a biological meaning (please try this yourself). But BINGO networks have the power of underlying biological annotations.
Once you finished BiNGO using your interaction data, you can find enriched modules, say for example a set of proteins annotated with GO term "protein binding" with a significant p-value. You can consider this as a biologically relevant module in your dataset.
Thanks for the suggestions. But before I use bingo, I should be able to cluster the genes into modules and then use bingo for the functional enrichment. Clustering seems to be a problem in my network because it is very dense...
You don't have to do clustering. You can filter your results based on GO terms and associated p-value. Also, see the edited answer.
Can you provide more information about (1) what type of genes are in your network and (2) which types of subnetworks you are interested in?
It is a protein interaction network. Most of the genes in the network are related to diabetes and obesity. Therefore, there are many genes which are falling in the metabolic pathways, MAPK, chemokine signaling pathways etc. I wanted to segregate the pathways according to their functions and study the cross-talk between the various modules.
It is a protein interaction network. Most of the genes in the network are related to diabetes and obesity. Therefore, there are many genes which are falling in the metabolic pathways, MAPK, chemokine signaling pathways etc. I wanted to cluster the genes into modules (according to their functions/pathways) and study the cross-talk between the various modules.
So, do you want to cluster in a way that is informed by annotation (as I read your first post) or take pairs of annotated sets of proteins and study the links between them (as I read your second post)? I like both questions, and struggled with the latter for a long time.
Actually, I tried to filter out the genes based simply on annotation. The net result was that I got some groups of genes, some of which were highly connected to each other (modules performing a common function), while some genes were totally disconnected (even though some of their functions were same). The latter one seemed of no use to me as I cannot study the cross talk between them. I am more interested in studying the cross talk between the functional modules but don't know if it will be possible !