SRR = [ \'SRR11111111\', \'SRR22222222\', \'SRR33333333\', \'SRR44444444\', \'SRR5555555\', \'SRR66666666\', ...
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
"""
大家好,目前目录 /atac_seq/{srr}/ 中只有一个 .sra 文件。我想使用 fastqdump 和 snakemake 扩展 .sra 文件,但出现错误:“fastq-dump.3.1.1 错误:在虚拟数据库模块中构建时未找到项目 - 路径“SRRXXXXX.sra”无法作为数据库或表打开”。
我尝试在各个文件夹中的 bash 中使用 fastq-dump,并且它可以工作,但我不确定为什么我的脚本不起作用。
和 -p
运行 Snakemake 工作流程 --dry-run
。然后获取 Snakemake 打印的确切命令并在当前目录中运行它以查看是否有效。
具体来说,我认为在您的 shell 命令中您需要:
shell:
"""
cd ../atac_seq/{wildcards.n}
fastq-dump --split-files --gzip {wildcards.n}.sra
"""
Snakemake 在子 shell 中运行所有 shell 命令,因此无需更改目录。该 cd
命令只会影响此 shell 块内的命令。