内容

1概述

ExperimentHubData提供在Biocomadon的中添加或修改资源的工具实验室。这个“中心”收集了来自课程、出版物或实验的数据。资源通常不是原始数据的文件(在AnnotationHub)但代替R./生物体诸如经调格,摘要,数据等的对象等。每个资源都有相关的元数据,可以通过实验室客户端界面。

2新资源

资源是贡献实验室以包裹的形式。该包包含资源元数据、手册页、小插图和任何支持R.作者想要提供的功能。这是现有的类似设计生物体除数据外的其他实验数据包都存储在AWS S3桶中或可公开访问的站点中,而不是包的数据/目录。

以下是添加新资源所需的步骤。

2.1通知生物体队员

数据实验包中的手册页和Vignette示例将无法工作,直到数据提供实验室。将数据添加到AWS S3和生产数据库的元数据涉及来自a的帮助生物体队员。必须在数据正式添加到集线器之前创建元数据.CSV文件(请参阅下面的Inst / ExtData部分)。请阅读“数据文件存储”部分。

2.2搭建数据实验包

从下载资源时实验室在工作空间中加载相关的数据实验包,使手册页和小插图易于使用。因为文档在理解这些策划的资源方面起着重要的作用,所以请花点时间开发清楚的手册页和详细的小插图。这些文件为用户提供了基本的背景,并指导资源的适当使用。

以下是包组织的概要。除非另有说明,否则需要列出的文件。

2.2.1本月/ extdata /

  • Metadata.csv.:该文件包含元数据,格式为每一行要添加到实验室数据库。该文件应该从inst/scripts/make-metadata中的代码生成。R,其中最终数据用write.csv(…row.names = FALSE)。中指定所需的列名和数据类型实验室:: MakeExperimenthubmetadata.看 ?实验室:: MakeExperimenthubmetadata.获取详细信息。

    可以找到示例数据实验包元数据.CSV文件在这里

2.2.2inst / scripts /

  • make-data.r.:一个描述制作数据对象所涉及的步骤的脚本。这包括从预处理下载原始数据以及最终R对象的原始数据。包括对外部执行的任何步骤的描述R.与第三方软件。鼓励序列化数据对象save ()使用.rda在文件名上扩展,但不严格必要。如果数据以另一种格式提供,则可能需要实现适当的加载方法。请在达到“上传数据到S3”时建议。

  • make-metadata.r.:生成位于包的inst/extdata中的metadata.csv文件的脚本。看 ?实验室:: MakeExperimenthubmetadata.获取预期字段和数据类型的描述。实验Hubdata :: MakeExperimentHubmetAta()可以用于在提交包之前验证metadata.csv文件。

2.2.3鸽子/

  • 一个或多个描述分析工作流程的小插曲。

2.2.4r /

  • zzz.r.:可选的。您可以包含。负载()在zzz.r文件中将每个资源名称(i.,title)导出到函数中。这允许按名称加载数据,例如,Resouce123()

    .oonload < - 函数(libname,pkgname){fl < -  system.file(“extdata”,“metadata.csv”,package = pkgname)标题< -  read.csv(fl,stringsasfactors = false)$ title createhubaccessors(pkgname,标题)}

    实验室:: Createhubaccessors()实验室:::。hubaccessorfactory()提供内部细节。资源命名函数有一个“元数据”参数。当metadata=TRUE时,元数据被加载(相当于一个ExperimentHub对象上的单括号方法),当FALSE时,完整的资源被加载(相当于双括号方法)。

  • R / *。R.:可选的。增强数据探索的功能。

2.2.5男子/

  • 包手册页:包装页面用作着陆点,并应简要描述与包相关联的所有资源。应在包手册页或单个男人页面上有一个条目。

  • 资源手册页:可以在同一页上记录资源,按常见类型分组,或者有它们自己的手册页。

  • 数据可以通过标准的ExperimentHub接口通过单括号和双括号方法访问,例如:

    myfiles[[1]] ##加载列表中的第一个资源myfiles[["EH123"]] ##加载eh id
  • 如果一个。负载()函数用于将每个资源导出为一个函数,还记录了加载的方法,例如,

    显示resourceA(metadata = TRUE) ## metadata

2.2.6描述/命名空间

  • 包装应该依靠和完全导入实验。如果使用建议。负载()函数,导入DESCRIPTION文件中的utils包,并有选择地在NAMESPACE中导入importFrom(utils, read.csv)。

  • 鼓励包裹作者使用实验室:: listresources()实验室:: loadResource()在他们的男人页和小插图中的函数。这些帮助者旨在促进在所有实验室内的特定包装VS中的数据发现。

  • biocViews应该包含来自ExperimentData并应该包含这个术语实验室

2.3数据对象

数据并不是软件包的正式组成部分,而是单独存储在一个可公开访问的托管网站中,或者由Bioconductor存储在AWS S3存储桶中。作者应该阅读下面关于“数据文件的存储”的章节。

2.4元数据

当您对make-metadata中的资源表示感到满意时。R(生成metadata.csv)生物体团队成员将使元数据添加到生产数据库。通过在包上运行实验HubData ::: makeExperimentHubmetAta(),确认Inst / Exdata / Metadata.csv中的数据有效。请解决和警告或错误。

2.5包裹评论

一旦数据在AWS S3或公共站点中,并且元数据已经添加到生产数据库中,手册页和小插图就可以定稿了。当包通过R CMD构建和检查时,可以将其提交给包追踪进行审核。该包应提交没有任何数据,现在位于远程;这保持了包的重量轻和最小的大小,同时仍然提供访问关键的大数据文件,现在存储在远程删除大数据文件和干净的git树删除大文件并减少包大小。

许多次这些数据包被创建为对软件包的注释。有一个提交的过程在同一问题下的mulitple套餐

3.添加其他资源

新版本数据的元数据可以在可用时添加到相同的包中。

联系与任何问题。

4.Bug修复

错误修复可能涉及更改元数据,数据资源或两者。

4.1更新资源

  • 替换资源必须与原始资源具有相同的名称,并且位于相同的位置(路径)

  • 通知您希望替换数据并使文件可用:请参阅“上传数据到S3”部分。

4.2更新元数据

可以为新资源添加新的元数据记录,但不鼓励修改现有记录。记录修改只会在错误修复的情况下完成。

  • 通知您要更改元数据

  • 使用修改的信息更新Make-Metadata.r并在必要时重新生成元数据.CSV文件

  • 修改包版本并提交到git

5.删除资源

移除资源应谨慎进行。其目的是通过提供数据的稳定快照,使ExperimentHub成为一个“可复制的”资源。Bioconductor版本x.y.z提供的数据应该适用于所有大于x.y.z的版本。不幸的是,这并不总是可能的。如果您发现有必要从实验网站删除数据,请联系寻求帮助。

当从实验室删除资源时,修改了元数据中的“状态”字段以解释为什么它们不再可用。改变此状态后实验室()构造函数不会在可用id中列出资源。尝试使用'[['和EH id提取资源将返回一个错误和状态消息。这个函数GetInfoonids.将显示包含仍在数据库中的资源的任何资源的元数据信息,但不再可用。

6.数据档案的储存

数据不应包含在包中。这使包装重量轻,快速安装用户。这允许用户在不下载大数据文件的情况下调查函数和文档,并且仅在必要时进行下载。有两个选项用于存储数据:Biocumon AWS S3桶或在可公开可访问的站点上托管其他地方的数据。请参阅下面的信息,然后选择最适合您情况的选项。

6.1在公开可访问的网站上托管数据

数据可以通过集线器从任何可公开访问的站点访问。创建的metadata.csv文件[s]将需要该列Location_Prefix指示托管站点。参见下面对元数据列/字段的描述,但如果数据文件的链接是ftp://mylocalserver/singlecellexperiments/dataset1.rds.的详细说明Location_PrefixRDataPath在Metadata.csv文件中为此条目将是ftp:// mylocalserver /Location_Prefixsinglecellexperiments / dataset1.rds.RDataPath

6.2将数据上传到S3

与通过dropbox、ftp等方式提供数据文件不同,我们将授予对S3桶的临时访问权限,在那里你可以上传你的数据。请电子邮件访问。

您将获得访问“Annotation Contributor”用户。确保这一点AWS CLI安装在您的机器上。请参阅安装说明AWS CLI在这里。一旦您请求访问,您将通过电子邮件发送一组密钥。有两个选项可为注释复印机设置配置文件

  1. 更新你的.aws /配置文件包含以下相应的更新密钥:
[profile AnnotationContributor] output = text region = us-east-1 aws_access_key_id = **** aws_secret_access_key = ****
  1. 如果你找不到.aws /配置文件,运行以下命令从上面输入适当的信息
aws配置——配置文件AnnotationContributor

配置设置完成后,您应该能够使用

#要上传完整目录使用递归:AWS --Profile Annotation Contributor S3 CP Test_Dir S3://注释 - 贡献者/ test_dir  -  recursive --acl公共read#以上载一个文件aws --profile annotation contributor s3 cp test_file。txt s3://annotation-contributor/test_file.txt --acl公共阅读

请使用相应的目录结构上传数据,包括必要子目录(即顶部目录必须是软件包名称,如果适用,则为版本的子目录,......)。另外不要忘记使用国旗- 公开阅读;这允许读访问数据文件。

一旦上传完成,电子邮件继续这个过程。要正式添加数据,需要上传数据,需要在github存储库中创建metadata.csv文件。

7.证实

验证记录元数据的最佳方法是读取INST / EXTDATA / METADATA.CSV实验Hubdata :: MakeExperimentHubmetAta()。如果这是成功的,元数据已准备就绪。

8.示例元数据.CSV文件和更多信息

如上所述,在数据可以添加到数据库之前,需要创建元数据.CSV文件(或多个元数据.CSV文件)。要确保正确的格式化应该运行AnnotationHubData :: makeannotationhubmetadata.在包含任何/所有元数据文件的包上,并解决任何发生的任何错误。上传到S3的每个对象都应该在元数据文件中有一个条目。简而言之,所需的元数据列的描述:

Metadata.csv文件中的任何附加列都将被忽略,但可以包含用于内部引用。

更多关于Location_Prefix和RDataPath的信息。这两个字段构成了下载数据文件的完整文件路径url。如果使用Bioconductor AWS S3桶,Location_Prefix不应该包含在元数据文件中[s],因为该字段将自动填充。RDataPath将是您上传到S3的目录结构。如果你上传了一个目录MyAnnotation /,该目录有一个子目录v1 /包含两个文件counts.rds.coldata.rds.,您的元数据文件将包含两行,rdatapaths将是MyAnnotation / v1 / counts.rdsMyAnnotation / v1 / coldata.rds。如果您在公开访问的网站上托管数据,则必须包含基本URLLocation_Prefix。如果你的数据文件在ftp://myinstiuteUteererver/biostats/project2/counts.rds.,您的元数据文件将有一行和Location_Prefix将会ftp://myinstiututeserver/RDataPath将会生物抑制剂/ project2 / counts.rds

这是一个虚设的榜样,但希望它会给你一个格式的想法。假设我有一个包myexperimentpackage,我上传了两个文件一个表达数据的一个摘要,它保存为.rda,另一个被认为是模拟数据的sqlite数据库。您希望下面保存为CSV(逗号分隔输出),但更容易查看我们在表中显示:

标题 描述 BiocVersion 基因组 sourcetype. SourceUrl 源头 物种 TaxonomyId Coordinate_1_based DataProvider 维护者 rdataclass. DispatchClass RDataPath
模拟表达数据 12个样本和12000个问题的模拟表达式值 3.9 NA. 模拟 http:// mylabshomepage v1. NA. NA. NA. //www.andersvercelli.com/packages/myExperimentPackage Bioconductor维护者 SummarizedExperiment RDA. myexperimentpackage / seobject.rda.
模拟数据库 包含基因映射的模拟数据库 3.9 HG19. 模拟 //www.andersvercelli.com/packages/myExperimentPackage v2. 家斯帕森 9606 NA. //www.andersvercelli.com/packages/myExperimentPackage Bioconductor维护者 SqliteConnection. sqlitefile. myExperimentPackage / mydatabase.sqlite