Learn R Programming

pnea (version 1.2.4)

pnea: Performs PNEA for lists of gene sets

Description

Compute parametric network enrichment analysis from a first list of sets ('A sets') to a second list of sets ('B sets').

Usage

pnea(alist, blist = NULL, network, nettype, nodes, alpha = NULL, anames = NULL, bnames = NULL)

Arguments

alist
List of A sets. Each element within the list is a vector of genes and represents a gene set
blist
List of B sets. Each element within the list is a vector of genes and represents a gene set. If nettype == "undirected", this argument is optional: if provided, every set of blist is compared with every set of alist; if NULL, the function compares sets in alist between themselves
network
One of the following objects: an adjacency matrix of class "matrix" (see 'Example 1') or a sparse adjacency matrix of class "dgCMatrix"; an igraph object (see 'Example 2'); a two-column matrix where every row represents and edge (for directed networks, parent nodes must be in the first column, and child nodes in the second)
nettype
Either 'directed' or 'undirected'
nodes
Vector containing the (ordered) names of all nodes in the network
alpha
Significance level of the test (optional). If specified, a column with the conclusion of the test is added to the output
anames
Vector of names for the elements of alist (optional: it has to be provided only if the elements of alist are not named)
bnames
Vector of names for the elements of blist (optional: it has to be provided only if the elements of blist are not named)

Value

A
A set
B
B set
nab
observed number of links from A to B
expected_nab
expected number of links from A to B (in absence of enrichment)
pvalue
p-value of the test
conclusion
conclusion of the test (only if alpha is specified): no enrichment, overenrichment or underenrichment

See Also

networkmatrix, plot.pnea, print.pnea, summary.pnea

Examples

Run this code
# Example 1: network given as adjacency matrix:
A = matrix(0, nrow=7, ncol=7)
A[1,c(2,3)]=1; A[2,c(5,7)]=1;A[3,c(1,4)]=1;A[4,c(2,5,7)]=1;A[6,c(2,5)]=1;A[7,4]=1
labels = letters[1:7]
set1 = c('a','e')
set2 = c('c','g')
set3 = c('d','f')
alist = list('set 1' = set1, 'set 2' = set2)
blist = list('set 3' = set3)

test1 = pnea(alist = alist, blist = blist, network=A, 
             nettype='directed', nodes=labels, alpha=0.05)
print(test1)

# Example 2: network given as igraph object:
library(igraph)
network = erdos.renyi.game(15, 1/3)
set1 = 1:4
set2 = c(2,5,13)
set3 = c(3,9,14)
set4 = c(8,15,20)
alist = list('set 1' = set1, 'set 2' = set2)
blist = list('set 3' = set3, 'set 4' = set4)

test2 = pnea(alist, blist, network = network, 
             nettype='undirected', nodes=seq(1,15), alpha=NULL)
print(test2)

# Example 3: network given as list of links:
networklist = matrix(nrow=13, ncol=2)
networklist[,1]=c('a','a','b','b','c','d','d','d','f','f','f','h','h')
networklist[,2]=c('d','e','e','g','d','b','e','g','a','b','e','c','g')

labels = letters[1:8]
set1 = c('a','b','e')
set2 = c('c','g')
set3 = c('d','f')
set4 = c('a','b','f')
alist = list('set 1' = set1, 'set 2' = set2)
blist = list('set 3' = set3, 'set4' = set4)

test3 = pnea(alist, blist, network = networklist, 
             nettype = 'undirected', nodes=labels, alpha=0.05)
print(test3)

alist = list('set 1' = set1, 'set 2' = set2, 'set 3' = set3)
test4 = pnea(alist, network = networklist, 
             nettype = 'undirected', nodes=labels, alpha=0.05)
print(test4)

# Example 4: ESR data
## Not run: 
# data(yeast)
# esr = list('ESR 1' = yeast$esr1, 'ESR 2' = yeast$esr2)
# test = pnea(alist = esr, blist = yeast$goslimproc, network = yeast$yeastnet,
#             nettype = 'undirected', nodes = yeast$ynetgenes, alpha = 0.01)
# 
# test1 = test[1:99,]
# table(test1$conclusion)
# plot(test1)
# o1=test1[test1$conclusion=='Overenrichment',]
# print(o1, nrows='ALL') #display overenrichments
# 
# test2 = test[100:198,]
# table(test2$conclusion)
# plot(test2)
# o2=test2[test2$conclusion=='Overenrichment',]
# print(o2, nrows='ALL') #display overenrichments
# ## End(Not run)

Run the code above in your browser using DataLab