SnakeMake - 使用
snakemake主體是通過(guò)一個(gè)*.smk完成
相關(guān)命令:
--jobs #設(shè)置并行的最大任務(wù)數(shù)目洒擦。
--config #向snakemake傳遞參數(shù)(字典形式)
--configfile #指定配置文件路徑(可以支持多個(gè))
--cores #設(shè)置任務(wù)最多使用的核數(shù)
--resources #設(shè)置任務(wù)最多使用的內(nèi)存
--touch #更新文件的時(shí)間戳(不會(huì)重新跑)
--force #強(qiáng)制執(zhí)行某一條
--forceall #強(qiáng)制執(zhí)行某條Rule及它的依賴怕膛。
--forcerun #強(qiáng)制執(zhí)行某條Rule熟嫩,并更新后續(xù)依賴它的Rule。
--list #展示smk腳本中所能獲得的所有Rule
--dag #生成整個(gè)流程的有向無(wú)環(huán)圖褐捻,但不進(jìn)行分析
--dag
生成流程邏輯框架圖:
snakemake xxxx(流程本身的參數(shù)) --dag | dot -Tsvg > dag.svg
#如果snakemake流程本身會(huì)打印輸出內(nèi)容掸茅,則需要單獨(dú)處理如下:
snakemake xxxx(流程本身的參數(shù)) --dag >tmp.txt
# 刪除tmp.txt文檔中流程自身打印的內(nèi)容,然后生成圖片
dot -Tsvg tmp.txt > dag.svg
--force, -f
重新運(yùn)行第一條或指定的某條Rule
--forcerun, -R
強(qiáng)制執(zhí)行snakefile柠逞,更新rule時(shí)昧狮,使用此命令。會(huì)同步更新后續(xù)的所有結(jié)果
--dry-run,
生成相關(guān)分析路徑的shell腳本板壮,但是不進(jìn)行實(shí)際的執(zhí)行逗鸣。
--keep-going,
在某個(gè)任務(wù)失敗后,繼續(xù)運(yùn)行其他的獨(dú)立任務(wù)绰精;
--cluster
針對(duì)集群投遞到計(jì)算節(jié)點(diǎn)的參數(shù)設(shè)置撒璧;
```
--cluster "qsub -clear -cwd -P P18Z11900N0299 -l num_proc={threads} -l vf={params.resources} -binding linear:{threads}"
```
--restart-times
任務(wù)失敗后,重投的次數(shù)
```
--restart-times 5
```
--rerun-incomplete,
針對(duì)結(jié)果不完整的數(shù)據(jù)茬底,重跑所有的rules沪悲;
--unlock
解鎖被異常鎖定的目錄
--stats
記錄任務(wù)的執(zhí)行狀態(tài)殿如,輸出到指定文件
--nocolor
不輸出彩色的結(jié)果
--drmaa-log-dir
僅限使用 -drmaa 進(jìn)行任務(wù)調(diào)度時(shí)有效。 指定shell的log(.e 和 .o)輸出目錄.
rule內(nèi)的函數(shù)
protected
```
在文件生成后烤送,將文件權(quán)限改為 只讀文件。
```