内容

1概述

AnnotationHubData包提供工具来获取,注释,转换和存储数据用于Bioconductor的AnnotationHub.来自Encode项目的BED文件、来自Ensembl的gtf文件或来自UCSC的注释轨道,都是可以下载、用元数据描述并转换为标准的数据的示例Bioconductor数据类型,并进行存储,以便可以方便地通过AnnotationHub客户端按需提供给用户。虽然数据通常被操作成更适合r的形式,但数据本身保留其原始内容,并且不像在数据库中那样进行过滤或管理ExperimentHub.方法搜索每个资源都有关联的元数据AnnotationHub客户端接口。

2设置一个包来使用AnnotationHub

2.1新的AnnotationHub包

多个,相关的资源被添加到AnnotationHub通过创建一个类似于现有注释包的软件包。包本身不包含数据,而是作为脚本的轻量级包装器,这些脚本为添加的资源生成元数据AnnotationHub

这个包至少应该包含一个描述资源的手册页。插图和其他R操作对象的代码是可选的。

创建包包括以下步骤:

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

  2. 构建软件包:下面是软件包组织的概要。除非另有说明,列出的文件是必需的。

  • 本月/ extdata /

    • metadata.csv:该文件包含每个资源一行的元数据AnnotationHub数据库。该文件应该由inst/scripts/make-metadata中的代码生成。Rwhere the final data are written out with write.csv(…, row.names=FALSE). The required column names and data types are specified inAnnotationHubData: makeAnnotationHubMetadata.看到了吗?AnnotationHubData: makeAnnotationHubMetadata获取详细信息。确保上述函数运行时没有ERROR。

    如果需要,元数据可以分解成多个csv文件,而不是将所有记录放在一个“metadata.csv”中。

  • 本月/脚本/

    • 使数据。R: A script describing the steps involved in making the data object(s). This includes where the original data were downloaded from, pre-processing, and how the final R object was made. Include a description of any steps performed outside ofR使用第三方软件。脚本的输出应该是磁盘上准备推送到S3的文件。如果数据将托管在个人网站而不是S3上,则该文件应解释在托管在网站上之前对数据的任何操作。对于托管在公共网站上没有事先操作的数据,不需要此文件。

    • make-metadata。R: A script to make the metadata.csv file located in inst/extdata of the package. See ?AnnotationHubData: makeAnnotationHubMetadata对于metadata.csv文件的描述,需要指定预期字段和数据类型。的AnnotationHubData: makeAnnotationHubMetadata ()函数可用于在提交包之前验证metadata.csv文件。

  • 小插曲/

    描述分析工作流程的可选小插图。

  • R /

    可选功能,增强数据探索。

  • 人/

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

    • 资源手册页:可选。手册页应该描述资源(原始数据源、处理、QC步骤),并演示如何通过AnnotationHub接口。例如,将下面的“SEARCHTERM*”替换为一个或多个惟一标识包中的资源的搜索词。

    library(AnnotationHub) hub <- AnnotationHub() myfiles <- query(hub, "SEARCHTERM1", "SEARCHTERM2") myfiles[[1]] ##加载列表中的第一个资源
  • 用于生成元数据的脚本可能会使用AnnotationHub或AnnotationHubData中的函数,这些函数应该在依赖/导入中列出。biocViews应该包含来自的术语AnnotationData也应该包含这个词AnnotationHub

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

  2. 确认有效的元数据:通过在包上运行AnnotationHubData:::makeAnnotationHubMetadata()来确认inst/exdata/metadata.csv中的数据是有效的。请说明和警告或错误。

  3. 包审查:将包提交给跟踪器进行审核。包检查的主要目的是验证csv文件中的元数据。如果包在R CMD构建和检查中失败,因为数据和元数据还没有到位,也没关系。一旦metadata.csv被批准,记录就会被添加到生产数据库中。在这一点上,包手册页和小插图可以完成,包应该通过R CMD构建和检查。

2.2现有AnnotationHub包的附加资源

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

  • 新版本的标题应该是唯一的,并且不与AnnotationHub中当前任何资源的标题匹配。好的做法是在标题中包含版本和/或基因组构建。如果标题不是唯一的,则AnnotationHub对象将列出具有相同标题的多个文件。用户将需要使用' rdatadateadded '来确定哪个是最新的。

  • 使数据可用:可以在公共站点上访问,也可以参阅“将数据上载到S3”部分。

  • 更新make-metadata。Rwith the new metadata information

  • 生成一个新的metadata.csv文件。这个包应该包含AnnotationHub中所有版本数据的元数据,因此旧文件应该保留。在添加新版本时,以版本命名编写一个新的csv文件可能会有所帮助,例如metadata_v84.csv, metadata_85.csv等。

  • Bump包版本并提交到git

  • 通知更新已经准备好,团队成员将向生产数据库添加新的元数据;在将元数据添加到数据库之前,AnnotationHub中将不可见新资源。

联系有什么问题吗?

2.3转换非AnnotationHub注释包

包的概念和目录结构将保持不变。所涉及的主要步骤是

  1. 重新构造inst/extdata和inst/scripts,以包含metadata.csv和make-data。R,如上一节所述,用于创建新包。运行命令确保metadata.csv文件的格式正确AnnotationHubData: makeAnnotationHubMetadata ()在你的包裹上。

  2. 将biocViews术语“AnnotationHub”添加到DESCRIPTION中

  3. 将数据上传到S3或放置在公共可访问的站点上,并从包中删除数据。请参阅下面“数据文件的存储”一节。

  4. 一旦数据正式添加到集线器中,更新任何代码以利用AnnotationHub检索数据。

3.错误修复

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

3.1更新资源

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

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

3.2更新元数据

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

  • 通知你想要改变元数据

  • 更新make-metadata。R而且regenerate the metadata.csv file

  • 碰撞包版本并提交到git

4删除资源

当从某个资源中删除时AnnotationHub会发生两件事:' rdatadateremoved '字段填充一个日期,' status '字段填充一个资源不再可用的原因。一旦进行了这些更改,则AnnotationHub ()构造函数将不在可用id中列出资源。尝试使用'[[]'和AH id提取资源将返回一个错误和状态消息。这个函数getInfoOnIds将显示任何资源的元数据信息,包括仍在数据库中但不再可用的资源。

一般来说,资源只有在它们不再可用时才会被移除(例如,从web位置移动,不再提供等)。

删除一个资源AnnotationHub联系

5版本控制

资源的版本控制由维护者处理。如果您计划对同一个生物/基因组构建的文件提供增量更新,我们建议在资源标题中包含一个版本,以便于区分哪个是最新的。我们还建议在将数据上传到S3或您的公共可访问站点时,使用目录结构来控制版本。

如果不包含版本,或使标题以某种方式惟一,则具有相同标题的多个文件将在AnnotationHub对象。用户可以使用' rdatadateadded '元数据字段来确定哪个文件是最新的。

6可见性

当用户调用AnnotationHub()时,几个元数据字段控制哪些资源是可见的。记录过滤基于以下条件:

一旦一个记录被添加到AnnotationHub,它从那一刻起就可见了,直到被标记为“rdatadateremoved”。例如,在2017年5月1日以' biocVersion ' 3.6添加的记录将在所有快照>= 2017年5月1日和所有Bioconductor版本>= 3.6中可见。

OrgDb使用了一个特殊的过滤器。每个发布/开发周期只有一个OrgDb可用。因此,添加到开发周期的贡献的OrgDb将被掩盖,直到下一个版本。有一些选项用于调试这些被屏蔽的资源。看到setAnnotationHubOption ?

7数据文件的储存

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

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

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

7.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/teset_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文件。

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

这是一个糟糕的例子,因为这些注释已经在集线器中,但它应该让您了解格式。假设我有一个包myAnnotations,我上传了两个关于dog和cow的注释文件,其中包含从ensembl提取到S3的信息。你可能希望以下内容保存为csv(逗号分隔输出),但为了更容易查看,我们在表格中显示:

标题 描述 BiocVersion 基因组 SourceType SourceUrl SourceVersion 物种 TaxonomyId Coordinate_1_based DataProvider 维护人员 RDataClass DispatchClass RDataPath
狗注释 犬狼疮的基因注释 3.9 犬属红斑狼疮 GTF ftp://ftp.ensembl.org/pub/release-95/gtf/canis_lupus_dingo/Canis_lupus_dingo.ASM325472v1.95.gtf.gz 释放- 95 犬属红斑狼疮 9612 真正的 运用 Bioconductor维护者 字符 FilePath myAnnotations / canis_lupus_dingo.ASM325472v1.95.gtf.gz
牛注释 牛系的基因注释 3.9 GTF ftp://ftp.ensembl.org/pub/release-74/gtf/bos_taurus/Bos_taurus.UMD3.1.74.gtf.gz 释放- 74 9913 真正的 运用 Bioconductor维护者 字符 FilePath myAnnotations / Bos_taurus.UMD3.1.74.gtf.gz