使用Snakemake调用fastq-dump拆分SRA文件报错求助
Snakemake调用fastq-dump报错排查
问题场景
当前/atac_seq/{srr}/目录下仅存放对应SRR编号的.sra文件,直接通过bash执行fastq-dump命令可成功拆分文件,但使用以下Snakemake脚本运行时出现报错:
fastq-dump.3.1.1 err: item not found while constructing within virtual database module - the path 'SRRXXXXX.sra' cannot be opened as database or table
原始Snakemake脚本
SRRs = [ "SRR11111111", "SRR22222222", "SRR33333333", "SRR44444444", "SRR55555555", "SRR66666666", "SRR77777777" ] rule all: input: expand("../atac_seq/{srr}/{srr}_1.fastq.gz", srr=SRRs), expand("../atac_seq/{srr}/{srr}_2.fastq.gz", srr=SRRs), expand("../atac_seq/{srr}/{srr}_3.fastq.gz", srr=SRRs), expand("../atac_seq/{srr}/{srr}_4.fastq.gz", srr=SRRs) rule fastq_dump: output: "../atac_seq/{n}/{n}_1.fastq.gz", "../atac_seq/{n}/{n}_2.fastq.gz", "../atac_seq/{n}/{n}_3.fastq.gz", "../atac_seq/{n}/{n}_4.fastq.gz" shell: """ fastq-dump --split-files --gzip {wildcards.n}.sra """
问题原因
报错核心是fastq-dump无法定位到目标.sra文件:
- Snakemake默认以Snakefile所在目录作为工作目录,脚本中
{wildcards.n}.sra仅指定了文件名,未包含完整路径,导致fastq-dump在当前工作目录下查找,而非实际存放.sra文件的/atac_seq/{srr}/目录。 - 未给
fastq_dump规则添加输入依赖,Snakemake无法确认.sra文件的存在状态,也无法利用路径信息辅助定位。
解决方案
修改脚本,明确.sra文件的完整路径,并添加输入依赖:
SRRs = [ "SRR11111111", "SRR22222222", "SRR33333333", "SRR44444444", "SRR55555555", "SRR66666666", "SRR77777777" ] rule all: input: expand("../atac_seq/{srr}/{srr}_1.fastq.gz", srr=SRRs), expand("../atac_seq/{srr}/{srr}_2.fastq.gz", srr=SRRs), expand("../atac_seq/{srr}/{srr}_3.fastq.gz", srr=SRRs), expand("../atac_seq/{srr}/{srr}_4.fastq.gz", srr=SRRs) rule fastq_dump: input: "/atac_seq/{n}/{n}.sra" # 明确指定sra文件的完整路径 output: "../atac_seq/{n}/{n}_1.fastq.gz", "../atac_seq/{n}/{n}_2.fastq.gz", "../atac_seq/{n}/{n}_3.fastq.gz", "../atac_seq/{n}/{n}_4.fastq.gz" shell: """ fastq-dump --split-files --gzip {input} """
修改说明
- 添加输入依赖:通过
input字段指定.sra文件的完整路径,让Snakemake先确认文件存在再执行规则,同时传递正确的路径信息。 - 修正shell命令:用
{input}替代原有的{wildcards.n}.sra,直接引用输入文件的完整路径,确保fastq-dump能精准定位到目标.sra文件。
如果Snakefile所在目录与/atac_seq是相对路径关系,可将input中的绝对路径改为相对路径(如"../atac_seq/{n}/{n}.sra"),需根据实际目录结构调整。
内容的提问来源于stack exchange,提问作者user25645294
相关产品推荐
相关产品推荐

