dDAGannotate
is supposed to produce a subgraph induced by the
input annotation data, given a direct acyclic graph (DAG; an ontology).
The input is a graph of "igraph" or "graphNET" object, a list of the
vertices containing annotation data, and the mode defining the paths to
the root of DAG. The induced subgraph contains vertices (with
annotation data) and their ancestors along with the defined paths to
the root of DAG. The annotations at these vertices (including their
ancestors) are also updated according to the true-path rule: a gene
annotated to a term should also be annotated by its all ancestor terms.
dDAGannotate(g, annotations, path.mode = c("all_paths", "shortest_paths", "all_shortest_paths"), verbose = TRUE)
subg
: an induced subgraph, an object of class "igraph". In
addition to the original attributes to nodes and edges, the return
subgraph is also appended by new node attributes: "annotations", which
contains a list of genes either as original annotations or inherited
annotations; "IC", which stands for information content defined as
negative 10-based log-transformed frequency of genes annotated to that
term.
For the mode "shortest_paths", the induced subgraph is the most concise, and thus informative for visualisation when there are many nodes in query, while the mode "all_paths" results in the complete subgraph.
# 1) load HPPA as igraph object ig.HPPA <-dRDataLoader(RData='ig.HPPA')'ig.HPPA' (from package 'dnet' version 1.1.2) has been loaded into the working environment (at 2018-01-19 12:34:34)g <- ig.HPPA # 2) load human genes annotated by HPPA org.Hs.egHPPA <- dRDataLoader(RData='org.Hs.egHPPA')'org.Hs.egHPPA' (from package 'dnet' version 1.1.2) has been loaded into the working environment (at 2018-01-19 12:34:34)GS <- org.Hs.egHPPA # as 'GS' object # 3) prepare for annotation data # randomly select vertices with annotation data annotations <- GS$gs[sample(1:length(GS$gs),5)] # 4) obtain the induced subgraph # 4a) based on all possible paths (i.e. the complete subgraph induced) dDAGannotate(g, annotations, path.mode="all_paths", verbose=TRUE)At level 10, there are 1 nodes, and 2 incoming neighbors. At level 9, there are 1 nodes, and 2 incoming neighbors. At level 8, there are 2 nodes, and 3 incoming neighbors. At level 7, there are 4 nodes, and 6 incoming neighbors. At level 6, there are 7 nodes, and 9 incoming neighbors. At level 5, there are 8 nodes, and 13 incoming neighbors. At level 4, there are 11 nodes, and 8 incoming neighbors. At level 3, there are 9 nodes, and 6 incoming neighbors. At level 2, there are 6 nodes, and 1 incoming neighbors. At level 1, there are 1 nodes, and 0 incoming neighbors.IGRAPH 918a92a DN-- 50 64 -- + attr: name (v/c), term_id (v/c), term_name (v/c), term_distance | (v/n), annotations (v/x), IC (v/n), relation (e/c) + edges from 918a92a (vertex names): [1] HP:0000118->HP:0000152 HP:0000118->HP:0000924 HP:0000118->HP:0001871 [4] HP:0000118->HP:0002086 HP:0000118->HP:0002715 HP:0000118->HP:0040064 [7] HP:0000152->HP:0000234 HP:0000924->HP:0040068 HP:0000924->HP:0011842 [10] HP:0001871->HP:0001881 HP:0001871->HP:0005561 HP:0002086->HP:0012252 [13] HP:0002086->HP:0002795 HP:0002715->HP:0010987 HP:0040064->HP:0040068 [16] HP:0040064->HP:0002814 HP:0040064->HP:0002817 HP:0040064->HP:0009815 [19] HP:0012252->HP:0002088 HP:0040068->HP:0002813 HP:0040068->HP:0040070 + ... omitted several edges# 4b) based on shortest paths (i.e. the most concise subgraph induced) dag <- dDAGannotate(g, annotations, path.mode="shortest_paths", verbose=TRUE)At level 7, there are 2 nodes, and 2 incoming neighbors. At level 6, there are 2 nodes, and 2 incoming neighbors. At level 5, there are 5 nodes, and 5 incoming neighbors. At level 4, there are 5 nodes, and 5 incoming neighbors. At level 3, there are 5 nodes, and 4 incoming neighbors. At level 2, there are 4 nodes, and 1 incoming neighbors. At level 1, there are 1 nodes, and 0 incoming neighbors.# 5) color-code nodes/terms according to the number of annotations data <- sapply(V(dag)$annotations, length) names(data) <- V(dag)$name visDAG(g=dag, data=data, node.info="both")
dDAGannotate.r
dDAGannotate.Rd
dDAGannotate.pdf
dDAGinduce
, dDAGlevel