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 <- LeukemiaK <- 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-7heatmap.sig.genes(meta.res,meta.method=meta.method,fdr.cut=fdr.cut,color="GR")
另外还可以进行通路富集分析,我们就直接看实例:
meta.p <- meta.res$meta.analysis$pvalks.result <- PathAnalysis(meta.p = meta.p,enrichment = "KS")
