xPier | R Documentation

## Function to do prioritisation through random walk techniques

### Description

`xPier` is supposed to prioritise nodes given an input graph and a list of seed nodes. It implements Random Walk with Restart (RWR) and calculates the affinity score of all nodes in the graph to the seeds. The priority score is the affinity score. Parallel computing is also supported for Linux-like or Windows operating systems. It returns an object of class "pNode".

### Usage

    xPier(seeds, g, seeds.inclusive = TRUE, normalise = c("laplacian",
    "row", "column", "none"), restart = 0.7,
    normalise.affinity.matrix = c("none", "quantile"), parallel = TRUE,
    multicores = NULL, verbose = TRUE)

### Arguments

`seeds` | a named input vector containing a list of seed nodes. For this named vector, the element names are seed/node names (e.g. gene symbols), the element (non-zero) values used to weight the relative importance of seeds. Alternatively, it can be a matrix or data frame with two columns: 1st column for seed/node names, 2nd column for the weight values
`g` | an object of class "igraph" to represent network. It can be a weighted graph with the node attribute 'weight'
`seeds.inclusive` | logical to indicate whether non-network seed genes are included for prioritisation. If TRUE (by default), these genes will be added to the netowrk
`normalise` | the way to normalise the adjacency matrix of the input graph. It can be 'laplacian' for laplacian normalisation, 'row' for row-wise normalisation, 'column' for column-wise normalisation, or 'none'
`restart` | the restart probability used for Random Walk with Restart (RWR). The restart probability takes the value from 0 to 1, controlling the range from the starting nodes/seeds that the walker will explore. The higher the value, the more likely the walker is to visit the nodes centered on the starting nodes. At the extreme when the restart probability is zero, the walker moves freely to the neighbors at each step without restarting from seeds, i.e., following a random walk (RW)
`normalise.affinity.matrix` | the way to normalise the output affinity matrix. It can be 'none' for no normalisation, 'quantile' for quantile normalisation to ensure that columns (if multiple) of the output affinity matrix have the same quantiles
`parallel` | logical to indicate whether parallel computation with multicores is used. By default, it sets to true, but not necessarily does so. Partly because parallel backends available will be system-specific (now only Linux or Mac OS). Also, it will depend on whether these two packages "foreach" and "doMC" have been installed
`multicores` | an integer to specify how many cores will be registered as the multicore parallel backend to the 'foreach' package. If NULL, it will use a half of cores available in a user's computer. This option only works when parallel computation is enabled
`verbose` | logical to indicate whether the messages will be displayed in the screen. By default, it sets to true for display

### Value

an object of class "pNode", a list with following components:

- `priority`: a matrix of nNode X 5 containing node priority information, where nNode is the number of nodes in the input graph, and the 5 columns are "name" (node names), "node" (1 for network genes, 0 for non-network seed genes), "seed" (1 for seeds, 0 for non-seeds), "weight" (weight values), "priority" (the priority scores that are rescaled to the range [0,1]), "rank" (ranks of the priority scores)

- `g`: an input "igraph" object

### Note

The input graph will treat as an unweighted graph if there is no 'weight' edge attribute associated with

### See Also

`xRDataLoader`, `xRWR`, `xPierSNPs`, `xPierGenes`, `xPierPathways`

### Examples

    ## Not run:
    # Load the library
    library(Pi)

    ## End(Not run)

    RData.location <- "http://galahad.well.ox.ac.uk/bigdata"
    # a) provide the input nodes/genes with the significance info
    sig <- rbeta(500, shape1=0.5, shape2=1)
    ## Not run:
    ## load human genes
    org.Hs.eg <- xRDataLoader(RData='org.Hs.eg',
    RData.location=RData.location)
    data <- data.frame(symbols=org.Hs.eg$gene_info$Symbol[1:500], sig)

    # b) provide the network
    g <- xRDataLoader(RData.customised='org.Hs.PCommons_UN',
    RData.location=RData.location)

    # c) perform priority analysis
    pNode <- xPier(seeds=data, g=g, restart=0.75)

    ## End(Not run)