Determines the levels of a Directed Acyclic Graph (DAG) {topGO} | R Documentation

## Utility functions to work with Directed Acyclic Graphs (DAG)

### Description

Basic functions to work witg DAGs

### Usage

    buildLevels(dag, root = NULL, leafs2root = TRUE)
    getNoOfLevels(graphLevels)
    getGraphRoot(dag, leafs2root = TRUE)
    reverseArch(dirGraph, useAlgo = "sparse", useWeights = TRUE)

### Arguments

`dag` | A `graphNEL` object.
`root` | A character vector specifing the root(s) of the DAG. If not specified the root node is autmatically computed.
`leafs2root` | The leafs2root parameter tell if the graph has edges directed from the leaves to the root, or vice-versa
`graphLevels` | An object of type list, returned by the `buildLevels` function.
`dirGraph` | A `graphNEL` object containing a directed graph.
`useAlgo` | A character string specifing one of the following options `c("sparse", "normal")`. By default, `useAlgo = "sparse"`, a sparce matrix object is used to transpose the adjacency matrix. Otherwise a standard R martix is used.
`useWeights` | If weights should be used (if `useAlgo = "normal"` then the weigths are used anyway)

### Details

`buildLevels` function determines the levels of a Directed Acyclic Graph (DAG). The level of a node is defined as the longest path from the node to the root. The function take constructs a named list containg varios information about each nodes level. The root has level 1.

`getNoOfLevels` - a convenient function to extract the number of levels from the object returned by `buildLevels`

`getGraphRoot` finds the root(s) of the DAG

`reverseArch` - simple function to invert the direction of edges in a DAG. The returned graph is of class graphNEL. It can use either simple matrices or sparse matrices (SparseM library)

### Value

`buildLevels` returns a list containing:

`level2nodes` | Environment where the key is the level number with the value being the nodes on that level.
`nodes2level` | Environment where the key is the node label (the GO ID) and the value is the level on which that node lies.
`noOfLevels` | The number of levels
`noOfNodes` | The number of nodes

An object of class `graphNEL-class` is returned.

### Author(s)

Adrian Alexa

### See Also

`topGOdata-class`, `inducedGraph`

### Examples

    ##---- Should be DIRECTLY executable !! ----
    ##-- ==>  Define data, use random,
    ##--	or do  help(data=index)  for the standard data sets.

[Package topGO version 2.32.0 Index]