如何以 arparse 样式打印 nextflow 脚本参数?
How do I print nextflow script parameters in arparse style?
我想将我的 nextflow 脚本的参数打印为帮助菜单(例如 nextflow run main.nf --help
),类似于 arparse 在 python 中的做法(即 script --help
).
我搜索了网络和帮助文档,找到了如何使用脚本中的 log.info
命令打印自定义菜单,但这只显示自定义日志标准输出,而实际上 运行ning脚本。
我的解决方法是按如下方式 grep 脚本:grep -E '^params.+ +\=' main.nf
。
这为我提供了类似于:
params.publishdir = '$TMPDIR'
params.min. = 3
如果 nextflow run main.nf --help
给我类似的输出就太好了(如果 '$TMPDIR'
被展开就更好了),但是 --help
基本上是在喂养 运行 params.help
; nextflow run main.nf -h
给了我顶级程序帮助,咳咳,help 都没有。是否有内置的 nextflow 来解决这个问题?
这没有内置函数,但如果您的参数只是简单的值,则类似以下内容可能就足够了:
nextflow.enable.dsl=2
params.publish_dir = System.getenv('TMPDIR') ?: './results'
params.publish_mode = 'copy'
check_params()
workflow {
// your awesome workflow here
}
def check_params() {
if( params.remove('help') ) {
params.each{ k, v -> println "params.${k.padRight(25)} = ${v}" }
exit 0
}
// additional validation here
}
$ nextflow run main.nf --help
N E X T F L O W ~ version 21.04.3
Launching `main.nf` [gigantic_plateau] - revision: c61c697636
params.publish_dir = /tmp
params.publish_mode = copy
请注意,将结果发布到临时目录通常没有多大意义。
我想将我的 nextflow 脚本的参数打印为帮助菜单(例如 nextflow run main.nf --help
),类似于 arparse 在 python 中的做法(即 script --help
).
我搜索了网络和帮助文档,找到了如何使用脚本中的 log.info
命令打印自定义菜单,但这只显示自定义日志标准输出,而实际上 运行ning脚本。
我的解决方法是按如下方式 grep 脚本:grep -E '^params.+ +\=' main.nf
。
这为我提供了类似于:
params.publishdir = '$TMPDIR'
params.min. = 3
如果 nextflow run main.nf --help
给我类似的输出就太好了(如果 '$TMPDIR'
被展开就更好了),但是 --help
基本上是在喂养 运行 params.help
; nextflow run main.nf -h
给了我顶级程序帮助,咳咳,help 都没有。是否有内置的 nextflow 来解决这个问题?
这没有内置函数,但如果您的参数只是简单的值,则类似以下内容可能就足够了:
nextflow.enable.dsl=2
params.publish_dir = System.getenv('TMPDIR') ?: './results'
params.publish_mode = 'copy'
check_params()
workflow {
// your awesome workflow here
}
def check_params() {
if( params.remove('help') ) {
params.each{ k, v -> println "params.${k.padRight(25)} = ${v}" }
exit 0
}
// additional validation here
}
$ nextflow run main.nf --help
N E X T F L O W ~ version 21.04.3
Launching `main.nf` [gigantic_plateau] - revision: c61c697636
params.publish_dir = /tmp
params.publish_mode = copy
请注意,将结果发布到临时目录通常没有多大意义。