美文网首页
R语言 -- 【optparse 包】如何给R脚本设置命令行参数

R语言 -- 【optparse 包】如何给R脚本设置命令行参数

作者: 生信摆渡 | 来源:发表于2020-05-14 13:51 被阅读0次

optparse使得我们很方便地给R脚本设置命令行参数,从而使得R脚本的复用和流程化使用。

1 安装

install.packages("optparse")
library("optparse")

2 使用

创建参数列表:make_option
# Usage
make_option(
  opt_str, # 参数名,格式:--parameter_name
  action = NULL, # 描述optparse在遇到选项“store”、“store-true”、“store-false”或“callback”时应采取的操作的字符串。如果在命令字符串上找到选项,则“store”操作表示optparse应存储指定的以下值。如果找到选项,“store_true”将存储true,如果找到选项,“store_false”将存储false。“callback”存储回调参数中指定的函数生成的返回值。如果callback不为空,则默认值为“callback”else“store”。
  type = NULL, # 参数数据类型
  dest = NULL,
  default = NULL, #设置参数的默认值
  help = "", # 该参数的描述信息
  metavar = NULL,
  callback = NULL,
  callback_args = NULL
)

option_list = list(make_option(), make_option(), make_option()) 
将参数列表传递给一个变量
args <- parse_args(OptionParser(option_list=option_list))

这样提取参数的值就非常地方便:args$name

3 示例

$ cat test.R 
# 随便写的
library("optparse")

option_list = list(make_option("--runFolder", type = "character", default = NULL, help  = "Run Folder."),
                   make_option("--cgGR", type = "character", default = NULL, help = "File path to CpG site R data."),
                   make_option("--Tag", type = "character", default = NULL, help = "Tag"),
                   make_option("--CGI", type = "character", default = NULL, help = "CpG Island BED file"))         
args <- parse_args(OptionParser(option_list=option_list))

cmd = paste("bibibi --runFolder", args$runFolder, "--cgGR", args$cgGR, "--Tag",  args$Tag, "--CGI", args$CGI)
cat(cmd, "\n")

$ Rscript test.R --runFolder BS_workflow --cgGR RData/cgGR.RData --Tag 1359380N --CGI CpG/hg19_cpgIsland.bed
bibibi --runFolder BS_workflow --cgGR RData/cgGR.RData --Tag 1359380N --CGI CpG/hg19_cpgIsland.bed 

在这个例子可能看不到这个包的好处,当你有多个样本要处理时,在pipeline中使用这种参数传递将是一个不错的方法。

相关文章

网友评论

      本文标题:R语言 -- 【optparse 包】如何给R脚本设置命令行参数

      本文链接:https://www.haomeiwen.com/subject/nmltohtx.html