一个样本在下一次开始之前完成的Snakemake优先级
问题描述
我正在使用一个相当大的Snakemade文件来为30名患者调用突变。工作流程的第一步是对齐。我遇到的问题是,Snakemaker调度程序似乎首先为所有30名患者执行第一步(即比对)。这又需要大量(临时)磁盘空间(>;>;10TB)。这是非常无效的,因为当工作流完成时,一个患者只占用不到1 GB(仅VCF文件)。
所以我的问题是,是否有一种方法可以在开始对新患者进行配对(第一步)之前完成对一个患者的处理,同时仍然并行处理所有事情。
我尝试了--prioritize
选项来确定工作流的最后一个规则的优先级,但似乎没有效果。
如有任何帮助,不胜感激!
干杯!
解决方案
这又需要大量(临时)磁盘空间
我我认为您可以设置disk_mb
resource,使Snakemaker不会超过它。
例如,您有100 GB的磁盘空间,而每次对齐(最多)占用30 GB,以下应将Snakemake约束为同时最多运行3个对齐(并假设下一步需要的空间可以忽略不计-根据需要进行编辑):
rule align:
input:
...
output:
...
resources:
disk_mb=30000
...
运行方式:
snakemake --resources disk_mb=100000 ...
Snakemake: Tranverse DAG depth-first?处的答案应该有效,但是即使作业只需要很少的磁盘空间,您也必须一次运行一个作业。
相关文章