Size: 3324
Comment:
|
Size: 3916
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 38: | Line 38: |
* Network Overview | |
Line 40: | Line 41: |
*Modules (A ~ D) {{attachment:moduleA.png}} {{attachment:moduleB.png}} {{attachment:moduleC.png}} {{attachment:moduleD.png}} |
|
Line 50: | Line 58: |
We can mimic the terms used in semantic web. Relationship between modules can be |
The sample graph above can be represented in the following: {{{ node7 DirectedEdge node3 node6 DirectedEdge node2 node5 DirectedEdge node4 node4 DirectedEdge node2 node4 DirectedEdge node3 node1 DirectedEdge node2 node1 DirectedEdge node0 node0 DirectedEdge node6 node0 DirectedEdge node2 moduleA child_of moduleB moduleD interact_with moduleB moduleD interact_with moduleC }}} |
Line 62: | Line 87: |
Based on the information above, Cytoscape can rebuild the module relation map: {{attachment:moduleDAG.png}} |
Support for Modules in Cytoscape
Introduction
In many cases, biologists are interested in relationship between functional modules first. Then, they look into the details inside the modules, i.e., actual interactions. Cytoscape can partially handle this problem using Group API and some related plugins, but it's not a standard feature. Also, there is no simple file format to represent hierarchy/substructures. In this project, we are going to implement a mechanism to handle output of module finding algorithms as a hierarchy of subnetworks and make Cytoscape core module-aware.
Usecases
Module Finding Plugins
Currently, there are several plugins finding functional modules from large networks. In some cases, they produce subnetworks, but there is no universal UI or function to keep the structure in the session or other files.
Pathway Overview
Cytoscape has function to import KEGG/Reactome data as attributes. It is useful if Cytoscape has a function to generate substructure automatically based on such annotation.
Implementation
File Formats
Most of popular XML graph file formats support hierarchical structure.
DOT
This is a standard file format in graphviz. It has XML-like structure in the text file, and can represent substructure.
Pajek
This program has 3 types of files to represent substructure:
- Partitions – they tell for each vertex to which class vertex belong. Default extension: .clu.
- Clusters – subset of vertices (e.g. one class from partition). Default extension: .cls.
- Hierarchies – hierarchically ordered vertices. Default extension: .hie.
Therefore, user needs to load 4 files (network, partition, cluster, hierarchy) to reconstruct the saved substructures.
igraph
This package does not have its own file format to represents subgraph. Instead, supporting GraphML and dot.
Cytoscape New File Format for Subgraphs
Standard XML file formats such as GraphML or XGMML can represent substructures. However, they are not easy to edit by hand for many biologists. We need to implement a simple table/text style file format which is editable on spreadsheet programs.
Sample
- Network Overview
- Modules (A ~ D)
Option 1: Two Files
This approach needs two files, standard SIF file and subnetwork definition file (SDF?). This is similar to pajek, but less number of files are required to rebuild the substructures and hierarchies.
SIF
We need to introduce two types of special value for interaction edge attributes:
- child_of - Defines inclusion.
- interact_with
The sample graph above can be represented in the following:
node7 DirectedEdge node3 node6 DirectedEdge node2 node5 DirectedEdge node4 node4 DirectedEdge node2 node4 DirectedEdge node3 node1 DirectedEdge node2 node1 DirectedEdge node0 node0 DirectedEdge node6 node0 DirectedEdge node2 moduleA child_of moduleB moduleD interact_with moduleB moduleD interact_with moduleC
If parser finds these two keywords in interaction edge attribute, treat it as a module relationship definition.
SDF
This file defines members of each subnetwork.
subnet1 a b c subnet2 a d subnet3 c e f
Based on the information above, Cytoscape can rebuild the module relation map:
Option 2: One File (extended SFI?)
(Not finished yet)
Option 3: Simply Support DOT
As far as I know, DOT is the most complete solution for non-XML file format for representing modules. If we support this format, we can use it to represent