Learn R Programming

nem (version 2.46.0)

prune.graph: Prunes spurious edges in a phenotypic hierarchy

Description

A heuristic to prune spurious edges in a pehnotypic hierarchy

Usage

prune.graph(g,cutIN=NULL,cutOUT=NULL,quant=.95,verbose=TRUE)

Arguments

g
an adjacency matrix or a 'graphNEL' object
cutIN
minimum number of missing in-edges required to cut all in-edges. Default
cutOUT
minimum number of missing out-edges required to cut all out-edges
quant
if 'cutIN' or 'cutOUT' are not assigned, a quantile 'quant' of the distribution of missing in- or out-edges for all nodes is used
verbose
Default: TRUE

Value

graph
the pruned phenotypic hierarchy (a 'graphNEL' object)
removed
number of removed edges
missing.in
number of missing in-edges for each node
missing.out
number of missing out-edges for each node

Details

prune.graph provides a heuristic approach to prune surious edges. prune.graph compares the input graph to its transitive closure, and counts for each node how many incoming and outgoing edges are missing. If the number is bigger than a user-defined cutoff, all incoming (outgoing) edges are removed.

Examples

Run this code
    # a transitively closed core with two spurious edges
    g <- matrix(0,5,5)
    g[1,2] <- 1
    g[2,c(3,4)] <- 1
    g[3,4] <- 1
    g[4,5] <- 1
    dimnames(g) <- list(LETTERS[1:5],LETTERS[1:5])
    g <- as(g,"graphNEL")
    
    # prune graph
    gP <- prune.graph(g)
    
    # plot
    if(require(Rgraphviz)){
      par(mfrow=c(1,2))    
      plot(g,main="two spurious edges")
      plot(gP$graph,main="pruned")
    }

Run the code above in your browser using DataLab