vlambda博客
学习文章列表

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:

R语言实现GEO多数据集的分析


其中主要的参数:

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"。

其输出包括下列几个值:

R语言实现GEO多数据集的分析


接下来我们直接看下实例:

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)

R语言实现GEO多数据集的分析

summary.result <-summary.meta(result=meta.res,
meta.method =meta.method, resp.type =resp.type)summary.result

R语言实现GEO多数据集的分析

从上面的结果我们可以看出每个基因在不同研究中的分析结果和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")