的ExperimentHub
服务器提供简单的R /生物导体访问大型数据文件。
的ExperimentHub包为存储在ExperimentHub web服务中的资源提供了一个客户端接口。它有类似的功能AnnotationHub包中。
库(ExperimentHub)
的ExperimentHub软件包使用简单明了。创建一个ExperimentHub
对象
eh = ExperimentHub()
## snapshotDate(): 2022-04-19
现在,您已经完成了开始检索实验数据所需的所有工作。对于大多数操作,使用ExperimentHub
对象应该感觉很像与熟悉的对象一起工作列表
或data.frame
并且具有an的所有功能中心
对象就像AnnotationHub包的AnnotationHub
对象。
让我们花一分钟时间来看看hub对象的show方法
嗯
##实验者与6301记录##快照日期():2022-04-19 ## $数据提供者:Eli和Edythe L. Broad研究所哈佛和麻省理工学院,NCBI,…## # $物种:智人,小家鼠,酿酒酵母,人类肠道…$rdataclass: summarizeexperiment, ExpressionSet, character, matrix, list,…## #附加mcols(): taxonomyid,基因组,描述,## # coordinate_1_based, maintainer, rdatadateadded,准备类,标签,## # rdatapath, sourceurl, sourcetype ## #检索记录,例如,'object[["EH1"]]]' ## ## title ## EH1 | rna -测序和临床数据7706肿瘤样本从…## eh166 | err188297 ## eh167 | err188088 ## eh168 | err188204 ## eh169 | err188317 ## ... ...windtt_2020。windtt_2020。windtt_2020 . mark_presence ## EH7520 |windtt_2020。windtt_2020 . relative_丰度
您可以看到,它让您了解了集线器中存在的不同类型的数据。您可以看到数据来自哪里(dataprovider),以及哪些物种有样本(species),可以返回什么类型的R数据对象(rdataclass)。我们可以通过简单地查看dataprovider的内容来仔细查看所有可用的数据提供程序,就像它是data.frame对象的列一样:
(独特的(嗯dataprovider美元))
“GEUVADIS”“Allen Brain Atlas”“ArrayExpress”“心理系,Abdul Haq校区,联邦乌尔都艺术,科学和技术大学,巴基斯坦卡拉奇。shahiq_psy@yahoo.com“##[6]”化学与生物工程系,查尔姆斯理工大学,SE-412 96哥德堡,瑞典。”
同样地,通过查看物种的内容,你也可以看到枢纽内不同物种的数据,就像这样:
(独特的(嗯物种美元))
“智人”“小家鼠”“小家鼠(E18小鼠)”“褐家鼠”“人类肠道宏基因组”
这也适用于任何其他类型的元数据。键入' eh$ '后,只需按tab键,就可以了解哪些元数据可用。通过这种方式,您可以直接从命令行探索集线器中显示的数据类型。该接口还允许您以编程方式访问集线器,以提取符合特定标准集的数据。
要注意的另一种有价值的元数据类型是rdata类。
(独特的(嗯rdataclass美元))
## [1] "ExpressionSet" "GAlignmentPairs" ## [3] "CellMapperList" "gds.class" " rangedsummarize实验" "GRanges"
rdata类允许您查看hub将返回给您的R对象的哪种类型。这类信息是有价值的,无论是作为一种过滤结果的手段,还是作为一种探索和学习某些类型的ExperimentHub
项目中广泛可用的对象。现在这是一个非常短的列表,但随着时间的推移,它应该会随着我们支持更多不同类型的ExperimentHub
对象通过集线器。
方法关联的数据文件r Biocpkg(“alpineData”)
使用查询方法打包。查询方法允许在行中搜索特定字符串,返回ExperimentHub
实例,只使用与查询匹配的行。的ExperimentHub:包()
function表示负责原始准备和ExperimentHub数据文档的包,是查找有关数据的更多信息的有用资源。此包还可能依赖、导入或建议操作数据所需的其他包,因此可能需要安装和加载该包才能使用该资源。该包还可在(名称模糊)中使用preparerclass
ExperimentHub对象元数据的列。
你可以通过以下方式从UCSC获得黑腹果蝇的链文件:
apData <- query(eh, "alpineData") apData
## ExperimentHub与4条记录## # snapshotDate(): 2022-04-19 ## $dataprovider: GEUVADIS ## # $species: Homo sapiens ## # $rdataclass: GAlignmentPairs ## #附加mcols(): taxonomyid,基因组,描述,## # coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags, ## # rdatapath, sourceurl, sourcetype ## #检索记录,例如,'object[["EH166"]]]' ## ## title ## EH166 | ERR188297 ## EH167 | ERR188088 ## EH168 | ERR188204 ## EH169 | ERR188317
查询已经正常工作,现在可以看到惟一的数据是由alpineData包中。
您可以检索这个中心对象下的元数据
apData preparerclass美元
##[1]“alpineData”“alpineData”“alpineData”“alpineData”“alpineData”“alpineData”
df <- mcols(apData)
默认情况下,show方法只显示前5行和后5行。中心中有数百条记录。
长度(嗯)
## [1] 6301
让我们看另一个例子,我们只从中心提取物种“小家鼠”的数据。
Mm <- query(eh, "mus musculus") Mm
##实验者与1406条记录## #快照日期():2022-04-19 ## $数据提供商:Jonathan Griffiths, Tabula Muris财团,GEO, Mike…## # $物种:Mus musculus, Mus musculus (E18小鼠)## # $rdataclass:字符,矩阵,DFrame, H5File, data.frame, SummarizedExpe…## #附加mcols(): taxonomyid,基因组,描述,## # coordinate_1_based, maintainer, rdatadateadded, prepareclass, tags, ## # rdatapath, sourceurl, sourcetype ## #检索记录,例如,'object[["EH173"]]]' ## ## title ## EH173 |来自Affymetrix MG-U74Av2 platat的预处理微阵列数据…Brain scRNA-seq数据,'HDF5-based 10X Genomics'格式## ... ...## eh7342 | mm285。组织签名## EH7345 |基因组信息。mm10 ## EH7360 | msigdb.v7.5.mm。EZID ## EH7361 | msigdb.v7.5.mm。idf ## EH7362 | msigdb.v7.5.mm.SYM
我们也可以看看ExperimentHub
对象在浏览器中使用显示()
函数。然后我们可以过滤ExperimentHub
对象使用页面右上角的全局搜索字段或列内搜索字段。
D <- display(eh)
ExperimentHub
检索数据回头看看我们的alpineData文件示例,如果我们对第一个文件感兴趣,我们可以使用
apData
## ExperimentHub与4条记录## # snapshotDate(): 2022-04-19 ## $dataprovider: GEUVADIS ## # $species: Homo sapiens ## # $rdataclass: GAlignmentPairs ## #附加mcols(): taxonomyid,基因组,描述,## # coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags, ## # rdatapath, sourceurl, sourcetype ## #检索记录,例如,'object[["EH166"]]]' ## ## title ## EH166 | ERR188297 ## EH167 | ERR188088 ## EH168 | ERR188204 ## EH169 | ERR188317
apData(“EH166”)
# # # # # ExperimentHub 1记录snapshotDate(): 2022-04-19 # # #名称():EH166 # # #包():alpineData # # # $ dataprovider: GEUVADIS # # # $物种:智人# # # $ rdataclass: GAlignmentPairs # # # $ rdatadateadded: 2016-07-21 # # # $标题:ERR188297 # # # $描述:对齐读取的样本子集ERR188297 # # # $ taxonomyid: # # # 9606基因组:GRCh38 # # # $ sourcetype: FASTQ # # # $ sourceurl: ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR188/ERR188297/ERR188297_..。## # $sourcesize: NA ## # $tags: c(“测序”,“RNASeq”,“基因表达”,“转录”)## #检索记录与'对象[["EH166"]]]'
我们可以使用下载文件
apData [[" EH166 "]]
##参见?alpineData和browseVignettes('alpineData')获取文档
##从缓存加载
# # GAlignmentPairs对象与25531双,strandMode = 1和0元数据列:# # seqnames链:范围,范围# # < Rle > < Rle >: < IRanges >, < IRanges > # #[1] 1 +: 108560389 - 108560463 - 108560454 - 108560528 # #[2]: 1 - 108560454 - 108560528 - 108560383 - 108560457 # #[3] 1 +: 108560534 - 108600608 - 108600626 - 108606236 # #[4]: 1 - 108569920 - 108569994 - 108569825 - 108569899 # #[5] 1 -: 108587954——108588028——108588028——108587954 ## ... ... ... ... ... ... ...[25527] X +: 119790596-119790670—119790717-119790791 ## [25528]X +: 119790988-119791062—119791086-119791160 ## [25529]X +: 119791337 -119791111—119791142-119791216 ## [25530]X +: 119791348-119791422—119791475-119791549 ## [25531]X +: 119791376-119791450—119791481-119791555 ## ------- ## seqinfo: 194个来自未指定基因组的序列
每个文件都是从ExperimentHub服务器检索的,文件也被缓存在本地,因此下次需要检索它时,它的下载速度应该快得多。
ExperimentHub
对象当您创建ExperimentHub
对象,它将用一些默认设置为您设置对象。看到ExperimentHub ?
有关自定义集线器源、本地缓存和其他特定于实例的选项的方法和getExperimentHubOption ?
获取或设置跨会话使用的包全局选项。
如果查看该对象,您将看到一些有关它的有用信息,例如数据缓存在哪里以及集线器服务器设置在哪里。
嗯
##实验者与6301记录##快照日期():2022-04-19 ## $数据提供者:Eli和Edythe L. Broad研究所哈佛和麻省理工学院,NCBI,…## # $物种:智人,小家鼠,酿酒酵母,人类肠道…$rdataclass: summarizeexperiment, ExpressionSet, character, matrix, list,…## #附加mcols(): taxonomyid,基因组,描述,## # coordinate_1_based, maintainer, rdatadateadded,准备类,标签,## # rdatapath, sourceurl, sourcetype ## #检索记录,例如,'object[["EH1"]]]' ## ## title ## EH1 | rna -测序和临床数据7706肿瘤样本从…## eh166 | err188297 ## eh167 | err188088 ## eh168 | err188204 ## eh169 | err188317 ## ... ...windtt_2020。windtt_2020。windtt_2020 . mark_presence ## EH7520 |windtt_2020。windtt_2020 . relative_丰度
默认情况下ExperimentHub
对象已设置为最新snapshotData
的版本匹配的快照版本Bioconductor你正在使用的。您还可以使用适当的方法了解这些数据。
snapshotDate(嗯)
##[1]“2022-04-19”
如果对使用快照的旧版本感兴趣,可以使用possibleDates ()
是这样的:
pd <-可能日期(eh) pd
# #[1]“2016-02-23”“2016-06-07”“2016-07-14”“2016-07-21”“2016-08-08”# #[6]“2016-10-01”“2017-06-09”“2017-08-25”“2017-10-06”“2017-10-10”# #[11]“2017-10-12”“2017-10-16”“2017-10-19”“2017-10-26”“2017-10-30”# #[16]“2017-10-29”“2018-01-08”“2018-02-02”“2018-02-09”“2018-02-22”# #[21]“2018-03-16”“2018-03-30”“2018-04-02”“2018-04-10”“2018-04-20”# #[26]“2018-04-25”“2018-04-26”“2018-04-27”“2018-05-02”“2018-05-08”# #[31]“2018-06-29”“2018-07-30”“2018-08-02”“2018-08-03”“2018-08-27”# #[36]“2018-08-29”“2018-09-07”“2018-09-11”“2018-09-19”“2018-09-20”# #[41]“2018-10-30”“2018-11-02”“2018-11-05”“2018-11-13”“2018-12-12”# #[46]“2018-12-13”“2018-12-19”“2018-12-20”“2019-01-02”“2019-01-09”# #[51]“2019-01-15”“2019-01-25”“2019-03-21”“2019-04-01”“2019-04-15”# #[56]“2019-04-23”“2019-04-25”“2019-04-26”“2019-04-29”“2019-05-28”# #[61]“2019-05-29”“2019-06-11”“2019-06-20”“2019-06-28”“2019-07-01”# #[66]“2019-07-02”“2019-07-10”“2019-08-01”“2019-08-02”“2019-08-06”# #[71]“2019-08-07”“2019-08-13”“2019-09-04”“2019-09-09”“2019-09-11”# #[76]“2019-09-25”“2019-10-17”“2019-10-18”“2019-10-22”“2019-12-17”# #[81]“2019-12-27”“2020-01-08”“2020-02-11”“2020-02-12”“2020-03-09”# #[86]“2020-03-12”“2020-04-03”“2020-04-27”“2020-05-11”“2020-05-14”# #[91]“2020-05-19”“2020-05-29”“2020-06-11”“2020-06-26”“2020-07-02”# #[96]“2020-07-10”“2020-07-29”“2020-08-03”“2020-08-04”“2020-08-05”# #[101]“2020-08-17”“2020-08-24”“2020-08-26”“2020-08-31”“2020-09-03”# #[106]“2020-09-04”“2020-09-08”“2020-09-09”“2020-09-10”“2020-09-14”# #[111]“2020-09-23”“2020-09-24”“2020-10-02”“2020-10-30”“2020-11-05”# #[116]“2020-11-06”“2020-11-18”“2020-11-25”“2020-12-02”“2020-12-03”# #[121]“2020-12-07”“2020-12-09”“2020-12-14”“2021-01-04”“2020-10-27”# #[126]“2021-01-12”“2021-01-19”“2021-01-20”“2021-01-27”“2021-01-28”# #[131]“2021-02-08”“2021-02-11”“2021-02-19”“2021-03-02”“2021-03-04”# # [136]“2021-03-10”“2021-03-18”“2021-03-22”“2021-03-23”“2021-03-24”# #[141]“2021-03-30”“2021-04-06”“2021-04-08”“2021-04-27”“2021-05-04”# #[146]“2021-05-05”“2021-05-18”“2021-06-14”“2021-06-16”“2021-06-21”# #[151]“2021-07-15”“2021-07-16”“2021-07-27”“2021-07-30”“2021-08-03”# #[156]“2021-08-09”“2021-04-26”“2021-08-18”“2021-08-26”“2021-08-27”# #[161]“2021-09-13”“2021-09-23”“2021-09-24”“2021-10-05”“2021-10-06”# #[166]“2021-10-15”“2021-10-18”“2021-10-19”“2021-11-24”“2022-01-04”# #[171]“2022-01-20”“2022-02-15”“2022-02-22”“2022-02-28”“2022-03-01”# #[176]“2022-03-16”“2022-03-29”“2022-04-04”“2022-04-06”“2022-04-19”# #[181]“2022-04-19”
像这样设置日期:
snapshotDate(ah) <- pd[1]
请参阅HubPub装饰图案“CreateAHubPackage”。
装饰图案(“CreateAHubPackage”,包=“HubPub”)
请参阅AnnotationHub装饰图案“TroubleshootingTheCache”。
装饰图案(“TroubleshootingTheCache”,包= AnnotationHub)
当希望在系统上的多个用户之间共享集线器时,可能会出现这种情况。这会出现权限错误。要允许对多个用户进行访问,请创建用户所属的组以及底层集线器缓存所属的组。可能是两个文件的权限需要根据您希望个人能够使用集线器完成的任务来更改。只读hub将需要手动操作文件BiocFileCache.sqlite.LOCK,以便组权限为g + rw
.为了允许用户将文件下载到共享中心,需要将BiocFileCache.sqlite. lock文件和BiocFileCache.sqlite. lock文件下载到共享中心。Sqlite文件将需要组权限g + rw
.请谷歌如何为您感兴趣的系统创建用户组。要找到集线器缓存的位置,以便能够更改组和文件权限,可以在R中运行以下命令eh = ExperimentHub();hubCache(嗯)
.为快速参考在linux你将使用乔恩currentuser: newgroup
改变组和修改文件权限
修改文件权限。chmod 660
或chmod g + rw
应该完成正确的权限。
从ExperimentHub版本> 1.17.2开始,默认缓存位置已经改变。默认缓存现在由函数控制工具::R_user_dir
而不是rappdirs: user_cache_dir
.使用了默认的ExperimentHub位置的用户,要继续使用创建的缓存,必须将缓存及其文件移动到新的默认位置,创建一个系统环境变量以指向旧位置,或者删除并启动一个新的缓存。
下面的步骤可以用来移动文件到新的位置:
在R中运行以下命令确定旧位置rappdirs: user_cache_dir(浏览器名称=“ExperimentHub”)
在R中运行以下命令确定新位置工具::R_user_dir(“ExperimentHub”=“缓存”)
将文件移动到新位置。您可以手动或在r中执行以下步骤。记住,如果您有很多缓存文件,这可能需要一段时间。
#确保你对缓存/文件有权限#使用风险自承担moveFiles<-function(package){olddir <- path.expand(rappdirs::user_cache_dir(appname=package)) newdir <- tools::R_user_dir(package, which="cache") dir。create(path=newdir, recursive=TRUE) files <- list。files(olddir, full.names =TRUE)移动<- vapply(files, FUN=函数(fl){filename = basename(fl) newname =文件。路径(newdir, filename)文件。rename(fl, newname)}, FUN。VALUE = logical(1)) if(all(moves)) unlink(olddir, recursive=TRUE)} package="ExperimentHub" moveFiles(package)
用户可以设置系统环境变量EXPERIMENT_HUB_CACHE
来控制缓存的默认位置。设置系统环境变量可能因操作系统而异;我们建议使用谷歌为您的操作系统找到合适的指令。
你需要将变量设置为在R中运行以下命令的结果:
path.expand (rappdirs:: user_cache_dir(浏览器名称=“ExperimentHub”))
注意:RSys.setenv
然而,这只会为R会话设置变量。在未来的R会话中,它将不可用或不可承认。重要的是将变量设置为全局用户范围或系统范围的环境变量,以便它在将来的所有系统登录中保持不变。
最后,如果用户不关心已经存在的默认缓存,那么旧位置可能会被删除,以使用新的默认位置向前移动。使用此选项时应谨慎。一旦删除,旧的缓存资源将不再可用,必须重新下载。
可以通过手动导航到ERROR消息中指示的位置as来完成此操作有问题的缓存:
并删除文件夹及其所有内容。
通过R码可以进行如下删除:
谨慎这将删除旧的缓存和所有下载的资源。在执行此代码后,必须重新下载所有资源。
library(ExperimentHub) oldcache = path.expand(rappdirs::user_cache_dir(appname="ExperimentHub")) setExperimentHubOption("CACHE", oldcache) eh = ExperimentHub(localHub=TRUE) ##删除旧位置和所有资源removeCache(eh, ask=FALSE) ##创建新的默认缓存位置newcache = tools::R_user_dir("ExperimentHub", which=" CACHE") setExperimentHubOption("CACHE", newcache) eh = ExperimentHub()
sessionInfo ()
## R版本4.2.0 RC (2022-04-19 r82224) ##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.4 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.15-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.15-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_GB LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:# # # # [1] alpineData_1.21.0 GenomicAlignments_1.32.0 [3] Rsamtools_2.12.0 Biostrings_2.64.0 # # [5] XVector_0.36.0 SummarizedExperiment_1.26.0 # # [7] Biobase_2.56.0 MatrixGenerics_1.8.0 # # [9] matrixStats_0.62.0 GenomicRanges_1.48.0 # # [11] GenomeInfoDb_1.32.0 IRanges_2.30.0 # # [13] S4Vectors_0.34.0 ExperimentHub_2.4.0 # # [15] AnnotationHub_3.4.0 BiocFileCache_2.4.0 # # [17] dbplyr_2.1.1 BiocGenerics_0.42.0 # # [19] BiocStyle_2.24.0 # # # #通过加载一个名称空间(而不是附加):# # # # [1] httr_1.4.2 sass_0.4.1 [3] bit64_4.0.5 jsonlite_1.8.0 # # [5] bslib_0.3.1 shiny_1.7.1 # # [7] assertthat_0.2.1 interactiveDisplayBase_1.34.0 # # [9] BiocManager_1.30.17 blob_1.2.3 # # [11] GenomeInfoDbData_1.2.8 yaml_2.3.5 # # [13] BiocVersion_3.15.2 pillar_1.7.0 # # [15] RSQLite_2.2.12 lattice_0.20-45 # # [17] glue_1.6.2 digest_0.6.29 # # [19] promises_1.2.0.1 htmltools_0.5.2 # # [21] httpuv_1.6.5 Matrix_1.4-1 # # [23] pkgconfig_2.0.3 bookdown_0.26 # # [25] zlibbioc_1.42.0 purrr_0.3.4 # # [27]# [39] mime_0.12 memoise_2.0.1 ## [41] evaluate_0.15 fansi_1.0.3 ## [43] tools_4.2.0 lifecycle_1.0.1 ## [45] string_1 .4.0 DelayedArray_0.22.0 ## [49] jquerylib_0.1.4 rlang_1.0.2 ## [49] grid_4.2.0 RCurl_1.98-1.6 ## [53] rappdirs_0.3.3 bitops_1.0-7## [55] rmarkdown_2.14 DBI_1.1.2 ## [57] curl_4.3.2 R6_2.5.1 ## [59] knitr_1.38 dplyr_1.0.8 ## [61] fastmap_1.1.0 bit_4.0.4 ## [63] utf8_1.2.2 filelock_1.0.2 ## [65] stringi_1.7.6 parallel_4.2.0 ## [67] Rcpp_1.0.8.3 vctrs_0.4.1 ## [69] png_0.1-7 tidyselect_1.1.2 ## [71] xfun_0.30