首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蛇形重复规则,其输出文件已经存在

蛇形重复规则,其输出文件已经存在
EN

Stack Overflow用户
提问于 2022-05-24 13:12:56
回答 1查看 138关注 0票数 0

我正在运行snakemake (v7.6.2),我注意到,与其“原则”不同,它试图重新运行输出文件已经存在的管道的步骤。

在我的第一次运行中,我有以下DAG:

它成功地完成了,但是我现在想向它添加另一个规则(quast_first),如下面的“更新”DAG所示:

(我是通过添加quast_first的输出作为quast_second的输入来做到这一点的)

如果我调用了一个试运行,我将期望重新执行以下规则:

  1. quast_first:输出不存在,它不是以前的workflow
  2. quast_second:的一部分--尽管输出是存在的,但是它有一个新的依赖项(quast_first),尽管在这种特殊情况下,输出应该完全相同,因为quast_first的输出只是quast_second

的依赖项(所以没有输入)。

然而,我看到snakemake想要重新生成整个工作流。下面是使用--reason标志调用试运行的摘录,如this question中所解释的

代码语言:javascript
复制
rule symLinkFQ:
    input: logs/BORD1725, /nexus/Gridion/20220420Microbiology_q20/no_sample/20220405_1846_X1_FAT23098_47b43b4a/High_accuracy_basecalling/pass/barcode04
    output: symLinkFq/BORD1725
    log: /home/ngs/tempSnakemake/20220420Microbiology_q20/logs/BORD1725
    jobid: 34
    reason: Updated input files: /nexus/Gridion/20220420Microbiology_q20/no_sample/20220405_1846_X1_FAT23098_47b43b4a/High_accuracy_basecalling/pass/barcode04
    wildcards: barcode=BORD1725
    resources: mem_mb=1000, disk_mb=1000, tmpdir=/tmp

ln -s /nexus/Gridion/20220420Microbiology_q20/no_sample/20220405_1846_X1_FAT23098_47b43b4a/High_accuracy_basecalling/pass/barcode04 symLinkFq/BORD1725

但是,我可以确认规则symLinkFQ的输出确实存在(workdir是/home/ngs/tempSnakemake/20220420Microbiology_q20),

代码语言:javascript
复制
[ngs@vngs20x ~/tempSnakemake/20220420Microbiology_q20]$ ll symLinkFq/BORD1725
lrwxrwxrwx. 1 ngs ngs 125 24. Mai 14:01 symLinkFq/BORD1725 -> /nexus/Gridion/20220420Microbiology_q20/no_sample/20220405_1846_X1_FAT23098_47b43b4a/High_accuracy_basecalling/pass/barcode04

所以我不太明白什么是:

代码语言:javascript
复制
reason: Updated input files: /nexus/Gridion/20220420Microbiology_q20/no_sample/20220405_1846_X1_FAT23098_47b43b4a/High_accuracy_basecalling/pass/barcode04`, as shown above:

同样,在试运行结束时,它再次显示如果我调用它,整个工作流将被执行:

代码语言:javascript
复制
Job stats:
job               count    min threads    max threads
--------------  -------  -------------  -------------
all                   1              1              1
cat_fastq             4              1              1
flye                  4              1              1
minimap_first         4              1              1
minimap_second        4              1              1
quast_first           4              1              1
quast_second          4              1              1
racon_first           4              1              1
racon_second          4              1              1
symLinkFQ             4              1              1
total                37              1              1

我一直在使用Snakemake的早期版本(主要是V.5.*),据我所知,这是我第一次遇到这个问题(Snakemake重新运行其输出文件已经存在的规则)。例如,我现在必须传递命令行参数来获取snakemake,告诉它不要重新生成已经存在的输出文件(尽管我一直认为这是默认行为),这是否是与版本相关的呢?

EN

回答 1

Stack Overflow用户

发布于 2022-05-25 10:45:43

事实证明,这确实与版本有关。我删除了snakemake v7.6.2,并将其命名为v5.8.1,而snakemake不再想重复其输出文件存在的规则。同样的错误出现在v7.8.0上,这是最新的发行版。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72363539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档