请注意,biocthis 不是一个生物导体核心包,因此它不是一个生物导体官方包。它是由莱昂纳多·科拉多-托雷斯制作的,这样他就可以更容易地维护和创建生物导体包lcolladotor.github.io / pkg / .希望biocthis 也会对你有帮助。
基础知识
安装biocthis
R
是一个开源的统计环境,可以很容易地修改,以增强其功能通过包。biocthis 是一个R
可透过Bioconductor 包的存储库。R
可以安装在任何操作系统上凹口 之后就可以安装了biocthis 在您的R
会话:
如果(!requireNamespace("BiocManager", quiet = TRUE)) {install.packages("BiocManager")} BiocManager::install("biocthis") ##检查您有一个有效的Bioconductor安装BiocManager::valid()
您可以从上面安装开发版本GitHub :
BiocManager:安装(“lcolladotor / biocthis”)
寻求帮助
作为包开发人员,我们试bob电竞体育官网图清楚地解释如何使用我们的包以及以何种顺序使用函数。但R
而且Bioconductor
有一个陡峭的学习曲线,所以学会在哪里寻求帮助是至关重要的。上面引用的博客文章提到了一些,但我们想强调的是生物导体支持站点 作为获得帮助的主要资源:记得使用biocthis
标记和检查以前的帖子 .其他替代方案也可用,如创建GitHub问题和twitter。但是,请注意,如果你想接受帮助,你应该坚持发布指导方针 .特别重要的是,您要提供一个小的可重复的示例和会话信息,以便包开发人员可以跟踪错误的来源。bob电竞体育官网
引用biocthis
我们希望biocthis 对你的工作很有帮助。请使用以下信息来引用包和整体方法。谢谢你!
##引文信息引文(“biocthis”)#> #> Collado-Torres L(2021)。#> Bioconductor包的自动化包和项目设置_。doi: 10.18129 / B9.bioc。biocthis(URL: #> https://doi.org/10.18129/B9.bioc.biocthis), #> https://github.com/lcolladotor/biocthisbiocthis - R package version #> 1.2.0, . #> #> Collado-Torres L (2021). "Automate package and project setup for #> Bioconductor packages." _bioRxiv_. doi: 10.1101/TODO (URL: #> https://doi.org/10.1101/TODO), https://www.biorxiv.org/content/10.1101/TODO>. #> #> To see these entries in BibTeX format, use 'print(, #> bibtex=TRUE)', 'toBibtex(.)', or set #> 'options(citation.bibtex.max=999)'.
快速开始使用tobiocthis
biocthis 是一个膨胀的R包usethis 与生物导体友好的模板。这些模板将帮助您快速创建一个R包,该包或具有Bioconductor依赖项,或您正在考虑有一天提交给Bioconductor。biocthis 具有功能,还可以增强您当前的R包,这些R包要么已经由Bioconductor分发,要么具有Bioconductor依赖性。biocthis 还包括一个生物导体友好GitHub的行为 R包的工作流程。要使用这个包中的函数,需要按如下所示加载它。
##加载其他R包("usethis")库("styler")
使用biocthis
在简历中
如果您还没有创建R包,您可以使用usethis .也就是说,利用usethis: create_package ()
使用您选择的包名。如果你正在使用RStudio桌面 这个函数将打开一个新的RStudio窗口,并在正确的位置打开R。否则,您可能需要使用setwd ()
更改目录。
在这个小插图中,我们将创建一个名为biocthispkg
在一个临时目录上并在此目录下工作,以便说明函数是如何工作的。在现实场景中,您将在R包中工作,并且不会运行biocthis_example_pkg ()
.
创建一个示例包用于说明目的。##注意:你不需要为你自己的包运行这个!pkgdir <- biocthis_example_pkg("biocthispkg", use_git = TRUE) #>✔创建'/tmp/RtmpTMNDVK/biocthispkg' #>✔设置活动项目到'/tmp/RtmpTMNDVK/biocthispkg' #>✔创建'R/' #>✔写'DESCRIPTION' #> Package: biocthispkg #> Title: Package Does(一行,Title Case) #> Version: 0.0.0.9000 #> Authors@R(解析):#> * First Last [aut, cre] (your - orcidid) #> DESCRIPTION: Package Does(一段)。#>许可证:' use_mit_license() ', ' use_gpl3_license() '或朋友选择#>许可证#>编码:UTF-8 #> LazyData: true #> Roxygen: list(markdown = true) #> RoxygenNote: 7.1.1 #>✔写“命名空间”#>✔设置活动项目到'' #>✔设置活动项目到'/tmp/RtmpTMNDVK/biocthispkg' #>✔初始化Git repo #>✔添加'. rproj。用户','。Rhistory', '.Rdata', '.httr-oauth', '.DS_Store' to '.gitignore'
一旦创建了包,就可以使用use_bioc_pkg_templates ()
方法中创建一组脚本dev
(开发人员)目录。
##创建生物模板biocthis::use_bioc_pkg_templates() #>✔创建'dev/' #>✔添加'^dev$' to '。Rbuildignore' #>特遣队正在写'dev/01_create_pkg。R' #>✔Writing 'dev/02_git_github_setup. R' #>特遣队R' #>✔Writing 'dev/03_core_files。R' #>✔Writing 'dev/04_update. /R '
如果你跑了use_bioc_pkg_templates ()
在RStudio桌面,然后所有的脚本将打开在你的RStudio窗口。每个脚本都包含注释,这些注释将指导您执行创建bioconductor友好R包所需的步骤。这些脚本是:
01 _create_pkg。R
帮助您安装使用这些模板脚本开发R包所需的R包。
帮助您检查您选择的R包名称是否可用。
包括跑步的步骤use_bioc_pkg_templates ()
.
02 _git_github_setup。R
忽略了*。Rproj
文件,以符合Bioconductor的要求
初始化git存储库
创建相应的GitHub存储库
03 _core_files。R
创建Bioconductor-friendly自述文件。限制型心肌病
而且NEWS.md
文件
为问题创建生物导体友好的GitHub模板
使用tidyverse风格的GitHub贡献和行为准则文件
创建一个生物导体友好的模板引用
文件
属性中添加多个徽章自述文件。限制型心肌病
文件1 1 1 你可能会想用獾 它也有生物导体下载统计的徽章。有些徽章是为Bioconductor量身定制的软件 包,所以您必须编辑它们以获得注释、实验和工作流包。
使用设置单元测试testthat (韦翰,2011)
添加一个生物导体友好的GitHub动作工作流
使用部署一个初始文档网站pkgdown (维克汉姆和赫塞尔伯斯出版社,2020年出版)
04 _update。R
使用自动样式化包中的R代码斯泰勒 (Müller和Walthert, 2021)
使用更新文档文件devtools (Wickham, Hester, and Chang, 2021)
这些步骤中有许多是由usethis (Wickham和Bryan, 2021),其中一些人利用biocthis (Collado-Torres, 2021)。
biocthis
功能概述
的dev
脚本使用biocthis 按照建议的顺序。不过,下面我们简要介绍一下它们的功能。
bioc_style ()
bioc_style ()
帮助您自动应用编码风格到您的R包文件使用斯泰勒 (Müller and Walthert, 2021),该研究基于Tidyverse编码风格指南 但经过修改,使其更类似于生物导体编码风格指南 .
# #自动风格整包装器的例子:style_pkg(添加pkgdir、变压器= biocthis: bioc_style()) # >────────────────────────────────────────# >状态数传说# >✔0文件不变。#>ℹ0文件更改。#>控制样式抛出错误。# >────────────────────────────────────────
use_bioc_citation ()
use_bioc_citation ()
创建一个R包引用
文件在本月/引用
它预先填充了您可能想要用于您的(未来)Bioconductor包(如Bioconductor DOIs)的信息,并引用了描述您的包的期刊文章(您可能会考虑提交给它)bioRxiv 首先作为预印本)。另外,使用usethis: use_citation ()
.
##创建一个Bioconductor-friendly biocthis::use_bioc_citation() #>✔创建“inst/”#>✔写入“inst/CITATION”#>•编辑“inst/CITATION”
use_bioc_description ()
use_bioc_description ()
创建一个R包描述
文件中预先填充了您可能想要用于(未来)Bioconductor包的信息,如Bioconductor支持网站的链接和biocViews
.您仍然需要手动编辑该文件。另外,使用usethis: use_description ()
.
##创建一个生物导流友好的模板描述文件biocthis::use_bioc_description() #>✔保留“描述”不变#>包:biocthispkg #>标题:包的功能(一行,标题情况)#>版本:0.99.0 #>日期:2021-05-19 #> Authors@R(解析):#> * First Last [aut, cre] (you - orcid - id) #>描述:包的功能(一段)。#>许可:艺术-2.0 #> URL: #> BugReports: https://support.bioconductor.org/t/biocthispkg #>编码:UTF-8 #> LazyData: true #> Roxygen: list(markdown = true) #> RoxygenNote: 7.1.1 #> biocViews:软件
use_bioc_github_action ()
开始
use_bioc_github_action ()
创建一个GitHub Actions (GHA)工作流文件,配置为Bioconductor-friendly。另外,使用usethis: use_github_action ()
为维护的一般GitHub动作工作流r-lib /动作
.如果这是你第一次看到这些字GitHub的行为 ,我们强烈建议你观看吉姆·海丝特的rstudio:会议(2020)
谈论这个话题 .以下是如何将这个GHA工作流添加到R包中的方法:
##创建一个GitHub Actions工作流,这是bioconductor友好的biocthis::use_bioc_github_action() #>✔Creating '。github/' #>✔Adding '^\\。Github $' to '。Rbuildignore' #> ✔ Adding '*.html' to '.github/.gitignore' #> ✔ Creating '.github/workflows/' #> ✔ Writing '.github/workflows/check-bioc.yml'
主要的GHA工作流特性
这GitHub的行为 (GHA)工作流的基础r-lib /动作/ / / check-standard.yaml例子 和其他人。目标是按需提供R CMD检查
在Linux, macOS和Windows上使用类似Bioconductor-devel和发布分支的设置。使GHA工作流程对生物导体友好的一些关键特性是:
它运行R CMD检查
在Bioconductor支持的相同平台(Linux, macOS和Windows)上。
它运行BiocCheck: BiocCheck ()
在所有这些平台上,不像Bioconductor的夜间构建。BiocCheck 是互补的R CMD检查
还能帮你改进简历。
它使用生物导体开发和释放码头 在Linux上测试你的包。由于Bioconductor包所需的所有系统依赖项都已包含在这些docker映像中,因此不太可能需要修改Linux系统依赖项。然后,docker映像上的信息用于配置macOS和Windows测试。
附加功能
此外,use_bioc_github_action ()
GHA工作流提供以下特性:
它运行covr (Hester, 2020)除非被环境变量禁用run_covr
(请参阅工作流的前几行)。
它自动部署一个文档网站使用pkgdown (Wickham and Hesselberth, 2020),除非被环境变量禁用run_pkgdown
(请参阅工作流的前几行)。
它显示来自的信息testthat (Wickham, 2011),除非被环境变量禁用has_testthat
(请参阅工作流的前几行)。同样的,has_RUnit
控件是否要运行RUnit
中描述的测试生物导体单元测试指南 .
它会缓存R包,并在将来的测试中重用它们,除非您使用关键字/ nocache
在提交信息中。使用/ nocache
可能有助于调试目的。缓存是特定于平台、R版本和Bioconductor版本的2 2 2 在某些情况下,您可能希望更改cache_version
环境变量强制GHA使用新的缓存。 .这些缓存可以帮助您加快检查速度,并在成功构建后进行更新。
GitHub提供的机器有7GB的RAM, 2核和14 GB的磁盘帮助页面 .它对于开源项目是免费的,但是您也可以付费在私有存储库中使用它在他们的特色网站上 .
自动安排测试
您还可以编辑生成的GHA工作流,使其每隔几天(例如,每周一)自动运行一次cron
中所描述的行GHA官方文件 .在某些情况下,这可能会引起你的兴趣,但你也应该意识到它将使用你的GHA计算时间,这取决于你的GitHub帐户和存储库设置。如果你要建立一个cron
你可能会发现,定期工作crontab.guru 有用的。
最后,您可以使用GHA做很多事情,您可能希望使用工作流作为构建的基础bookdown 或rmarkdown 网站,甚至码头工人
图像。一些例子是:
关于GHA工作流程的说明
使用GitHub Actions工作流程与Bioconductor-devel (R-devel一年六个月),无论你具体使用哪个GHA工作流程,都会暴露你在最新版本的Bioconductor, CRAN, GitHub和其他地方安装R包的问题。在# where-to-find-help r-lib /行动 您可以找到一个步骤列表,可以为R GHA工作流获得帮助。最后,你可能需要在以下方面寻求帮助:
面向开发者的邮件列表,
你在安装它们时遇到问题的软件包的GitHub存储库,
GitHub动作存储库,和其他地方。
即提供的GHA工作流biocthis 可以根据上游的变化而中断。特别是,它可以停止工作:
就在新的R版本之前(除非r-lib /动作
支持Rα
版本),
如果所需的Bioconductor docker映像不可用(例如,由于基于依赖项构建这些映像的问题摇滚歌手
和其他上游工具)3. 3. 3. 请看例子洛克2版第50期 . .
我们强烈建议观察任何事态发展,因为他们发生行动 自r-lib
团队在更新GHA工作流程方面做得很好。可以通过订阅RSS原子馈送 用于在其存储库中处理的提交RSS FeedBurner 你可以通过电子邮件订阅 .
如果您有兴趣了解有关此GHA工作流如何产生的更多细节,请查看Biocthis开发者备注
装饰图案 .
use_bioc_issue_template ()
use_bioc_issue_template ()
创建一个GitHub问题模板文件,其中预先填充了您可能想要用于(未来)Bioconductor包的信息,例如Bioconductor支持网站的链接,以及您可以要求用户提供的信息示例,这将使您更容易帮助您的用户。另外,使用usethis: use_tidy_issue_template ()
.
##创建一个Bioconductor-friendly的GitHub issue文件模板biocthis::use_bioc_issue_template() #>✔Creating `。github/ISSUE_TEMPLATE/' #>✔Writing '.github/ISSUE_TEMPLATE/ ISSUE_TEMPLATE .md'
use_bioc_news_md ()
use_bioc_news_md ()
创建一个NEWS.md
模板文件,其中预填充了您可能想要用于(未来)Bioconductor包的信息。另外,使用usethis: use_news_md ()
.
##创建模板NEWSmd文件,bioconductivity -friendly biocthis::use_bioc_news_md() #>✔Writing 'NEWS.md'
use_bioc_pkg_templates ()
在前面的主要部分中已经详细描述了这个函数。
use_bioc_readme_rmd ()
use_bioc_readme_rmd ()
创建一个自述文件。限制型心肌病
模板文件是预先填充的信息,你可能想要使用你的(未来)Bioconductor包,如Bioconductor的安装说明,如何引用你的包和链接到你使用的开发工具。另外,使用usethis: use_readme_rmd ()
.
##创建模板README。限制型心肌病文件that is Bioconductor-friendly biocthis::use_bioc_readme_rmd() #> ✔ Writing 'README.Rmd' #> ✔ Adding '^README\\.Rmd$' to '.Rbuildignore' #> ✔ Writing '.git/hooks/pre-commit'
use_bioc_support ()
use_bioc_support ()
创建一个模板GitHub支持模板文件,其中预填充了您可能想要用于(未来)Bioconductor包的信息,例如在哪里寻求帮助,包括Bioconductor支持网站。另外,使用usethis: use_tidy_support ()
.
##创建一个模板GitHub支持文件,是bio导体友好的biocthis::use_bioc_support() #>✔写'.github/ support .md'
use_bioc_vignette ()
use_bioc_vignette ()
创建一个模板小插图文件,其中预填充了您可能想要用于(未来)Bioconductor包的信息。此模板包含关于如何引用使用的其他包的信息RefManageR ,设计你的小插图BiocStyle 例如,如何从Bioconductor安装你的软件包的说明,在哪里寻求帮助,用户在使用你的软件包之前可能需要知道的信息,以及关于小插图是如何制作的可复制性信息sessioninfo .在开发R包时,您将需要花费大量时间编辑这个小插图。另外,使用usethis: use_vignette ()
.
##创建一个biocthis::use_bioc_vignette模板文件(“biocthispkg”,“biocthispkg简介”)#>✔在DESCRIPTION中添加“knitr”到建议字段#>•使用“requireNamespace(“knitr”,quiet = TRUE)”来测试是否安装了包#>•然后直接引用像“knitr::fun()”这样的函数(取代“fun()”)。使用' requireNamespace("BiocStyle", quiet = TRUE) '来测试是否安装了包#>•然后直接引用像'BiocStyle::fun() '这样的函数(取代' fun() ')。使用' requireNamespace("RefManageR", quiet = TRUE) '来测试是否安装了包#>•然后直接引用'RefManageR::fun() '(取代' fun() ')这样的函数。使用' requireNamespace("sessioninfo", quiet = TRUE) '来测试是否安装了包#>•然后直接引用'sessioninfo::fun() '(取代' fun() ')这样的函数。#>✔将DESCRIPTION中的VignetteBuilder字段设置为“knitr”#>✔添加“inst/doc”到“”gitignore' #>✔创建“vignettes/”#>✔添加“*.html”,“*.html”。R'到'vignettes/。#>•使用' requireNamespace("rmarkdown", quiet = TRUE) '测试是否安装了包#>•然后直接引用'rmarkdown::fun() '(取代' fun() ')这样的函数。写小插曲/biocthispkg。限制型心肌病的#> • Edit 'vignettes/biocthispkg.Rmd'
再现性
的biocthis 包装(Collado-Torres, 2021)得以实现,这要归功于:
R (R核心团队,2021年)
BiocStyle (Oleś,2021)
covr (海丝特,2020)
devtools (Wickham, Hester, and Chang, 2021)
fs (赫斯特和维克汉姆,2020年)
胶水 (海丝特,2020)
knitr (谢,2021)
pkgdown (维克汉姆和赫塞尔伯斯出版社,2020年出版)
rlang (亨利和维克汉姆,2021年)
RefManageR (麦克莱恩,2017)
rmarkdown (Allaire, Xie, McPherson, Luraschi, Ushey, Atkins, Wickham, Cheng, Chang和Iannone, 2021)
sessioninfo (Csárdi, core, Wickham, Chang, Flight, Müller, and Hester, 2018)
斯泰勒 (Müller和Walthert, 2021)
testthat (韦翰,2011)
usethis (维克汉姆和布莱恩,2021年)
这个包是使用biocthis .
创建小插图的代码
##创建小插图库("rmarkdown") system.time(render("biocthis. bat ")限制型心肌病", "BiocStyle::html_document")) ## Extract the R code library("knitr") knit("biocthis.Rmd", tangle = TRUE)
小插图生成的日期。
#> [1] "2021-05-19 17:10:42 edt "
生成小插图所花费的挂钟时间。
时差3.758秒
R
会话信息。
# >会话信息────────────────────────────────────────────────────────────────────────────────────────────────────────# # > >设置值版本R 4.1.0 (2021-05-18) # > os Ubuntu 20.04.2 LTS # >系统x86_64, linux-gnu ui X11 # # > >语言(EN) # >整理c# > ctype en_US。utf - 8 # > tz美国/ New_York # 2021-05-19 # > # > >日期包────────────────────────────────────────────────────────────────────────────────────────────────────────────自由源# # >包*版本日期> askpass 1.1 2019-01-13[2]凹口(R 4.1.0) # >补丁1.2.1 2020-12-09[2]凹口(R 4.1.0) # > BiocManager 1.30.15 2021-05-11[2]凹口(R 4.1.0) # > BiocStyle * 2.20.0 2021-05-19 [2] Bioconductor # > biocthis * 1.2.0 2021-05-19 [1] Bioconductor # > bookdown 0.22 2021-04-22[2]凹口(R4.1.0) # > bslib 0.2.5.1 2021-05-18[2]凹口(R 4.1.0) # > cli 2.5.0 2021-04-26[2]凹口(R 4.1.0) # >蜡笔1.4.1 2021-02-08[2]凹口(R 4.1.0) # 2020-07-21[2] 1.3.0 >证书版本凹口(R 4.1.0) # > 1.3.0 desc版本2021-03-05[2]凹口(R 4.1.0) # >消化0.6.27 2020-10-24[2]凹口(R 4.1.0) # >省略号0.3.2 2021-04-29[2]凹口(R 4.1.0) # >评估0.14 2019-05-28[2]凹口(R 4.1.0) # > fansi 0.4.2 2021-01-15[2]凹口(R 4.1.0) # > fs 1.5.0 2020-07-31[2]凹口(R 4.1.0) # >泛型0.1.0 2020-10-31 [2]凹口(R 4.1.0) # 2021-03-29[2] 1.3.0 >哥特版本凹口(R 4.1.0) # >胶1.4.2 2020-08-27[2]凹口(R 4.1.0) # > htmltools 0.5.1.1 2021-01-22[2]凹口(R 4.1.0) # > httr 1.4.2 2020-07-20[2]凹口(R 4.1.0) # > jquerylib 0.1.4 2021-04-26[2]凹口(R 4.1.0) # > jsonlite 1.7.2 2020-12-09[2]凹口(R 4.1.0) # > knitr 1.33 2021-04-24[2]凹口(R 4.1.0) # >生命周期1.0.0 2021-02-15[2]凹口(R 4.1.0) # > lubridate 1.7.10 2021-02-26[2]凹口(R 4.1.0) # > magrittr 2.0.1 2020-11-17[2]凹口(R 4.1.0) # > openssl1.4.4 2021-04-30[2]凹口(R 4.1.0) # >支柱1.6.1 2021-05-16[2]凹口(R 4.1.0) # > pkgconfig 2.0.3 2019-09-22[2]凹口(R 4.1.0) # > plyr 1.8.6 2020-03-03[2]凹口(R 4.1.0) # > purrr 0.3.4 2020-04-17[2]凹口(R 4.1.0) # > R6 2.5.0 2020-10-28[2]凹口(R 4.1.0) # > Rcpp 1.0.6 2021-01-15[2]凹口(R 4.1.0) # > RefManageR 1.3.0 *版本2020-11-13[2]凹口(R 4.1.0) # > rlang 0.4.11 2021-04-30[2]凹口(R 4.1.0) # > rmarkdown 2.8 2021-05-07[2]凹口(R 4.1.0) # >安装7.1.1 roxygen2 2020-06-27[2]凹口(R 4.1.0)# > rprojroot 2.0.2 2020-11-15[2]凹口(R 4.1.0) # > rstudioapi 0.13 2020-11-12[2]凹口(R 4.1.0) # > sass 0.4.0 2021-05-12[2]凹口(R 4.1.0) # > sessioninfo * 1.1.1 2018-11-05[2]凹口(R 4.1.0) # > stringi 1.6.2 2021-05-17[2]凹口(R 4.1.0) # > stringr 1.4.0 2019-02-10[2]凹口(R 4.1.0) #整>器* 1.4.1 2021-03-30[2]凹口(R 4.1.0) # > sys 3.4 2020-07-23[2]凹口(R 4.1.0) # >宠物猫3.1.2 2021-05-16[2]凹口(R 4.1.0) # > usethis * 2.0.1 2021-02-10[2]凹口(R 4.1.0) # > utf8 1.2.1 2021-03-12[2] CRAN (R 4.1.0) #> vctrs 0.3.8 2019-04-29 [2] CRAN (R 4.1.0) #> whisker 0.4 2019-08-28 [2] CRAN (R 4.1.0) #> withr 2.4.2 2021-04-18 [2] CRAN (R 4.1.0) #> xml2 1.3.2 2020-04-23 [2] CRAN (R 4.1.0) #> yaml 2.2.1 2020-02-01 [2] CRAN (R 4.1.0) #> [2] /home/biocbuild/bbs-3.13-bioc/R/library