R语言实现GEO多数据集的分析
大家对GEO的数据应该都很熟悉,那么如何把GEO中多个研究进行合并分析成为一个比较棘手的问题,今天给大家介绍这么一个包可以实现多研究的合并分析。首先我们看下前期需要的准备工作:
install.packages("survival","samr","combinat")
install.packages("BiocManager ")
BiocManager::install("DESeq2")
BiocManager::install("impute")
BiocManager::install("limma")
BiocManager::install("edgeR")
BiocManager::install("Biobase")
devtools::install_github("metaOmics/MetaDE")
接下来,我们看下其主函数MetaDE:
其中主要的参数:
Data 构成为K个G*M的表达矩阵。K为研究数量,G行基因,M列样本。
Clin.data 构成为K个M*P的矩阵,K为研究数量,M行样本,P列属性。
Data.type 为数据的类型"continuous"or "discrete".,RPKM/FPKM/TPM是连续的"continuous";read counts 为"discrete"。
Resp.type 指出response的数据类型,包括:"twoclass", "multiclass", "continuous"and "survival"。在此处"survival"需要注意,此类型需要response引入两列变量,第一列生存时间;第二列状态。
Covariate 此参数可以设置临床数据作为DE的协变量
Ind.method 指的是response和表达矩阵之间的关系的分析方法。"twoclass" or "multiclass" response, must be oneof "limma", "sam" for "continuous" data type;"edgeR", "DESeq2" or "limmaVoom" for"discrete" data type. "continuous" response, use"pearsonr" or "spearmanr". "survival", use"logrank".
Meta.method 主要用到的合并研究的一些方法,具体的选用哪个方法要看研究的数据了。其中包括:"maxP","maxP.OC","minP","minP.OC", "Fisher","Fisher.OC","AW",roP","roP.OC","Stouffer","Stouffer.OC","SR","PR","minMCC","FEM","REM","rankProd"。
其输出包括下列几个值:
接下来我们直接看下实例:
data('Leukemia')
data('LeukemiaLabel')
data <- Leukemia
K <- length(data)
clin.data <- lapply(label, function(x){data.frame(x)} )
for (k in 1:length(clin.data)){
colnames(clin.data[[k]]) <-"label"
}
select.group <- c('inv(16)','t(15;17)')
ref.level <- "inv(16)"
data.type <- "continuous"
ind.method <- c('limma','limma','sam')
resp.type <- "twoclass"
paired <- rep(FALSE,length(data))
meta.method <- "Fisher"
meta.res <- MetaDE(data=data,clin.data =clin.data,
data.type=data.type,resp.type = resp.type,
response='label',
ind.method=ind.method,meta.method=meta.method,
select.group =select.group, ref.level=ref.level,
paired=paired,tail='abs',parametric=TRUE)
summary.result <-summary.meta(result=meta.res,
meta.method =meta.method,
resp.type =resp.type)
summary.result
从上面的结果我们可以看出每个基因在不同研究中的分析结果和meta分析的结果。
我们也可以对结果进行可视化展示:
fdr.cut <- 1e-7
heatmap.sig.genes(meta.res,meta.method=meta.method,
fdr.cut=fdr.cut,color="GR")
另外还可以进行通路富集分析,我们就直接看实例:
meta.p <- meta.res$meta.analysis$pval
ks.result <- PathAnalysis(meta.p = meta.p,enrichment = "KS")