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

Nextflow解压gz文件报错:not a regular file 技术求助

问题排查与解决方案

你的Nextflow脚本出现gunzip: SRR1659960_05pc_R1.fastq.gz is not a regular file错误,核心原因是gunzip命令参数冲突+输出变量未正确引用,具体修正如下:

错误分析

  1. gunzip参数冲突:原脚本同时使用-kd和重定向>,-d会让gunzip直接生成去掉.gz后缀的解压文件,而重定向又要求gunzip输出到指定文件,两者行为冲突导致gunzip无法正确识别输入文件。
  2. 输出变量未引用:脚本里的"fastq_r1_path.fastq"是硬编码字符串,不是Nextflow定义的输出变量fastq_r1_path,导致Nextflow无法追踪输出文件,同时命令逻辑混乱。

修正后的脚本(两种可选方案)

方案一:直接用gunzip保留原文件解压

利用-k参数保留压缩文件,自动生成对应解压文件名:

process gz_uncompress{
    input:
        path fastq_r1_gz_path
    output:
        path "${fastq_r1_gz_path.baseName}"  // 自动获取去掉.gz的文件名
    script:
    """
    gunzip -k $fastq_r1_gz_path
    """
}

workflow{
    gz_uncompress("/Users/test/PycharmProjects/nf-easyfuse/local_test/SRR1659960_05pc_R1.fastq.gz")
}

方案二:用重定向指定输出文件名

用-c参数让gunzip输出到标准输出,再重定向到指定文件:

process gz_uncompress{
    input:
        path fastq_r1_gz_path
    output:
        path fastq_r1_path
    script:
    fastq_r1_path = "${fastq_r1_gz_path.baseName}"  // 定义输出文件名变量
    """
    gunzip -c $fastq_r1_gz_path > $fastq_r1_path
    """
}

workflow{
    gz_uncompress("/Users/test/PycharmProjects/nf-easyfuse/local_test/SRR1659960_05pc_R1.fastq.gz")
}

验证说明

修正后,Nextflow会正确将输入文件stage到工作目录,gunzip命令逻辑清晰,不会出现文件识别错误。运行脚本前可以先清理工作目录:nextflow clean -f,避免旧文件干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:40:37