据说,snakemake比shell脚本更适合于自动化任务的投放。目前我用的比较多的是shell脚本。对于公共服务器集群,需要按节点分配使用的。或许snakemake更适合。 snakemake官网 参考地址一 徐州更教程 snakemake是python编写的。解释:snake + make =snake make ,snake 源于python。蛇&蟒蛇。make和我们平时用的make编译命令一样。不过snakemake用的是python编译,make用的是C编译。 snakemake官方推荐安装mini conda3。 在没有root权限的服务器安装时候,需要特别设定。
使用miniconda3安装snakemake
严格按照官网的推荐安装
conda install -c conda-forge mamba
#使用mamba安装snakemake
mamba create -c conda-forge -c bioconda -n snakemake snakemake
mamba是c++编写的conda包管理器的重新实现。速度更快,支持多线程并行下载包和依赖文件。简单说mamba是conda的升级版,速度更快,功能更强。
启动和退出
conda activate snakemake
启动snakemake环境,在环境里可以运行snakemake
conda deactivate
退出snakemake环境
snakemake要求python版本是3.5-3.6,3.7就不行。
snakemake构建分析流程
运行前测试流程
snakemake -
将运行流程图展示出来
snakemake --dag | dot -Tpdf > dag.pdf
运行命令调用SLF集群管理系统
snakemake -c "bsub -n 10 -q 集群的节点 " -j 4
我们集群有normal和fat这两个节点,
提交BSA任务到fat节点,并行4个任务,每个任务使用10个cpu,就是如下:
snakemake -c "bsub -n 10 -q fat" -j 4 -s BSA.py
使用qsub集群关闭系统
snakemake -c "qsub -V -cwd -q 队列名称" -j 8 -s QC.snakefile