首页 > 解决方案 > 如何在 Nextflow 中访问/操作 splitCSV 运算符的输出?

问题描述

我使用 stdout 输出将数据从一个 python 脚本移动到另一个,以避免使用其中包含一个数字的文件。结果,我在 csv 字符串中传递了我的信息,即 [data_val1、data_val2 等...]。这很好,但我需要能够使用此信息启动两个单独的频道。这可以通过分支来完成。我的问题是处理 splitCsv 运算符的输出。

extracted_values
    .splitCsv()
    .branch{
            meta_data: new Tuple(it[0],it[1])
            other_data: it[2]
    }
    .set{script_output}

script_output.meta_data.view({"medata data is $it"})
script_output.other_data.view({"original height is $it"})

该运算符的文档非常短。这些数据如何返回以供后续操作?我想取前几个值并传递到一个通道并将其余的发送到另一个通道。如果我有一个具有数组但我没有的变量,这将是微不足道的。

任何想法将不胜感激。

标签: csvgroovysplitnextflow

解决方案


对于 nextflow 新手,我从 gitter 得到了一些帮助

关于处理在 groovy 闭包上读取的变量。如果未列出任何内容,则将您的变量称为

我的拆分解决方案如下

Channel
    .from("val1,val2,val3")
    .splitCsv()
    .multiMap { it ->
        foo: [it[0],it[1]]
        bar: [it[2]]
        }
    .set{result}

result.foo.view()
result.bar.view()


推荐阅读