snakemake - 如何让snakemake重建丢失的输入?
问题描述
在缺少输入的情况下,snakemake 有没有办法表现得像 make 一样?snakemake 的当前行为是错误还是功能?
$ ls
b Makefile Snakefile
$ cat Makefile
b: a
touch b
a:
touch a
$ make -n
touch a
touch b
$ cat Snakefile
rule b:
input: "a"
output: touch("b")
rule a:
output: touch("a")
$ snakemake -n
Building DAG of jobs...
Nothing to be done.
$ snakemake -v
5.20.1
解决方案
在您的情况下,a
仅生成中间输出b
。由于b
已经存在,因此 Snakefile 将什么也不做。
您可以使用-F
参数调用snakemake来重做中间步骤
snakemake -n -F
或定义一个目标规则,其中a
和b
都被指定为最终输出
rule all:
input: "a", "b"
rule b:
input: "a"
output: touch("b")
rule a:
output: touch("a")
推荐阅读
- python-3.x - 无法在命令提示符中运行此 Python 脚本以进行网络抓取
- python - 如何使用网格系统使文本框不会更改列大小
- excel - 有没有一种方法可以突出显示高于或喜欢平均值的单元格,但如果我可以定义差异有多大?
- c++ - 基于组件的游戏引擎中的不同碰撞几何
- pdf - 通过 ImageMagick 将 pdf 转换为 jpg 的问题
- linux - SQUID 启用离线模式以使用缓存加载网页
- solidity - Solidity 代码不在 Javascript VM 环境中传输以太
- c++ - 随机数生成器游戏
- excel - Excel 使用 IF 语句选择随机数并创建随机数组
- pandas - ValueError:np.nan 是无效文档、预期字节或 unicode 字符串