我有一个看起来像这样的大蛇形文件(在简化了很多之后)。
rule a:
input: '{path}.csv'
output: '{path}.a.csv'
shell: 'cp {input} {output}'
rule b:
input: '{path}.csv'
output: '{path}.b.csv'
shell: 'cp {input} {output}'
rule c:
input: '{path}.csv'
output: '{path}.c.csv'
shell: 'cp {input} {output}'
rule d:
input: '{path}.csv'
output: '{path}.d.csv'
shell: 'cp {input} {output}'
rule all:
input: 'raw1.a.b.c.a.d.csv',
'raw2.a.b.c.d.a.csv'
(这个设置让我可以使用像函数这样的规则,通过在all规则中链接它们的文件名后缀。)
开始状态:
$ ls -tr1
Snakefile
raw1.csv
raw2.csv
$ snakemake all
...
后:
$ ls -tr1
Snakefile
raw1.csv
raw2.csv
raw2.a.csv
raw2.a.b.csv
raw2.a.b.c.csv
raw2.a.b.c.d.csv
raw1.a.csv
raw1.a.b.csv
raw1.a.b.c.csv
raw1.a.b.c.a.csv
raw1.a.b.c.a.d.csv
raw2.a.b.c.d.a.csv
现在,我想添加一个规则来删除特定的中间文件(例如raw1.a.csv和raw2.a.b.csv),因为我不需要它们并且它们占用大量磁盘空间。temp()由于通配符,我无法标记输出{path}。
有小费吗?谢谢。
郎朗坤
BIG阳
相关分类