permutationMultipleLm: permutationMultipleLm

Description Usage Arguments Value Author(s) See Also Examples

View source: R/permutationMultipleLm.R

Description

permutationMultipleLm is a permutation test to calculate the empirical p values for a weighted multiple linear regression.

Usage

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

Arguments

fc

a vector of numeric values representing gene expression fold change

net

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

weights

a vector of numeric values representing the weights of permuated genes

num

an integer value 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; permutationMultipleLmMatrix;

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
36
# load data
data(heart.metaXcan)
gene <- heart.metaXcan$gene_name

# extract the imputed Z-score of differential gene 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 imputed genes with the gene sets of interest
data2 <- orderedIntersect( x = data , by.x = data$gene , 
by.y = rownames(net)  )
net2 <- orderedIntersect( x = net , by.x = rownames(net) , 
by.y = data$gene  )
all( rownames(net2) == as.character(data2$gene) )

# the MGSEA.res1 uses the weighted multiple linear regression to do 
# permutation test, 
# while MGSEA.res2 used the solution of weighted matrix operation. The 
# latter one takes substantially less time.
# system.time( MGSEA.res1<-permutationMultipleLm(fc=data2$fc, net=net2, 
# weights=data2$weights, num=1000))
# system.time( MGSEA.res2<-permutationMultipleLmMatrix(fc=data2$fc, 
# net=net2, weights=data2$weights, num=1000))
# head(MGSEA.res2)

GIGSEA documentation built on Nov. 8, 2020, 7:02 p.m.