FunWalk and FunTables

FunWalk is an extension of NetWalk for scoring subnetworks belonging to specific functional processes, rather than scoring individual interactions (see Manual for details on FunWalk algorithm). FunWalk is also based on random walks on graphs, therefore it is run optionally together with NetWalk from the “Run NetWalk” dialog in TableView (see above in NetWalk and EF Tables). Just as NetWalk produces an Edge Flux (EF) Table, FunWalk produces a FunTable. However, instead of interactions in each row, a FunTable contains functional terms from Gene Ontology and their associated scoring for each analyzed data column. Here is a shot of the FunTable generated in our earlier run of NetWalk and FunWalk in the section on NetWalk and EF Tables.

Clicking on rows (after toggling row-selection) of FunTable will show details of the annotation of the corresponding functional term in the Details window.
In FunWalk, unlike other functional analysis tools where functional terms are mapped to genes, each functional term is associated with a set of gene-gene interactions from the Knowledgebase. The “Number of Interactions” column in the FunTable shows the number of gene-gene interactions assigned to the specified functional term. As such, functional terms with no assigned interactions have “NaN” (not a number) as FunWalk scores for data columns. Here, we will first filter the FunTable to display most relevant functional terms, then create a FunTable heatmap, and generate networks representing most significant functional terms in the analyzed conditions.
  1. Run “Filter rows” and design a filter using the “Number of Interactions” column to only display rows where functional terms have at least 10 interactions assigned to them (do this as we did filtering in the previous section).
  2. Select columns containing FunWalk values (i.e. those that start with “Ratio: Doxorubicin”, and calculate standard deviations the same way as we did before.
  3. Either use Row filtering again, or just select rows with highest standard deviations, and copy the selection to a new FunTable by clicking on .
  4. Perform clustering and heatmap analysis as we did in the previous sections. However, for coloring of the heatmap, select blue-white-red coloring, and put -1 to 1 as the range of data. You should see something like this:
  5. Toggle row-selection, select a number of rows, and export to a network with “Plot Network”. Here is a plot of a number of bottom rows after coloring nodes based on dataset :Doxorubicin_MCF7.txt and column: “Log2 Ratio: 1uM; 24h/…”, with data range of -1 to 1.
  6. Notice how most of the nodes in this network have a reduced expression in the 1uM 24h condition, which is in accordance with the FunWalk values of the corresponding functional terms in the FunTable heatmap. This shows the high coherence of FunWalk values with the original input experimental data.
  7. Now, we will group nodes in the network above according to their functional terms. For this, select the rows in FunTable that you used to plot the network, and copy them to the clipboard by “Ctrl + C”. Go to the NetView of the network you generated in the previous step, and paste your selection from FunTable by “Ctrl + V”. A message window will ask if you want to use these functional terms to group nodes in the network, say Yes. Nodes in the network will be automatically grouped into the corresponding functional terms that you copied from the FunTable. Rearrange the layout of the network by selecting “Organic layout” from the drop down menu on the NetView toolbar. This is what you should see.
  8. This is a network of functionally grouped nodes corresponding to functional processes downregulated in response to 1uM doxorubicin but upregulated in response to 10uM doxorubicin.

Although we only made use of a few columns of information in the FunTable, there are other columns that give potentially valuable information about the functional terms that can be used to filter the table and fine-tune the analyses. For example, “Tree Level” is an important parameter showing the level of the functional term in the GO hierarchy (GO ontology is a hierarchical tree), the higher this number, the more specific the functional term is (lower in the hierarchy). Lower numbers correspond to larger sets that are a bit higher in the hierarchy, such as “nucleotide binding” or “metabolic process”. It may be desirable to eliminate these terms from analyses in many cases as they are not informative. So in the filtering step above (see step 1), one could design a composite filter to also eliminate terms whose “Tree Level” attribute is lower than 5, and/or those that are only a biological process annotation (“BP” in the column “Ontology”). Try using these parameters to design your composite filters to create an optimal FunTable for analyses. Do not forget that before clustering analysis, you have to copy the filtered table to a new TableView.

In this manner, FunWalk and FunTables can be used to comparatively analyze global functional processes altered under multiple conditions, and identify most significant functional networks distinguishing the different experimental samples.