内容

1概述

ExperimentHubData提供工具来添加或修改Bioconductor的资源ExperimentHub.这个“中心”收藏了来自课程、出版物或实验的数据。资源通常不是原始数据的文件(在AnnotationHub)而不是R/Bioconductor对象,如GRanges, summarizeexperiment, data.frame等。方法搜索每个资源都有关联的元数据ExperimentHub客户端接口。

2新资源

资源被贡献给ExperimentHub以包的形式。该包包含资源元数据、手册页、小插图和任何支持R作者想提供的功能。这是一个类似于现有的设计Bioconductor实验数据包(除数据存储在AWS S3桶或可公开访问的站点外),不存储在包的数据/目录中。

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

2.1通知Bioconductor团队成员

中提供的数据之前,数据实验包中的手册页和小插图示例将无法工作ExperimentHub.将数据添加到AWS S3,并将元数据添加到生产数据库,需要一个Bioconductor团队成员。必须先创建metadata.csv文件,然后才能将数据正式添加到集线器(请参阅下面的inst/extdata部分)。请阅读“数据文件的存储”一节。

2.2构建数据实验包

当从某个资源下载时ExperimentHub相关的数据实验包被加载到工作区中,使手册页和小插图易于使用。由于文档在理解这些精心策划的资源方面发挥着重要作用,请花时间开发清晰的手册页和详细的小插图。这些文件为用户提供了必要的背景知识,并指导适当地使用资源。

下面是包装组织的概要。除非另有说明,列出的文件是必需的。

2.2.1本月/ extdata /

  • metadata.csv:该文件包含元数据,格式为每一行待添加资源的元数据ExperimentHub数据库。该文件应该由inst/scripts/make-metadata中的代码生成。R,最后的数据是用write.csv(…row.names = FALSE).中指定所需的列名和数据类型ExperimentHubData: makeExperimentHubMetadata看到了吗?ExperimentHubData: makeExperimentHubMetadata获取详细信息。

    可以找到一个示例数据实验包metadata.csv文件在这里

2.2.2本月/脚本/

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

  • make-metadata。R:一个脚本,使metadata.csv文件位于包的inst/extdata。看到了吗?ExperimentHubData: makeExperimentHubMetadata获取预期字段和数据类型的描述。ExperimentHubData: makeExperimentHubMetadata ()可用于在提交包之前验证metadata.csv文件。

2.2.3小插曲/

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

2.2.4R /

  • 打鼾声。R:可选的。您可以包括.onLoad ()在zzz中发挥作用。Rfile that exports each resource name (i.e., title) into a function. This allows the data to be loaded by name, e.g.,resouce123 ()

    . onload <- function(libname, pkgname) {fl <-系统。file("extdata", "metadata.csv", package=pkgname) Title <- read.csv(fl, stringsAsFactors=FALSE)$Title createHubAccessors(pkgname, titles)}

    ExperimentHub: createHubAccessors ()而且ExperimentHub::: .hubAccessorFactory ()提供内部细节。以资源命名的函数只有一个“元数据”参数。当metadata=TRUE时,元数据被加载(相当于ExperimentHub对象上的单括号方法),当FALSE时,整个资源被加载(相当于双括号方法)。

  • R / *。R:可选的。增强数据探索的函数。

2.2.5人/

  • 包手册页:包手册页作为一个着陆点,应该简要描述与包相关的所有资源。在包手册页或单独的手册页上,每个资源标题都应该有一个条目。

  • 资源手册页:资源可以被记录在同一页上,按公共类型分组,或者有自己的专用手册页。

  • 记录如何加载数据:数据可以通过标准的ExperimentHub接口访问,使用单括号和双括号方法,例如:

    library(ExperimentHub) eh <- ExperimentHub() myfiles <- query(eh, "PACKAGENAME") myfiles[[1]] ##加载列表中的第一个资源myfiles[["EH123"]] ##加载eh id
  • 如果一个.onLoad ()函数用于将每个资源导出为函数,并记录加载方法,例如,

    resourceA(metadata = FALSE) ##数据加载resourceA(metadata = TRUE) ##元数据显示

2.2.6款描述/名称空间

  • 该包应该依赖于并完全导入ExperimentHub。如果使用建议的.onLoad ()函数,在DESCRIPTION文件中导入utils包,并有选择地在NAMESPACE中importFrom(utils, read.csv)。

  • 方法鼓励包作者使用ExperimentHub: listResources ()而且ExperimentHub: loadResource ()功能在他们的手册页和小插图。这些帮助程序的设计是为了方便在特定的包中而不是在所有的ExperimentHub中发现数据。

  • biocViews应该包含来自的术语ExperimentData也应该包含这个词ExperimentHub

2.3数据对象

数据不是软件包的正式组成部分,它们分别存储在一个公共可访问的托管站点中,或者由Bioconductor存储在AWS S3存储桶中。作者应阅读以下“数据文件的存储”一节。

2.4元数据

当您对make-metadata中资源的表示感到满意时。R(生成metadata.csv)Bioconductor团队成员将向生产数据库添加元数据。通过在包上运行ExperimentHubData:::makeExperimentHubMetadata()来确认inst/exdata/metadata.csv中的数据是有效的。请说明和警告或错误。

2.5方案评审

一旦数据在AWS S3或公共站点中,并将元数据添加到生产数据库中,就可以完成手册页和小插图。当包通过R CMD构建并检查时,就可以提交到包追踪进行审核。该包应该在没有任何现在远程定位的数据的情况下提交;这保持包轻重量和最小的尺寸,同时仍然提供访问关键的大数据文件现在存储远程如果数据文件被添加到github存储库,请参阅删除大数据文件和清洁git树删除大文件,减少包的大小。

很多时候,这些数据包是作为软件包的补充而创建的。提交有一个流程同一问题下多包

3.添加额外资源

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

联系有什么问题吗?

4错误修复

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

4.1更新资源

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

  • 通知您想要替换数据并使文件可用:参见“上传数据到S3”部分。

4.2更新元数据

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

  • 通知你想要改变元数据

  • 更新make-metadata。Rwith modified information and regenerate the metadata.csv file if necessary

  • 碰撞包版本并提交到git

5删除资源

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

当一个资源从ExperimentHub中删除时,元数据中的“status”字段将被修改,以解释它们不再可用的原因。一旦这个状态被改变ExperimentHub ()构造函数将不在可用id中列出资源。尝试使用'[[]'和EH id提取资源将返回一个错误和状态消息。这个函数getInfoOnIds将显示任何资源的元数据信息,包括仍在数据库中但不再可用的资源。

6数据文件的储存

数据不应该包含在包中。这使得包的重量轻,用户可以快速安装。这允许用户在不下载大型数据文件的情况下研究函数和文档,只在必要时进行下载。存储数据有两种选择:Bioconductor AWS S3存储桶或将数据托管在公共可访问的站点上。请参阅下面的信息,并选择最适合您的情况的选项。

6.1在公共可访问的站点上托管数据

数据可以通过集线器从任何可公开访问的站点访问。创建的metadata.csv文件[s]需要列Location_Prefix来指示托管的站点。在下面元数据列/字段的描述中可以看到更多信息,但是如果数据文件的链接是ftp://mylocalserver/singlecellExperiments/dataSet1.Rds的示例分解Location_Prefix而且RDataPath对于metadata.csv文件中的这一项,将为ftp://mylocalserver/Location_Prefix而且singlecellExperiments / dataSet1。RdsRDataPath

6.2上传数据到S3

而不是通过dropbox, ftp等提供数据文件,我们将授予临时访问S3桶,你可以上传你的数据。请电子邮件为访问。

您将被授予对“AnnotationContributor”用户的访问权。确保AWS CLI安装在您的机器上。参见安装说明AWS CLI在这里.一旦您申请访问,您将通过电子邮件收到一组密钥。有两个选项可以为AnnotationContributor设置概要文件

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

配置完成后,您应该能够使用上传资源

#上传完整目录使用递归:aws——profile AnnotationContributor s3 cp test_dir s3://annotation-contributor/test_dir——递归——acl public-read #上传单个文件aws——profile AnnotationContributor s3 cp test_file.txt s3://annotation-contributor/test_file.txt——acl public-read

请以适当的目录结构上传数据,必要时包括子目录(即顶部目录必须是软件包名称,然后如果适用,版本子目录,…)请不要忘记使用国旗——acl公有可读;这允许对数据文件进行读访问。

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

7验证

验证记录元数据的最佳方法是读取inst/extdata/metadata.csvExperimentHubData: makeExperimentHubMetadata ().如果这是成功的,元数据就准备好了。

8示例metadata.csv文件和更多信息

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

csv文件中的任何其他列都将被忽略,但可以包括在内以供内部引用。

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

这是一个虚拟的例子,但希望它能给你一个格式的概念。假设我有一个myExperimentPackage包,我上传了两个文件,一个是保存为.rda的表达式数据summarizeexperiments,另一个是sqlite数据库,都考虑模拟数据。你可能希望以下内容保存为csv(逗号分隔输出),但为了更容易查看,我们在表格中显示:

标题 描述 BiocVersion 基因组 SourceType SourceUrl SourceVersion 物种 TaxonomyId Coordinate_1_based DataProvider 维护人员 RDataClass DispatchClass RDataPath
模拟表达式数据 12个样本和12000个问题的模拟表达式值 3.9 NA 模拟 http://mylabshomepage v1 NA NA NA //www.anjoumacpherson.com/packages/myExperimentPackage Bioconductor维护者 SummarizedExperiment Rda myExperimentPackage / SEobject.rda
模拟数据库 包含基因映射的模拟数据库 3.9 hg19 模拟 //www.anjoumacpherson.com/packages/myExperimentPackage v2 家智人 9606 NA //www.anjoumacpherson.com/packages/myExperimentPackage Bioconductor维护者 SQLiteConnection SQLiteFile myExperimentPackage / mydatabase.sqlite