的GSEABenchmarkeR方案实现了一个可扩展的框架,用于可再生的评价集,基于网络的方法浓缩基因表达数据的分析。这包括支持这些方法的有效执行全面真实数据概略(微阵列和RNA-seq)标准工作站和机构的电脑上使用并行计算网格。方法可以评估对运行时,结果的统计学意义,相关表型研究。
GSEABenchmarkeR 1.10.1
的目的GSEABenchmarkeR包是比较不同方法的性能在许多基因集富集分析基因表达数据集。
用户感兴趣的进行基因集富集分析为一个特定的数据集的选择推荐使用EnrichmentBrowser包。
换句话说,
如果你有兴趣分析特定的微阵列或RNA-seq数据集,例如一个病例对照研究,你想找出哪些条款/ KEGG途径丰富差异表达基因,即你的主要目标生物的解释一个特定的数据集进行调查,然后使用EnrichmentBrowser包中。
如果你想评估性能(运行时,I型错误率等)不同的浓缩方法在许多数据集和在某些模拟设置——即你的主要目标是理解方法论方面和相互比较的方法,然后使用GSEABenchmarkeR包中。
虽然基因集富集分析(GSEA)已经成为不可或缺的一部分高通量基因表达数据分析,仍然是基本的和浓缩的评估方法特别的。在缺乏合适的黄金标准,评价通常局限于选择数据集和生物推理产生的丰富的相关性基因集。然而,这通常是不完整的,偏向新方法被提出。
作为评价GSEA方法通常是基于自我界定的标准,Mitrea et al。(2013)确定缺乏黄金标准一致的评估和比较的浓缩方法作为主要的瓶颈。此外,它通常很麻烦,复制现有评估额外的方法,因为这通常涉及到极大的数据处理和收集方法。
利用代表和可扩展的浓缩方法的集合EnrichmentBrowser包,GSEABenchmarkeR包方便有效地执行这些方法全面真实数据概略。概略是策划的芯片集合和RNA-seq数据集研究人类疾病(主要是特定的癌症类型),disease-relevant基因集定义先天的。
一直应用于这些数据集,浓缩方法可以系统的和可再生的评估(我)计算机运行时,(2)统计学意义,特别是重要的基因集的分数与分数的差异表达基因,和(3)表型的相关性,即是否浓缩方法产生基因设置排名phenotype-relevant基因集的积累。
在下面,我们将演示如何使用包
我们首先加载方案。
库(GSEABenchmarkeR)
的GSEABenchmarkeR方案实现了一个通用接口加载概略的表达数据集。这包括
在下面,我们更详细地描述两个预定义的概略并演示如何将用户定义的数据。
尽管RNA-seq(读计数数据)已经成为了事实上的转录组分析标准,重要的是要知道很多微分表达式和基因集富集方法最初开发了微阵列数据分析(强度测量)。然而,数据分布假设的差异(微阵列:拟正规,RNA-seq:负二项)中做出适应性分析和微分表达式,在某种程度上也在基因集富集分析,必要的。
然而,微阵列数据的全面采集和管理在线存储库等地理仍然是一种宝贵的资源。特别是,Tarca et al。2012年和2013年)编制42从地理数据集,每个调查一个特定的人类疾病KEGG通路的存在。
这些途径相应地定义时的目标途径各种浓缩方法应用到各自的数据集。例如,将排名的方法阿尔茨海默病通路当应用到接近顶部GSE1297阿尔茨海默病的病例对照研究。
此外,Tarca等人提供了这些数据集Bioconductor包KEGGdzPathwaysGEO和KEGGandMetacoreDzPathwaysGEO。
的GSEABenchmarkeR包简化访问提纲,并允许通过它加载到工作空间
geo2kegg < - loadEData (“geo2kegg”)
# #加载GEO2KEGG数据概要……
名(geo2kegg)
# # [1]“GSE1297”“GSE14762”“GSE15471”# # [4]“GSE16515”“GSE18842”“GSE19188”# # [7]“GSE19728”“GSE20153”“GSE20291”# # [10]“GSE21354”“GSE3467”“GSE3585”# # [13]“GSE3678”“GSE4107”“GSE5281_EC”# # [16]“GSE5281_HIP”“GSE5281_VCX”“GSE6956AA”# # [19]“GSE6956C”“GSE781”“GSE8671”# # [22]“GSE8762”“GSE9348”“GSE9476”# # [25]“GSE1145”“GSE11906”“GSE14924_CD4”# # [28]“GSE14924_CD8”“GSE16759”“GSE19420”# # [31]“GSE20164”“GSE22780”“GSE23878”# # [34]“GSE24739_G0”“GSE24739_G1”“GSE30153”# # [37]“GSE32676”“GSE38666_epithelia”“GSE38666_stroma”# # [40]“GSE4183”“GSE42057”“GSE7305”
一个特定的数据集的概要可以获得通过
geo2kegg [[1]]
# # ExpressionSet (storageMode: lockedEnvironment) # # assayData: 22283特性,16 # #样品元素名称:exprs # # protocolData:没有# # phenoData # # sampleNames: GSM21215 GSM21217……GSM21229 (16) # # varLabels:样本组# # varMetadata: labelDescription # # featureData:没有# # experimentData:使用“experimentData(对象)# # pubMedIds: 14769913 # #注释:hgu133a
它返回,在这个例子中,一个ExpressionSet
(记录在Biobase包),其中包含22283探针集的表达水平测量16例。
准备后续的数据分析,GSEABenchmarkeR包提供的函数maPreproc
。函数调用EnrichmentBrowser: probe2gene
在每个数据集总结探针注释相同的基因表达水平。这里,我们将函数应用于第一个5数据集的纲要。
geo2kegg < - maPreproc (geo2kegg [1:5])
# #总结调查水平表达…
现在,
geo2kegg [[1]]
# #类:SummarizedExperiment # #暗淡:12986(5):16 # #元数据experimentData注释protocolData dataId数据类型# #化验(1):exprs # # rownames (12986): 780 5982…构成了rowData名称(0):388796 100505915 # # # # colnames (16): GSM21215 GSM21217……GSM21213 GSM21229 # # colData名称(2):样本组
返回一个SummarizedExperiment包含了12994个基因的表达值。此外,样本组中定义colData
列集团在这里,7例(1)和9(0)的控制。
se < - geo2kegg[[1]]表(se组)美元
# # # # 0 1 # # 9 7
注意:maPreproc
返回数据集映射到NCBI Entrez基因id,这是与大多数下游应用程序兼容。然而,映射到不同的ID类型如运用ID或HGNC符号也可以使用这个函数EnrichmentBrowser: idMap
。
癌症基因组图谱(,TCGA)项目执行各种癌症的分子调查规模空前的包括各种基因组高通量技术。特别是,调查癌症类型的转录组分析全面进行RNA-seq在肿瘤与邻近正常组织。
TCGA的各种资源重新分配数据,拉赫曼et al。(2015)一贯预处理RNA-seq数据24癌症类型和地理数据集的数据GSE62944。
GSE62944纲要可以加载使用loadEData
函数,它提供了数据准备后续的微分表达式和基因集富集分析。
这里,我们将纲要加载到工作区中只使用两个数据集。
tcga tcga < - loadEData (“”, nr.datasets = 2)
# # TCGA加载数据概要……
# #癌症肿瘤样本:
# # ACC, BLCA BRCA,塞斯克COAD, DLBC,“绿带运动”,HNSC, KICH, KIRC, KIRP, LAML, LGG, LIHC, LUAD, LUSC, OV,马,阅读,SKCM, STAD, THCA, UCEC UCS
# #癌症类型与轮廓分明的正常样本:
# # BLCA BRCA,塞斯克,胆固醇,COAD,光电子能谱,“绿带运动”,HNSC, KICH, KIRC, KIRP, LIHC, LUAD, LUSC, PAAD, PCPG,马,阅读,不仅,SKCM, STAD, THCA, THYM UCEC
# #癌症肿瘤类型有足够和轮廓分明的正常样本:
# # BLCA BRCA
# #为他们每个人创建SummarizedExperiment……
# # BLCA肿瘤:19 adj.normal: 19
# # BRCA肿瘤:113 adj.normal: 113
tcga名称()
# # [1]“BLCA”“BRCA”
例如,乳腺癌数据集包含约20000个基因的RNA-seq读计数测量肿瘤(1)1119年和113年相邻正常(0)样本。
brca tcga < - [[2]] brca
# #类:SummarizedExperiment # #暗淡:12516 226(3):# #元数据注释dataId数据类型# #化验(1):exprs # # rownames (12516): 1 - 2…构成了rowData名称(1):23140 26009 # # # # colnames象征(226):TCGA-A7-A13G-01A-11R-A13Q-07 # # TCGA-E9-A1N5-01A-11R-A14D-07……TCGA-BH-A18M-11A-33R-A12D-07 # # TCGA-BH-A1EW-11B-33R-A137-07 # # colData名称(4):样本组块类型
表(brca美元集团)
# # # # 1 # # 113 113 0
简单和快速访问GEO2KEGG TCGA概略,浓缩方法可以直接应用在研究和评估,标准化的表达数据集。不过,基准测试的GSEABenchmarkeR包被设计成可扩展的额外的数据集。
因此,loadEData
数据集函数也接受一个目录,最好的类SummarizedExperiment已经保存为RDS文件。
数据。dir < -系统。文件(“extdata”,包=“GSEABenchmarkeR”) edat。dir < - file.path(数据。dir, myEData) edat < - loadEData (edat.dir)名称(edat)
# # [1]“GSE42057x”“GSE7305x”
edat [[1]]
# #类:SummarizedExperiment # #暗淡:136 # #元数据(5):experimentData注释protocolData数据类型dataId # #化验(1):exprs # # rownames (50): 3310 7318…构成了rowData名称(0):123036 117157 # # # # colnames (136): GSM1031553 GSM1031554……GSM1031683 GSM1031684 # # colData名称(2):样本组
执行微分表达式(DE)分析样品组之间选择数据集的纲要,GSEABenchmarkeR包提供的函数这就
。
函数调用EnrichmentBrowser:蒂安娜
在每个数据集,这对比样本组中定义的集团变量。
在这里,我们将函数应用于5 GEO2KEGG纲要的数据集。
geo2kegg < - runDE (geo2kegg de.method =“limma padj.method =“灵活”)rowData (geo2kegg [[1]], use.names = TRUE)
# # DataFrame 12986 # # FC limma第4行和列。STAT PVAL ADJ.PVAL # # <数字> <数字> <数字> <数字> # # 780 0.4321928 2.637507 0.0173002 0.0173002 5982 # # # # 3310 0.537732 0.5977430 0.5977430 0.1673362 0.265338 0.7939447 0.0350299 0.1450528 0.7939447 # # 7849 # # 2978 1.871136 0.0786689 0.0786689 -0.1186515 -0.887369 0.3872831 0.3872831 # #……………# # 8484 0.36666338 4.1946558 0.000610593 0.000610593 23779 # # # # 79583 1.2203778 0.239007679 0.239007679 0.06415321 0.3448205 0.734465533 0.08626413 0.734465533 # # 388796 # # 100505915 -0.00572267 -0.0856346 0.932759020 0.976028648 -0.00387318 -0.0304942 0.976028648 0.932759020
注意:德研究通常报告基因差异表达如果相应的德p值,修正为多个测试,满足所选的显著性水平。浓缩的方法直接在工作列表DE基因然后大大受到了多个测试修正。
常用的代表比例分析一个例子(奥拉),而评估DE基因和基因之间的重叠设置下研究基于超几何分布(见的小插图EnrichmentBrowser介绍包、附录A)。
奥拉是不适用的,如果有一些基因满足意义阈值,或者如果几乎所有基因是德。
使用padj.method =“灵活”的
占这些情况下运用多种测试校正对观察到的依赖程度的微分表达式:
注意,生成的\ (p \)值不进一步用于评估统计学意义之间及其内部的基因数据集。它们仅用于确定哪些基因是包含在分析奥拉,灵活调整确保包括基因的分数大概是在数据集在同一个数量级。替代策略也可以应用(如基因的常数为每个数据集或一般不包括奥拉从评估方法)。
在下面,我们将演示如何执行富集分析基准设置。因此,我们使用获得的人类KEGG基因集的集合getGenesets
从EnrichmentBrowser包中。
图书馆(EnrichmentBrowser) kegg。gs < - getGenesets (org =“保险”,db =“kegg”)
的核心应用特定的浓缩方法单一数据集runEA
函数,它代表执行选择的方法EnrichmentBrowser: sbea
(基于集合的富集分析)EnrichmentBrowser: nbea
(基于网络的富集分析)。此外,它返回CPU时间和允许保存结果用于后续评估。
在这里,我们进行奥拉的第一个数据集GEO2KEGG纲要。
kegg.ora。res < runEA (geo2kegg[[1]],方法=“奥拉”,g = kegg。gs、烫kegg.ora.res = 0)
# # $ ora # # $ ora GSE1297 # # ora GSE1297运行时美元美元# #运行# # 1.608 # # # # $ ora GSE1297排名# # DataFrame 333美元行4列# #基因。设置NR.GENES NR.SIG。基因PVAL # # <人物> <数字> <数字> <数字> # # 1 hsa00190_Oxidative_p . .106 55 1.70 e-12 # # 2 hsa05012_Parkinson_d . .213 84 4.15平台以及# # 3 hsa05016_Huntington_ . .259 97 5.11平台以及# # 4 hsa05022_Pathways_of . .410 135 4.94 e-09 # # 5 hsa05010_Alzheimer_d . .323 108 7.86 e-08 # #……………0.998 # # # # 329 hsa05218_Melanoma 69 6 330 hsa03040_Spliceosome 114 12 0.999 # # 331 hsa01521_EGFR_tyrosi . .77 6 1.000 # # 332 hsa04914_Progesteron . .77 5 1.000 # # 333 hsa00524_Neomycin _k . . 5 0 1.000
这个函数runEA
也可以用来进行几种方法在多个数据集。作为一个例子,我们开展奥拉,相机5日的数据集GEO2KEGG纲要结果保存在一个临时目录中。
res.dir < - tempdir () res < - runEA (geo2kegg方法= c(“奥拉”、“相机”),g = kegg。gs、烫= 0,save2file = TRUE, out.dir = res.dir) res ora美元[1:2]
# # $ GSE1297 # # GSE1297运行时美元0.783 # #运行# # # # # # GSE1297排名# # DataFrame美元和333行4列# #基因。设置NR.GENES NR.SIG。基因PVAL # # <人物> <数字> <数字> <数字> # # 1 hsa00190_Oxidative_p . .106 55 1.70 e-12 # # 2 hsa05012_Parkinson_d . .213 84 4.15平台以及# # 3 hsa05016_Huntington_ . .259 97 5.11平台以及# # 4 hsa05022_Pathways_of . .410 135 4.94 e-09 # # 5 hsa05010_Alzheimer_d . .323 108 7.86 e-08 # #……………0.998 # # # # 329 hsa05218_Melanoma 69 6 330 hsa03040_Spliceosome 114 12 0.999 # # 331 hsa01521_EGFR_tyrosi . .77 6 1.000 # # 332 hsa04914_Progesteron . .77 5 1.000 # # 333 hsa00524_Neomycin _k . . 5 0 1.000 ## ## ## $GSE14762 ## $GSE14762$runtime ## elapsed ## 0.781 ## ## $GSE14762$ranking ## DataFrame with 334 rows and 4 columns ## GENE.SET NR.GENES NR.SIG.GENES PVAL ## ## 1 hsa04145_Phagosome 144 45 2.78e-14 ## 2 hsa05150_Staphylococ.. 83 28 3.15e-10 ## 3 hsa05140_Leishmaniasis 73 25 1.99e-09 ## 4 hsa05416_Viral_myoca.. 57 21 8.85e-09 ## 5 hsa04514_Cell_adhesi.. 141 35 2.10e-08 ## ... ... ... ... ... ## 330 hsa00232_Caffeine_me.. 6 0 1 ## 331 hsa00400_Phenylalani.. 6 0 1 ## 332 hsa00440_Phosphonate.. 6 0 1 ## 333 hsa00750_Vitamin_B6_.. 6 0 1 ## 334 hsa00471_D-Glutamine.. 5 0 1
注:结果保存到文件通常是建议当执行几种方法为后续评估在多个数据集。这使得结果,可能从耗时的计算,获得持久R会话。意想不到的错误,这也使得从故障点恢复。
用户定义的浓缩方法可以很容易地插入基准测试框架。为演示中,我们定义了一个虚拟浓缩方法,随机了p从均匀分布值。
方法< -函数(se, gs) {ps < - runif(长度(gs))名称(ps) < -名称(gs)返回(ps)}
然后我们GEO2KEGG纲要的两个数据集上执行这个方法runEA
像以前一样。
res < - runEA (geo2kegg[1:2],方法,kegg.gs) res
# # # # $方法GSE1297美元GSE1297运行时美元# # # # $方法运行# # 0.62 # # # # $方法GSE1297排名# # DataFrame 333美元行2列# #基因。设置PVAL # # <人物> <数字> # # 1 hsa00601_Glycosphing . .0.00249 # # 2 hsa00910_Nitrogen_me . .0.00437 # # 3 hsa04658_Th1_and_Th2 . .0.00760 # # 4 hsa05321_Inflammator . .0.00762 # # 5 hsa03022_Basal_trans . .0.00825 # #………# # 329 hsa04931_Insulin_res . .0.981 # # 330 hsa04666_Fc_gamma_R - . .0.983 # # 331 hsa04360_Axon_guidance 0.986 # # 332 hsa04966_Collecting_ . .0.992 # # 333 hsa05144_Malaria 0.992 # # # # # # $ $ GSE14762 # # $方法GSE14762运行时# #美元运行# # 0.576 # # # # $方法GSE14762排名# # DataFrame 334美元行2列# #基因。设置PVAL # # <人物> <数字> # # 1 hsa05142_Chagas_dise . . 0.00123 ## 2 hsa02010_ABC_transpo.. 0.00275 ## 3 hsa04977_Vitamin_dig.. 0.00379 ## 4 hsa04657_IL-17_signa.. 0.00525 ## 5 hsa04911_Insulin_sec.. 0.00525 ## ... ... ... ## 330 hsa04625_C-type_lect.. 0.959 ## 331 hsa00620_Pyruvate_me.. 0.963 ## 332 hsa04514_Cell_adhesi.. 0.990 ## 333 hsa04929_GnRH_secret.. 0.991 ## 334 hsa04725_Cholinergic.. 0.994
一旦方法被应用于选择基准纲要,他们可以接受的比较评估运行时,统计意义,和表型的相关性。
为了演示如何评估每个准则,我们考虑一节的例子应用奥拉和相机5日GEO2KEGG纲要的数据集。
然而,注意,这个最小的例子是用来说明省时的方式基本功能——通常在装饰图案。在个人表现得出结论的方法,更全面的评估,包括应用程序完整的纲要,应该进行。
运行时,即使用的CPU时间,是一个重要的衡量方法的适用性。浓缩方法,运行时主要取决于方法依赖于排列测试,以及如何计算密集型的各自的数据重新计算每个排列(见图4在Geistlinger et al ., 2016)。
获取应用程序的运行时奥拉和相机5 GEO2KEGG纲要的数据集,我们可以使用readResults
作为我们存了结果显示结果目录在上面的电话runEA
。
ea.rtimes < - readResults (res。dir,名字(geo2kegg)方法= c(“奥拉”、“相机”),类型=“运行时”)ea.rtimes
# # $奥拉# # GSE1297 GSE14762 GSE15471 GSE16515 GSE18842 # # 0.783 0.781 0.885 0.604 0.877相机# # # # $ # # GSE1297 GSE14762 GSE15471 GSE16515 GSE18842 # # 0.396 0.422 0.728 0.531 0.653
对于评价结果的可视化,bpPlot
函数可用于创建定制的箱线图为特定基准标准。
bpPlot (ea。rtimes, =“运行时”)
两种方法是简单的基因集测试没有排列,他们是最快的领域——相机被奥拉的两倍左右。
的意思(ea.rtimes ora美元)/ (ea.rtimes相机美元)
# # 1.43956 [1]
意义的统计精度估计基因一再讨论组测试。例如,系统性通胀的统计学意义奥拉由于基因之间一个不切实际的独立性假设是证据确凿的(Goeman Buehlmann, 2007)。另一方面,置换过程整合在许多基因设置测试已被证明是有偏见(埃夫隆Tibshirani, 2007如果排列),也不准确\ (p \)报告为零值(Phipson和史密斯,2010)。
这些缺点会导致不当大分数重要的基因集,并可以大大削弱基因集的优先级。因此重要的是要评估产生的分数重要的基因集相比其他方法和对差异表达基因的一部分作为一个基线。
我们使用readResults
函数获取保存的基因集排名奥拉和相机当应用于5 GEO2KEGG纲要(见上图调用的数据集runEA
)。
ea.ranks < - readResults (res。dir,名字(geo2kegg)方法= c(“奥拉”、“相机”),类型=“排名”)的长度(ea.ranks)
# # ora相机# 5 # 5
ea.ranks ora美元[1:2]
# # $ GSE1297 # # DataFrame 333行4列# #基因。设置NR.GENES NR.SIG。基因PVAL # # <人物> <数字> <数字> <数字> # # 1 hsa00190_Oxidative_p . .106 55 1.70 e-12 # # 2 hsa05012_Parkinson_d . .213 84 4.15平台以及# # 3 hsa05016_Huntington_ . .259 97 5.11平台以及# # 4 hsa05022_Pathways_of . .410 135 4.94 e-09 # # 5 hsa05010_Alzheimer_d . .323 108 7.86 e-08 # #……………0.998 # # # # 329 hsa05218_Melanoma 69 6 330 hsa03040_Spliceosome 114 12 0.999 # # 331 hsa01521_EGFR_tyrosi . .77 6 1.000 # # 332 hsa04914_Progesteron . .77 5 1.000 # # 333 hsa00524_Neomycin _k . . 5 0 1.000 ## ## $GSE14762 ## DataFrame with 334 rows and 4 columns ## GENE.SET NR.GENES NR.SIG.GENES PVAL ## ## 1 hsa04145_Phagosome 144 45 2.78e-14 ## 2 hsa05150_Staphylococ.. 83 28 3.15e-10 ## 3 hsa05140_Leishmaniasis 73 25 1.99e-09 ## 4 hsa05416_Viral_myoca.. 57 21 8.85e-09 ## 5 hsa04514_Cell_adhesi.. 141 35 2.10e-08 ## ... ... ... ... ... ## 330 hsa00232_Caffeine_me.. 6 0 1 ## 331 hsa00400_Phenylalani.. 6 0 1 ## 332 hsa00440_Phosphonate.. 6 0 1 ## 333 hsa00750_Vitamin_B6_.. 6 0 1 ## 334 hsa00471_D-Glutamine.. 5 0 1
的evalNrSigSets
计算的百分比显著的基因集给定的显著性水平α
和多个测试修正方法padj
。我们可以想象使用前评估结果bpPlot
,这表明这里相机产生显著重要的基因集的分数比奥拉。
sig.sets < - evalNrSigSets (ea。军衔,α= 0.05,padj sig.sets =“黑洞”)
# # ora相机# # GSE1297 4.504505 - 19.51952 # # GSE14762 13.473054 - 32.93413 # # GSE15471 4.491018 - 21.85629 # # GSE16515 5.389222 - 19.16168 # # GSE18842 1.197605 - 22.75449
bpPlot(团体。集,什么= " sig.sets”)
正如上面介绍的,Tarca et al。2012年和2013年)也分配一个目标路径的每个数据集GEO2KEGG纲要,为各自的表型研究被认为是高度相关的。然而,数据集之间的关系,研究表型,并指定目标途径并不总是明确的。此外,还有通常不止一个途径被认为是相关调查表型。
另一方面,评价发表的浓缩方法经常在表型相关性结论,如果有任何顶级基因集和调查表型之间的联系。
更系统化的方法中使用MalaCards人类疾病的数据库。这里的相关性去和KEGG基因集总结(我)实验证据和(二世在文献中)co-citation与相应的疾病。
的GSEABenchmarkeR包提供MalaCards相关性疾病调查的排名TCGA GEO2KEGG和概略的数据集。这里,我们负荷相关性排名KEGG基因集,并演示如何纳入评估表型的相关性。
我们注意到相关性排名含有不同数量的基因集不同的疾病,因为只有基因集的证据/协会列出了各自的疾病被发现在一个排名。
演示中,我们检查的相关性排名阿尔茨海默氏症(ALZ)和乳腺癌(BRCA)包含57和142基因集,分别。
mala.kegg。文件< - file.path(数据。dir,玛拉“malacards”、“KEGG.rds”)。kegg < - readRDS (mala.kegg.file)酸式焦磷酸钠(磨面。kegg nrow)
# # ACC ALZ BLCA BRCA塞斯克胆固醇CML COAD CRC DCM DLBC DMND能谱GBM HNSC亨特# 57 # 9 65 142 22 33 56 28 161 23 52 99 90 99 72 34 # # KICH KIRC KIRP LAML LES LGG LIHC LUAD LUSC内消旋OV PAAD公园PCPG PDCO马# # 4 8 8 108 49 24 98 54 23 31 70 39 12 31日12 # #阅读不仅SKCM STAD TGCT THCA THYM UCEC UCS UVM 42 # # 2 73 24 81 61 90 24 29 55
mala.kegg ALZ美元
# # DataFrame # # 57行和4列标题REL.SCORE匹配。基因总数。基因# # <人物> <数字> <整数> <整数>阿尔茨海默病84.12 28 177 # # # # hsa05010 hsa04932不含酒精的脂肪。84.12 7 160羟色胺突触49.19 8 115 # # # # hsa04726 hsa04728多巴胺突触49.19 98 130 # # hsa04713昼夜夹带49.19 5 # #……………35 # # # # hsa05310哮喘9.81 - 1 hsa05416病毒性心肌炎9.81 - 2 64 # # hsa05330同种异体移植物排斥9.81 - 1 41 # # hsa05332移植物抗宿主di . .9.81 - 2 45 # # hsa05321炎症性肠d . .67年9.81 - 2
mala.kegg BRCA美元
# # DataFrame 142行4列# #标题REL.SCORE匹配。基因总数。基因# # <人物> <数字> <整数> <整数> # # hsa05210大肠癌166.1 35 70 # # hsa05213子宫内膜癌166.1 23 61 # # hsa05221急性髓系白血病166.1 16黑素瘤60 # # hsa05218 166.1 35 78 # # 166.1 hsa05215前列腺癌40 95 # #……………# # hsa05020朊病毒疾病13.23 6 43 # # hsa05144疟疾11.34 6 55 # # hsa05143非洲trypanosomia . .11.28 - 5 36 # # hsa04720长期势差10.93 7 67 # # hsa05134军团病10.81 6 59
获得相应的疾病的相关性排名调查在评估结果在一个特定的数据集,数据集之间的映射和研究疾病是必需的。这个函数readDataId2diseaseCodeMap
从表格文本文件读取这种映射,然后将它转变成一个名为向量的元素对应的疾病编码和名称的数据集id。
在这里,我们读GSE ID和疾病之间的映射代码GEO2KEGG纲要。
d2d。文件< - file.path(数据。dir, d2d“malacards”、“GseId2Disease.txt”)。< - readDataId2diseaseCodeMap地图(d2d.file)头(d2d.map)
# # GSE1145 GSE11906 GSE1297 GSE14762 GSE14924_CD4 GSE14924_CD8 # #“DCM”“PDCO”“ALZ”“KIRC”“LAML”“LAML”
评估一组基因的表型相关性排名从应用程序获得的浓缩方法表达数据集,函数evalRelevance
评估是否排名积累phenotype-relevant基因集(即基因相关性高的分数)。因此,函数首先将浓缩的排名分析权重越大,体重的基因集,它越排名GSEA排名的顶部。然后将这些权重乘以相应的相关性分数和总结。
在这里,我们使用evalRelevance
评估是否奥拉,当应用到GSE1297数据集,复苏Alzheimer-relevant KEGG通路。
ea.ranks ora GSE1297美元
# # DataFrame 333行4列# #基因。设置NR.GENES NR.SIG。基因PVAL # # <人物> <数字> <数字> <数字> # # 1 hsa00190_Oxidative_p . .106 55 1.70 e-12 # # 2 hsa05012_Parkinson_d . .213 84 4.15平台以及# # 3 hsa05016_Huntington_ . .259 97 5.11平台以及# # 4 hsa05022_Pathways_of . .410 135 4.94 e-09 # # 5 hsa05010_Alzheimer_d . .323 108 7.86 e-08 # #……………0.998 # # # # 329 hsa05218_Melanoma 69 6 330 hsa03040_Spliceosome 114 12 0.999 # # 331 hsa01521_EGFR_tyrosi . .77 6 1.000 # # 332 hsa04914_Progesteron . .77 5 1.000 # # 333 hsa00524_Neomycin _k . . 5 0 1.000
奥林匹克广播服务公司。分数< - evalRelevance (ea。奥拉GSE1297美元,美元mala.kegg obs.score ALZ)
# # 845.4439 [1]
评估观察到的相关性分数的重要性的一个浓缩方法应用到一个特定的数据集,即评估观察的可能性有多大相关性得分等于或大于获得的一个函数compRand
反复应用evalRelevance
随机绘制基因组排名。
演示中,我们计算相关性得分50随机基因设置排名和计算p值排列测试。这表明相关性分数从应用ORA GSE1297大大超过随机获得分数。
gs.names < - ea.ranks ora GSE1297基因美元美元。gs。我ds <- substring(gs.names, 1, 8) rand.scores <- compRand(mala.kegg$ALZ, gs.ids, perm=50) summary(rand.scores)
# #分钟。1日瞿瞿。中值的意思是3日,马克斯。# # 553.9 613.5 642.3 644.9 665.7 - 743.2
(和(兰德。分数> = obs.score) + 1) / 51
# # 0.01960784 [1]
观察到的相关性分数可以用来比较表型关联的两个或两个以上的方法应用于一个特定的数据集。然而,随着基因集的数量之间的相关性排名不同表型(见上图5.3.1 MalaCards疾病相关性排名),对比数据集不是简单的结果相关性评分尺度不同。
因此,函数compOpt
适用于evalRelevance
理论上最优情况下的浓缩分析排名是一致的相关性分数排名。观察和最佳得分之间的比率可以用来比较观察数据集之间的分数。
这里,我们计算的最佳得分老年痴呆症相关排序,这表明分数观察奥拉,当应用于GSE1297,大约68%的最佳得分。
opt.score < - compOpt(磨面。kegg ALZ美元,gs。我ds) opt.score
# # 1229.426 [1]
(奥林匹克广播服务公司。分数/ opt.score * 100,数字= 2)
# # 68.77 [1]
评估表型的相关性evalRelevance
也可以做几个方法应用在多个数据集。这允许评估是否某些浓缩方法往往会产生表型相关性的排名高于其他方法在应用到数据集的纲要。前一节中所说明的,观察到的相关性分数总是表达了各自的最佳得分的关系。
演示中,我们使用evalRelevance
评估表型相关的基因集排名由奥拉和相机当应用于5 GEO2KEGG纲要的数据集。我们可以想象使用前评估结果bpPlot
,这表明,奥拉往往恢复比相机更phenotype-relevant基因集。
all.kegg。res < - evalRelevance (ea。排名,玛拉。kegg, d2d.map[名称(geo2kegg)]) bpPlot (all.kegg。res, = " rel.sets”)
还可以细化集成MalaCards相关性排名或将相关性排名的额外的数据集。
为示范,我们修改KEGG相关排序为阿尔茨海默病提供一个随机的相关性分数为每个基因集。
rel.ranks < -玛拉。kegg $ ALZ [1:2] rel.ranks REL美元。分数< - runif (nrow (rel.ranks),最小值= 1,max = 100) rel.ranks REL美元。分数< -圆(rel.ranks REL美元。分位数= 2)< -订单(rel.ranks REL美元。分数,减少= TRUE) rel.ranks < - rel.ranks印第安纳州,rel.ranks
# # # # DataFrame 57行和2列标题REL.SCORE # # <人物> <数字> 99.30 # # # # hsa05310哮喘hsa05152肺结核98.73 # # hsa04910胰岛素信号pa . .98.27 # # hsa00190氧化磷酰基. .96.74 # # hsa04940 I型糖尿病干预。95.96 # #………12.51 # # # # hsa05161乙肝hsa04915雌激素信号p . .5.73 # # 12.26 # # hsa05330同种异体移植物排斥hsa05332移植物抗宿主di . .2.58 # # hsa05014肌萎缩性脊髓侧索. .2.12
我们可以计算出聚合奥拉的相关性分数排名根据更新后的相关排序使用evalRelevance
像以前一样。
evalRelevance (ea。奥拉GSE1297美元,rel.ranks)
# # 1904.515 [1]
准备一个表达式的数据为基准的浓缩方法纲要可以耗时。在GEO2KEGG纲要,它需要总结调查水平表达在基因水平,随后为每个数据集进行差异表达分析。
灵活地保存和恢复一个已经处理过的纲要表达数据,我们可以使用cacheResource
函数构建的功能BiocFileCache包中。
cacheResource (geo2kegg rname = " geo2kegg”)
这增加了所选5的数据集GEO2KEGG纲要(如加工在整个装饰图案)的缓存,并允许恢复它在稍后的时间通过
geo2kegg < - loadEData (“geo2kegg缓存= TRUE)
# #加载GEO2KEGG数据概要……
名(geo2kegg)
# # [1]“GSE1297”“GSE14762”“GSE15471”“GSE16515”“GSE18842”
注意:要获得原始的未经加工的版本的纲要,设置缓存
论点的loadEData
函数假
。
清除缓存(小心使用):
缓存。dir < - rappdirs:: user_cache_dir (“GSEABenchmarkeR”)均< - BiocFileCache:: BiocFileCache (cache.dir) BiocFileCache:: removebfc黄东海)
利用功能从BiocParallel并行计算的功能maPreproc
,这就
,尤其是runEA
,当应用到多个数据集是非常简单的。在内部,这些函数调用BiocParallel: bplapply
,触发并行计算中配置的第一个元素BiocParallel:注册()
。因此,并行计算是隐式地包含在上面的调用这些函数时在多核机器上进行。看到的小插图BiocParallel包的介绍。
检查
BiocParallel:注册()
# # $ MulticoreParam # #类:MulticoreParam # # bpisup:假;bpnworkers: 4;bptasks: 0;bpjobname: BPJOB # # bplog:错误;bpthreshold:信息;bpstopOnError:真正的# # bpRNGseed:;bptimeout: 2592000;bpprogressbar:假# # bpexportglobals:真正的# # bplogdir: NA # # bpresultdir: NA集群类型:# # # # # # $ SnowParam # #类:SnowParam # # bpisup:假;bpnworkers: 4;bptasks: 0; bpjobname: BPJOB ## bplog: FALSE; bpthreshold: INFO; bpstopOnError: TRUE ## bpRNGseed: ; bptimeout: 2592000; bpprogressbar: FALSE ## bpexportglobals: TRUE ## bplogdir: NA ## bpresultdir: NA ## cluster type: SOCK ## ## $SerialParam ## class: SerialParam ## bpisup: FALSE; bpnworkers: 1; bptasks: 0; bpjobname: BPJOB ## bplog: FALSE; bpthreshold: INFO; bpstopOnError: TRUE ## bpRNGseed: ; bptimeout: 2592000; bpprogressbar: FALSE ## bpexportglobals: TRUE ## bplogdir: NA ## bpresultdir: NA
显示执行使用MulticoreParam
默认(在Windows上:SnowParam
),bpnworkers
属性显示核心的数量参与计算。
改变函数的执行模式中提供GSEABenchmarkeR类的包,配置相应的计算参数BiocParallelParam
可以直接通过注册BiocParallel:注册
或提供的平行
相应的函数的参数。
对于演示,我们配置一个BiocParallelParam
显示一个进度条
英国石油公司。par <- BiocParallel::registered()[[1]] BiocParallel::bpprogressbar(bp.par) <- TRUE
和供应这就
与更新的计算参数。
geo2kegg < - runDE (geo2kegg,平行= bp.par)
0% # # | | | | | = = = = = = = = = = = = = = = = = = | 25% | | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | 50% | | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | 75% | | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | 100%
用户想使用分布式计算,如一个机构的计算机集群,应该咨询的装饰图案BiocParallel包同样的配置BiocParallelParam
用于这一目的。