You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nextflow中使用fromSRA函数读取tsv的SRA编号下载FastQ文件

问题原因

你在fetchRunAccession进程中声明了输出文件accessions,但执行的命令仅将结果打印到标准输出,没有写入到名为accessions的文件中,Nextflow找不到预期的输出文件因此抛出报错。
另外你写的displayResult进程也存在逻辑问题:输入的accessions是文件路径,直接echo只会打印文件名,无法输出文件内的登录号内容。

修复后的完整代码

#!/home/someuser/bin nextflow

nextflow.enable.dsl=2

params.datalist = "$baseDir/datalist.tsv"

process fetchRunAccession {
    input:
    path dlist

    output:
    path "accessions"

    """
    cut -f4 $dlist | sed -n 2,11p > accessions
    """
}

process displayResult {
    input:
    path accessions

    output:
    stdout

    """
    cat $accessions
    """
}

workflow {
    accessions_p = fetchRunAccession(params.datalist)
    result = displayResult(accessions_p)
    result.view()
}

对接fromSRA的更优写法

你不需要单独写进程来提取登录号,可以直接用Nextflow内置的TSV读取能力直接生成符合fromSRA要求的ID通道,性能更好也更易维护:

#!/home/someuser/bin nextflow

nextflow.enable.dsl=2
params.datalist = "$baseDir/datalist.tsv"

// 直接提取登录号通道
Channel.fromPath(params.datalist)
    .splitCsv(sep: '\t', header: true) // 按TSV格式读取,自动识别表头
    .map { it.run_accession } // 提取run_accession列的值
    .take(10) // 取跳过表头后的前10条,对应原sed 2,11p的效果
    .set { sra_ids }

// 后续直接调用fromSRA即可
Channel.fromSRA(sra_ids).view()

内容的提问来源于stack exchange,提问作者PPrasai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:27:04