groovy Nextflow -如何将yaml格式的输入文件作为列表从参数传递到通道

vnjpjtjt  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(74)

如何将yaml的输入文件作为列表从参数传递到通道samples?如果有任何下一个流函数或简单的解决方案,使通道samples工程赞赏!

$ nextflow run main.nf \
   -config nextflow.config \
   --input_list s3://my-bucket/params.yml \
   --publish_dir ./output

--input_list s3://my-bucket/params.yaml

samples:
-
 biosample_id: WGS001
 bam: WGS001.bam
-
 biosample_id: WGS0002
 bam: NWGS0002.bam

下面给出的通道samples代码可以很好地与-params-file s3://my-bucket/params.yaml一起使用,但是我需要与参数input_list一起使用,因为我不能与-params-file一起使用

// input_list = "s3://my-bucket/params.yaml"

Channel
    .fromList( params.samples )
    .ifEmpty { ['biosample_id': params.biosample_id, 'bam': params.bam] }
    .set { samples }

Channel
    samples.branch { rec ->
    ....

Channel
    samples.map { it.biosample_id }
    ....

下面的代码可以工作

import groovy.yaml.YamlSlurper

params.inputs_list = "inputs.yaml"

workflow {    
    inputs = new YamlSlurper().parse(file(params.inputs_list))

    Channel
        .fromList(inputs['samples'])
        .ifEmpty { ['biosample_id': params.biosample_id, 'aln': params.aln] }
        .set { samples }
ego6inou

ego6inou1#

下面的代码可以工作

import groovy.yaml.YamlSlurper

params.inputs_list = "inputs.yaml"

workflow {    
    inputs = new YamlSlurper().parse(file(params.inputs_list))

    Channel
        .fromList(inputs['samples'])
        .ifEmpty { ['biosample_id': params.biosample_id, 'aln': params.aln] }
        .set { samples }

相关问题