SnakeMake - 使用
snakemake主体是通过一个*.smk完成
相关命令:
--jobs #设置并行的最大任务数目。
--config #向snakemake传递参数(字典形式)
--configfile #指定配置文件路径(可以支持多个)
--cores #设置任务最多使用的核数
--resources #设置任务最多使用的内存
--touch #更新文件的时间戳(不会重新跑)
--force #强制执行某一条
--forceall #强制执行某条Rule及它的依赖。
--forcerun #强制执行某条Rule,并更新后续依赖它的Rule。
--list #展示smk脚本中所能获得的所有Rule
--dag #生成整个流程的有向无环图,但不进行分析
--dag
生成流程逻辑框架图:
snakemake xxxx(流程本身的参数) --dag | dot -Tsvg > dag.svg
#如果snakemake流程本身会打印输出内容,则需要单独处理如下:
snakemake xxxx(流程本身的参数) --dag >tmp.txt
# 删除tmp.txt文档中流程自身打印的内容,然后生成图片
dot -Tsvg tmp.txt > dag.svg
--force, -f
重新运行第一条或指定的某条Rule
--forcerun, -R
强制执行snakefile,更新rule时,使用此命令。会同步更新后续的所有结果
--dry-run,
生成相关分析路径的shell脚本,但是不进行实际的执行。
--keep-going,
在某个任务失败后,继续运行其他的独立任务;
--cluster
针对集群投递到计算节点的参数设置;
```
--cluster "qsub -clear -cwd -P P18Z11900N0299 -l num_proc={threads} -l vf={params.resources} -binding linear:{threads}"
```
--restart-times
任务失败后,重投的次数
```
--restart-times 5
```
--rerun-incomplete,
针对结果不完整的数据,重跑所有的rules;
--unlock
解锁被异常锁定的目录
--stats
记录任务的执行状态,输出到指定文件
--nocolor
不输出彩色的结果
--drmaa-log-dir
仅限使用 -drmaa 进行任务调度时有效。 指定shell的log(.e 和 .o)输出目录.
rule内的函数
protected
```
在文件生成后,将文件权限改为 只读文件。
```
网友评论