内容

1简介

这个包从R包中生成AnVIL工作区。一个例子使用了newGen3包作为基础Bioconductor-Package-Gen3工作区(需要访问此工作区的权限,但是授予权限没有限制)。

1.1包安装

如果需要,安装AnVILPublish库

如果(!“AnVILPublish”%in% rownames(installed.packages()))

包中只有少量的函数;调用这些使用可能是最佳实践AnVILPublish::…()而不是将包附加到搜索路径。

1.2gcloudSDK

这是必要的gcloud SDK可将笔记本文件复制到工作区。测试可用性

铁砧:gcloud_exists ()

并验证帐户和项目是否适合与AnVIL一起使用(与AnVIL凭证一致)

铁砧:gcloud_account()砧:gcloud_project ()

请注意,它们用于设置和查询帐户和项目。

1.3四开软件

将。rmd小片段转换为。ipynb笔记本使用四开软件它必须从内部提供R,例如,

系统2(“四开”,“——版本”)

用户必须确定他们的笔记本是否需要转换或呈现为.ipynb笔记本。区别在于渲染自动执行R代码块和嵌入图像,而转换不会。

也可以使用Pythonnotedown,但对该遗留工具的支持将停止;不支持嵌入图像。notedown必须从内部提供R,例如,

系统2(“notedown”、”——版本”)

2创建或更新工作区

谨慎更新现有的工作区将以一种无法撤消的方式替换现有的内容——您将丢失内容!

工作区的创建或更新使用来自DESCRIPTION文件、inst/表中的CSV文件和小插图顶部的YAML元数据的信息。因此,确保这些信息是准确的是值得的。

在DESCRIPTION文件中,标题、版本、日期、(首选)或使用Author / Maintainer字段、Description和License字段。

inst/ Tables中的表必须是CSV文件。CSV文件中的单个条目可能包含用于变量替换的“whisker”表达式,如下所示:

首先处理表whisker.render ()变量替换,然后readr: read_csv ()而且avtable_import ().Q

在小插图中,使用title:和author: name:字段。该摘要是未来纳入的一个很好的候选者。

2.1从包的源

一站式路径是从包源(例如,github签出)目录使用创建一个工作区as_workspace ()

AnVILPublish::as_workspace("路径/到/包","bioconductor-rpci-anvil", #例如,账单帐户create = TRUE #使用更新= TRUE对于现有的工作空间)

使用创建= TRUE来创建一个新的工作区。使用更新= TRUE更新(并可能覆盖)现有的工作区。之一创建而且更新必须是真实的。上面说明的命令没有指定name =参数,因此创建或更新工作区“Bioconductor-Package——< pkgname >,在那里< pkgname >是从DESCRIPTION文件中读取的包的名称;提供显式名称以创建或更新任意工作区。的选项use_readme = TRUE附加一个README。md文件到DESCRIPTION文件的格式化内容。

AnVILPublish: as_workspace ()调用as_notebook ()因此,这一步不需要“手工”执行。

查看命令add_access (),以使工作区对更广泛的用户可用。

2.2从Rmd文件集合

一些R资源,例如,bookdown网站并不在软件包中。这些可以通过微小的修改处理到工作空间中。

  1. 添加一个标准的DESCRIPTION文件(例如,use_this: use_description ())到包含.Rmd文件。

  2. 使用包:字段提供一个单字标识符(例如,包:Bioc2020_CNV)为你的材料。增加键值对类型:车间或类似的。的Pacakge:而且类型:字段将用于创建工作区名称,如在本例中所示,Bioconductor-Workshop-Bioc2020_CNV

  3. 在每个. rmd文件的顶部添加一个' yaml '块,如果还没有的话,包括标题和(可选的)名称信息,例如,

    ——标题:“01。工作坊简介"作者:-姓名:Iman作者-姓名:Imanother author -

以发布资源

AnVILPublish::as_workspace("路径/到/目录",#目录包含描述文件"bioconductor-rpci-anvil", create = TRUE)

3.更新笔记本或工作区权限

自动执行这些步骤as_workspace (),但在开发新工作区或修改现有工作区时可能有用。

3.1根据小插图更新工作区笔记本

将小插图转换为笔记本可能需要多次迭代,并可作为一个单独的操作。使用更新= FALSE创建用于预览的本地副本。

AnVILPublish:: as_notebook(“路径/ /文件。限制型心肌病", "bioconductor-rpci-anvil", # i.e., billing account "Bioconductor-Package-Foo", # Workspace name update = FALSE # make notebooks, but do not update workspace )

小插图转换过程有几个限制。只有.Rmd支持小插曲。方法将小插图首先转换为标记文档rmarkdown命令呈现(…,md_document()).然后将标记文档翻译为python笔记本使用notedown

这很可能减少小插图渲染的一些限制。

3.2添加共享笔记本的用户访问凭据

“Bioconductor_User”组可以添加到可以看到工作区的实体中。AnVIL用户希望查看工作区应该添加到Bioconductor_User组,而不是直接到工作区。使用命令添加用户组

AnVILPublish::add_access("bioconductor-rpci-anvil", "Bioconductor-Package-Foo")

4Vignette和.Rmd的最佳实践

4.1取向

.Rmd文件需要转换到jupyter笔记本。这些“最佳实践”带来的结果更有可能令人满意,如这里所概述的。

4.2最佳实践

  1. 对于包,确保DESCRIPTION文件是完整的。使用Authors@R用于完全指定作者的符号。添加一个日期:表示最后修改日期的字段。遵循Bioconductor的其他最佳实践,例如,使用和增加适当的版本号。

  2. 对于不在包中的小插图集合(例如,bookdown文件夹),在顶层添加一个DESCRIPTION文件。一个例子是

    类型:研讨会标题:R / Bioconductor in AnVIL Cloud版本:1.0.0 Authors@R: c(person(给定= "Martin", family = "Morgan", role = c("aut", "cre"), email = "Martin.Morgan@RoswellPark.org", comment = c(ORCID = "0000-0002-5874-8148")), person("Nitesh", "Turaga", role = "ctb"), person("Lori", "Shepherd", role = "ctb"))说明:本书包含2020年生物信息学社区会议提供的两个半小时课程的材料。Bioconductor为高通量基因组数据的分析和理解提供了超过1900个R包。大多数用户在个人计算机上安装和运行Bioconductor,或者可能使用学术集群。基于云的解决方案越来越有吸引力,消除了本地安装的麻烦,同时提供访问(a)更好的、可扩展的计算资源;以及(b)大规模“联盟”和其他参考数据集。本节介绍AnVIL云计算环境。我们介绍了云作为桌面式计算的替代品的使用;将“上游”处理大型数据资源的工作流程与交互式的“下游”分析和理解相结合,以Human Cell Atlas单细胞数据集为例;查询基于云的联盟数据,以便与用户自己的数据集集成。许可:CC-BY日期:2020-07-17编码:UTF-8 LazyData: true Roxygen: list(markdown = true) roxygen注:7.1.1

    类型而且字段用于构造工作区名称的第二个和第三个元素(在本例中,Bioconductor-Workshop-BCC2020).标题版本Authors@R描述许可证,日期字段用于构造DASHBOARD页面。

  3. 以“yaml”开始每个小插图,其中包含关于文档的基本元数据——标题和作者。如果需要,包括其他信息,例如,抽象的,(静态的)最后修改日期。

  4. 使用一个文件命名系统和一个yaml标题按文档内容显示的顺序(例如,使用文件名)对文件进行排序的字段01-Setup。限制型心肌病02 -…和标题(在yaml中)标题:“01设置”以这种方式命名文件和标题提供了一些机会,Rmd文件可以在Bioconductor包登录页面和Workspace / NOTEBOOK界面上显示,或者可以显示。

  5. 所有的代码块,不管注释如eval = FALSE回声= FALSE被转换成可见的,在木星笔记本上评估的细胞。用HTML标记替换不希望用户计算的代码块< pre > < / >之前

  6. 尽管Rmarkdown和python笔记本都支持多种语言的代码块,但在转换过程中对此没有支持——所有的单元格都表示为R代码。

4.3关于.Rmd转换的附加说明

目前的最佳实践是使用四开用于将. rmd转换为ipynb。Quarto可以在Bioconductor docker映像上使用,也可以轻松安装在Linux、macOS或Windows上。

为使用Python的笔记本转换提供了遗留支持notedown,并附上以下注释:

  • 从Rmarkdown到markdown的转换目前已经完成

    knitr: opts_chunk设置(eval = FALSE) rmarkdown:美元:渲染(…md_document ())

    创建标记文档.Rmd源。

    因为代码块没有被求值,所以不应该使用引用这些代码块中的对象的内联R代码。

    这正确地处理了标记内容,包括yaml元数据,但呈现所有代码块是相同的。

    使用其他的编织器选项可能允许,例如,有条件地包含代码块。

  • 使用notedown要从markdown转换为jupyter笔记本,添加元数据以指示笔记本有R内核。

会话信息

sessionInfo ()
## R版本4.2.1(22-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在:Ubuntu 20.04.5 LTS ## ##矩阵产品:default ## BLAS: /home/biocbuild/bbs-3.16-bio /R/lib/libRblas. ##因此## LAPACK: /home/biocbuild/bbs-3.16-bio /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_TELEPHONE= c# [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats graphics grDevices utils datasets methods base ## ##其他附加的包:## [1]biocstyle_1 .25.0 ## ##通过命名空间加载(并没有附加):# [1] bookdown_0.29 digest_0.6.30 R6_2.5.1 ## [4] jsonlite_1.8.3 magrittr_2.0.3 evaluate_0.17 ## [7] stringi_1.7.8 cachem_1.0.6 rlang_1.0.6 ## [10] cli_3.4.1 jquerylib_0.1.4 bslib_0.4.0 ## [13] rmarkdown_2.17 tools_4.2.1 stringgr_1 .4.1 ## [16] xfun_0.34 yaml_2.3.6 fastmap_1.1.0 ## [19] compiler_4.2.1 BiocManager_1.30.18 htmltools_0.5.3 ## [22] knitr_1.40 sass_0.4.2