小能豆

Snakemake 优先考虑一个样本在下一个样本开始之前完成

py

我正在使用一个相当大的 snakemake 文件来调用 30 位患者的突变。工作流程的第一步是对齐。我遇到的问题是,snakemake 调度程序似乎首先为所有 30 位患者执行第一步(即对齐)。这反过来需要大量(临时)磁盘空间(>>10TB)。这是非常低效的,因为当工作流程完成时,一位患者仅占用不到 1 GB(仅 vcf 文件)。

所以我的问题是,是否有一种方法可以“强制”snakemake在开始为新患者进行对齐(第一步)之前完成对一名患者的处理,同时仍然使一切并行化。

我尝试了--prioritize优先考虑工作流程的最后一条规则的选项,但这似乎没有起到作用。


阅读 17

收藏
2025-01-03

共1个答案

小能豆

认为您可以以某种方式设置disk_mb 资源,以使 snakemake 不会超出该资源。

例如,您有 100 GB 的磁盘空间,并且每个对齐最多占用 30 GB,则以下内容应限制 snakemake 同时最多运行 3 个对齐(并假设下一步所需的空间可以忽略不计 - 根据需要进行编辑):

rule align:
    input: 
        ...
    output: 
        ...
    resources:
        disk_mb=30000
    ...

运行身份:

snakemake --resources disk_mb=100000 ...
2025-01-03