nextflow-groovy:设置输入参数并检查

ds97pgxw  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(91)

我想知道和理解如何为我已经进行了一些测试/检查的管道设置参数。我在nf-core sarek上看过几个github仓库,但我不了解那里使用的格式。所以,我在写我自己的结构基于类似的线。
我有main.nf、check.nf和nextflow.config文件。来自www.example.com的控件main.nf转到check.nf(在子工作流目录中),参数从nextflow.config设置或由用户作为-params-file file.json提供
我在命令行上执行:
nextflow run test_input.nf -c nextflow.config -params-file nextflow-params.json
我有几个问题(S):

main.nf

include { input_check } from './subworkflows/check.nf'

workflow {
    input_check()
 
}

nextflow.config

params{
    file_csv=null
    out_dir=null
    data_type=null    
}

我需要写脚本,输出在check.nf?

./subworkflows/check.nf

process input_check {

    output:
    stdout
    
    script:
    println("hello inside input check")
    if(!params.data_type){
        error("no data type specified --data_type: wgs or wes or rna")
    }
    if(! params.file_csv){
        error("no input file csv provided --file_csv")
        exit 1
    }
    if(! params.out_dir){
        error("no output dir provided --out_dir")
        exit 1
    }    

    """
    """
}

我需要三个双引号吗?它们没有任何用途。如果我不使用它们,我会从nextflow得到奇怪的/随机的错误。
如果我错过了什么就告诉我。

ergxz8rk

ergxz8rk1#

nf-core Sarek管道采用的方法是在主工作流脚本中执行参数检查/验证。这样,我们可以最小化完成工作流所需运行的进程数。举例来说:

if(!params.data_type) {
    error("no data type specified --data_type: wgs or wes or rna")
}
if(!params.file_csv) {
    error("no input file csv provided --file_csv")
}
if(!params.out_dir) {
    error("no output dir provided --out_dir")
}

include { foo } from './subworkflows/foo.nf'

workflow {

    foo()
}

相关问题