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中使用这种参数传递将是一个不错的方法。
网友评论