包版:biocannotres2015 1.0.0

内容

0.1过程概述

如果您正在阅读这篇文章,(希望如此)是因为您打算编写一些代码,允许将在线资源处理为R对象,这些对象将通过AnnotationHub包提供。为了做到这一点,你必须完成以下四个基本步骤。这些步骤将使您编写两个函数,然后调用第三个函数为您做一些自动设置。第一个函数将包含关于如何处理在线存储到元数据中的数据的说明,以便为AnnotationHub描述新的R资源。第二个函数是用来描述如何获取这些在线资源并将它们转换成对终端用户有用的R对象。

0.2设置

它应该不言而喻,这个Vignette适用于对R的用户感到舒适的用户。为了遵循此Vignette中的本文,您需要安装AnnotationHubData包。
这个包不仅仅是大多数人使用,实际上它并不是真正的意图是除了支持包之外的任何东西。所以它没有通过Bioclite()暴露。因此,要获得它,您需要使用SVN从以下位置查看:

https://hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/AnnotationHubData

检查后检查后,您需要使用R CMD安装来安装来自源的包。

0.3介绍AnnotationHubmetAdata对象

AnnotationHubData包是互补的包装包,提供了一个互补包,提供了一个地方,我们可以将处理在线资源的代码存储到适合通过AnnotationHub包的R对象中的代码。但是,在您了解此包的要求之前,重要的是您第1次了解在场景后面的集线器和其基于Web的存储库之间使用的对象。这意味着您需要了解AnnotationHubmetAdata对象。这些对象存储描述在线资源的元数据。如果要查看添加到存储库并维护的一组在线资源,那么就必须熟悉AnnotationHubmetAdata构造函数。对于要进入AnnotationHub的每个在线资源,您必须能够构建一个详细描述它的AnnotationHubmetAdata对象,指定配方功能的生命。

所涉及的步骤包括编写一个向AnnotationHub添加文件的配方,可以简要总结为:

0.4第1步:编写AnnotationHubmetAta生成功能

下面的示例函数从最新版本的inparanoid中获取文件,并使用Map将它们处理为AnnotationHubMetadata对象。

需要提供的第一个函数是将一些在线资源处理为AnnotationHubMetadata对象的函数。这个函数必须返回一个AnnotationHubMetadata对象列表。它可以依赖于您定义的其他帮助器函数,但最终它(及其帮助器)需要包含查找资源和将这些资源处理为AnnotationHubMetadata对象所需的所有指令。Map函数的调用实际上是该函数的重要部分,因为它显示了创建一系列AnnotationHubMetadata对象的函数。在此之前,该函数只是调用其他helper函数来处理元数据,以便可以使用Map将其传递给AnnotationHubMetadata构造函数。注意,这个函数指定的字段之一是Recipe,它指示了Recipe函数的名称和位置。我们希望大多数人在提交元数据处理功能时,都希望将他们的配方提交到同一个包中。

makeinparamid8toahms <- function(currentMetadata){baseUrl <- 'http://inparanoid.sbc.su。se/download/current/Orthologs_other_formats' ##在helper函数中制作元数据列表meta <- . incommonidmetadatafromurl (baseUrl) ##然后制作AnnotationHubMetadata对象。地图(AnnotationHubMetadata、描述=元美元描述,基因组=元基因组美元,源文件=元美元的源文件,SourceUrl =元SourceUrl美元,SourceVersion =元SourceVersion美元,物种=元美元物种,TaxonomyId =元TaxonomyId美元,Title =元美元标题,RDataPath =元RDataPath美元,MoreArgs =列表(Coordinate_1_based = TRUE, DataProvider = baseUrl,Maintainer = "Marc Carlson ", RDataClass = "SQLiteFile", RDataDateAdded = Sys.time(), RDataVersion = "0.0.1", Recipe = "AnnotationHubData::: Inparanoid 8todbsrecipe ", Tags = c("Inparanoid", "Gene", "Homology", "Annotation"))}))}

在我们继续前进之前,这是AnntotationHubmetaData对象可以采取的不同参数的列表,以及每个人都有哪些类:

注释hubroot:'字符(1)'目录结构的绝对路径包含要添加到AnnotationHub的资源SourceURL:'Character()'URL,其中可以找到资源的sourcetype:'character()'表示什么样的资源最初处理过。偏好是命名资源类型,如果它是单个文件类型,并且在其中来自资源是复合资源的名称。所以典型的答案就是:'床','fasta'或'inparanoid'等。源码version:'character(1)'原始文件sourcelastmodizeddate:'posixct()'最后修改源的日期。留下此空白应允许为您检索值(如果您的SourceURL有效)。sourcemd5:'字符()'md5原始文件scessize:'numeric(1)'原始文件dataprovider中的字节数:'字符(1)'这个资源来自哪里?标题:'字符(1)'此资源的标题描述:'字符(1)'资源种类描述)' Name of genome build Tags: 'character()' Free-form tags Recipe: 'character(1)' Name of recipe function RDataClass: 'character(1)' Class of derived object (e.g. 'GRanges') RDataDateAdded: 'POSIXct()' Date added to AnnotationHub. Used to determine snapshots. RDataPath: 'character(1)' file path to serialized form Maintainer: 'character(1)' Maintainer name and email address, 'A Maintainer ' BiocVersion: 'character(1)' Under which resource was built Coordinate_1_based: 'logical(1)' Do coordinates start with 1 or 0? DispatchClass: 'character(1)' string used to indicate which code should be called by the client when the resource is downloaded. This is often the same as the RDataClass. But it is allowed to be a different value so that the client can do something different internally if required. Location_Prefix: 'character(1)' This was added for resources where the metadata only is stored and the resource itself comes from a third party web site. The location prefix says the base path where the resource is coming from, and the default value will be from our own site. Notes: 'character()' Notes about the resource.

0.5第2步:用于预处理文件的功能(配方)

您需要写入的第二种功能称为配方函数。它始终必须将单个AnnotationHubmetAdata对象作为参数。配方函数的作业是使用AnnotationHubMetaData对象中的元数据生成将从稍后从AnnotationHub服务中检索的R对象或数据文件。下面是一个配方函数,调用一些辅助函数来从存储在它的AnnotationHubmetAdata对象中存储的元数据生成inparanoid数据库对象。

InparAnoirod8TodBsRecipe < - 函数(AHM){RESPRESS(ANNOTATIONFORGE)INPUTFILES < - 元数据(AHM)$ SourceFile DBNAME < -  makeInpdb(dir = file.path(inputfiles,“),datadir = tempdir())db < -  loaddb(文件= dbname)输出路径< -  file.path(元数据(ahm)$ annotationhubroot,元数据(ahm)$ rdatapath)savedb(db,file = outputpath)outputfile(ahm)}

0.6步骤1和第2步说明

在写这个功能的同时,必须拍摄一些领域:

案例1 - 如果需要下载该文件,并且仅在用户本地缓存中才会处理

  1. sourceurls = location_prefix + rdatapath
  2. 配方= NA_character_

例子 -

sourceulls =“http://hgdownload.cse.ucsc.edu/goldenpath/hg38/liftover/hg38/liftover/hg38torn5.over.chain.gz”,rdatapath =“goldenpath / hg38 / procever / hg38torn5.over.chain.gz”,location_prefix =“http://hgdownload.cse.ucsc.edu/”,

案例2 - 如果配方需要从外部网站检索文件,请在亚马逊位置存储此预处理文件,并始终将预处理的文件(不是原始文件)呈现给用户

  1. sourceurl应该仅仅记录未被访问文件的原始位置
  2. Location_Prefix + RDataPath应该等于存储所有预处理文件的amazon机器上的文件路径。
  3. 食谱=帮助函数,告诉我们如何预处理原始文件

例子 -

SourceURLS =“http://hgdownload.cse.ucsc.edu/goldenpath/hg38/liftover/hg38/liftover/hg38/liftover.chg38/liftOver.chain.gz”,location_prefix =“http://s3.amazonaws.com/annotationhub/”,rdatapath =“ChainFile / Dummy.rda“

如果这看起来令人困惑,请注意在这两种情况下,sourceUrl需要反映当客户端使用时资源实际来自的位置。

0.7步骤3:在用户缓存中后处理文件的功能。

当文件从用户的缓存实例化到AnnotationHub时,可以对其进行后处理。例如,将BED文件下载到用户的缓存中,我们希望AnnotationHub将其作为隆重使用rtrackler:进口然后与您的食谱一起,一个人会写一个包含在注释空中的类,如下所示 -

setClass(“BEDFileResource”,包含=“AnnotationHubResource”)setMethod(”。- .hub(x) dat <- rtracklayer::BEDFile(缓存(yy)) rtracklayer::import(dat, format="bed",基因组=yy$基因组,…)})

如果您需要使用一组文件来执行此操作,您可以为refipe制作,您需要与我们协调,以便将适当的支持代码修补到客户端。或者,您可以确保将rdataclass设置为现有值(我们已经有一种方法)。

0.8第四步:测试你的功能,当功能正常时联系我们

因此,此时您应该确保AnnotationHubmetaData生成函数生成注释列表,并且您的配方会产生对您期望的方式生成的文件的路径。一旦发生这种情况,您应该与我们联系有关运行食谱,以便您的数据实际上可以放入集线器中。

0.9会话信息

## R版本3.2.1(2015-06-18)##平台:x86_64-unknown-linux-gnu(64位)##运行于:Ubuntu 14.04.2 LTS ## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# ## [3] LC_TIME=en_US。UTF-8 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_TELEPHONE= c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基础包:## [1]stats graphics grDevices utils datasets methods base ## ##其他附加包:## [1]knitr_1.10.5 BiocStyle_1.7.4 ## ##通过命名空间加载(未附加):## [1] magrittr_1.5 formatR_1.2 htmltools_0.2.6 tools_3.2.1 ## [5] yaml_2.1.13 stringi_0.5-5 rmarkdown_0.7 stringgr_1 .0.0 ## [9] digest_0.6.8 evaluate_0.7