gpt4 book ai didi

slurm - Snakemake slurm 输出文件重定向到新目录

转载 作者:行者123 更新时间:2023-12-04 13:56:15 31 4
gpt4 key购买 nike

我正在整理一个 snakemake slurm 工作流程,并且我的工作目录被 slurm 输出文件弄得杂乱无章。我希望我的工作流程至少将这些文件定向到我的工作目录中的“slurm”目录。我目前的工作流程设置如下:

配置文件:

reads:
1:
2:
samples:
15FL1-2: /datasets/work/AF_CROWN_RUST_WORK/2020-02-28_GWAS/data/15FL1-2
15Fl1-4: /datasets/work/AF_CROWN_RUST_WORK/2020-02-28_GWAS/data/15Fl1-4

集群.yaml:
localrules: all

__default__:
time: 0:5:0
mem: 1G
output: _{rule}_{wildcards.sample}_%A.slurm

fastqc_raw:
job_name: sm_fastqc_raw
time: 0:10:0
mem: 1G
output: slurm/_{rule}_{wildcards.sample}_{wildcards.read}_%A.slurm

蛇形文件:
configfile: "config.yaml"
workdir: config["work"]

rule all:
input:
expand("analysis/fastqc_raw/{sample}_R{read}_fastqc.html", sample=config["samples"],read=config["reads"])

rule clean:
shell:
"rm -rf analysis logs"

rule fastqc_raw:
input:
'data/{sample}_R{read}.fastq.gz'
output:
'analysis/fastqc_raw/{sample}_R{read}_fastqc.html'
log:
err = 'logs/fastqc_raw/{sample}_R{read}.out',
out = 'logs/fastqc_raw/{sample}_R{read}.err'
shell:
"""
fastqc {input} --noextract --outdir 'analysis/fastqc_raw' 2> {log.err} > {log.out}
"""

然后我调用:
snakemake --jobs 4  --cluster-config cluster.yaml --cluster "sbatch --mem={cluster.mem} --time={cluster.time} --job-name={cluster.job_name} --output={cluster.output}"

这不起作用,因为 slurm目录不存在。我不想在运行我的 snakemake 命令之前手动制作它,这对可扩展性不起作用。在阅读了每个相关问题后,我尝试过的事情是:

1) 简单地尝试通过规则中的日志捕获所有输出,并设置 cluster.output='/dev/null' .不起作用,slurm 输出中的信息没有被捕获,因为它不是完全规则的输出,它的工作信息

2)通过添加虚拟日志强制创建目录:
    log:
err = 'logs/fastqc_raw/{sample}_R{read}.out',
out = 'logs/fastqc_raw/{sample}_R{read}.err'
jobOut = 'slurm/out.err'

我认为这不起作用,因为 sbatch 在实现规则之前尝试找到 slurm 文件夹

3)允许在工作目录中创建文件,并在规则末尾添加bash代码以将文件移动到slurm目录中。我相信这不起作用,因为它试图在作业完成写入 slurm 输出之前移动文件。

任何进一步的想法或技巧?

最佳答案

您应该能够通过调用 sbatch 来抑制这些输出。与 --output=/dev/null --error=/dev/null .像这样的东西:

snakemake ... --cluster "sbatch --output=/dev/null --error=/dev/null ..."

如果您希望文件转到您选择的目录,您当然可以更改调用以反射(reflect):
snakemake ... --cluster "sbatch --output=/home/Ensa/slurmout/%j.out --error=/home/Ensa/slurmout/%j.out ..."

关于slurm - Snakemake slurm 输出文件重定向到新目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61864691/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com