permutationSimpleLm: permutationSimpleLm

Description Usage Arguments Value Author(s) See Also Examples

Description

permutationSimpleLm is a permutation test to calculate the empirical p values for a weighted simple linear regression.

Usage

1
2
permutationSimpleLm(fc, net, weights = rep(1, nrow(net)), num = 100,
  verbose = TRUE)

Arguments

fc

a vector of numeric values representing the gene expression fold change

net

a matrix of numeric values in the size of gene number x gene set number, representing the connectivity betweeen genes and gene sets

weights

a vector of numeric values representing the weights of permuted genes

num

a vector of integer values representing the number of permutations

verbose

an boolean value indicating whether or not to print output to the screen

Value

a data frame comprising the following columns:

Author(s)

Shijia Zhu, shijia.zhu@mssm.edu

See Also

orderedIntersect; permutationSimpleLmMatrix;

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# load data
data(heart.metaXcan)
gene <- heart.metaXcan$gene_name

# extract the imputed Z-score of gene differential expression, which 
# follows the normal distribution
fc <- heart.metaXcan$zscore

# use as weights the prediction R^2 and the fraction of imputation-used SNPs 
usedFrac <- heart.metaXcan$n_snps_used / heart.metaXcan$n_snps_in_cov
r2 <- heart.metaXcan$pred_perf_r2
weights <- usedFrac*r2

# build a new data frame for the following weighted linear regression-based 
# enrichment analysis
data <- data.frame(gene,fc,weights)
head(data)

net <- MSigDB.KEGG.Pathway$net

# intersect the permuted genes with the gene sets of interest
data2 <- orderedIntersect( x = data[,c("fc","weights")] , by.x = data$gene , 
by.y = rownames(net)  )
net2 <- orderedIntersect( x = net , by.x = rownames(net) , 
by.y = data$gene  )
all( rownames(net2) == rownames(data2) )

# the SGSEA.res1 uses the weighted simple linear regression model, 
# while SGSEA.res2 used the weighted Pearson correlation. The latter one 
# takes substantially less time.
# system.time(SGSEA.res1<-permutationSimpleLm(fc=data2$fc, net=net2, 
# weights=data2$weights, num=1000))
# system.time(SGSEA.res2<-permutationSimpleLmMatrix(fc=data2$fc, net=net2, 
# weights=data2$weights, num=1000))
# head(SGSEA.res2)

zhushijia/GIGSEA documentation built on May 3, 2019, 10:45 p.m.