python开发流程管理软件_[Python][工具] Snakemake 流程管理工具(1)

流程!流程!流程!

写流程最重要的,当然是流程管理工具。在这里我的选择是snakemake,一个语法简单,结构清晰,并且方便其他人修改参数的python工具。其实基于python的流程框架有很多,应用广泛,有更适合处理数据的nextflow,但是需要fifo。snakemake基于DSL,语法上主要由rule构成,功能上几乎就是python版本的make。

snakemake 第一部分 我们来安装snakemake,讲解snakemake最基本的单元:rule,以及如何测试我们的rule

snakemake的安装:

snakemake我不习惯单独给它在conda下创建环境,因为我的环境都是按照不同测序的需要去配置的。所以我们可以先激活ChIP-seq环境,并在激活的环境下安装snakemake

source activate chip

conda install snakemake

也可以自行下载snakemake,手动安装,地址为

https://bitbucket.org/snakemake/snakemake-tutorial/get/v3.11.0.tar.bz2

第一个rule:

想要在某个目录下执行snakemake,需要先创建一个Snakefile,在Snakefile文件内对流程进行编写。

vim Snakefile

snakemake整个的流程,由一个个单独的rule组成,也是它容易阅读的主要原因。

rule主体上有三个必须的部分,分别是输入(input),输出(output)和命令(shell)

一个简单的例子,正常我们需要将下载得到的.sra 文件转为 .fastq文件,才能进行后续的质量控制和比对,以GSEXXXXX文件为例,如果直接将fastq文件储存在相同的目录下,命令是:

fastq-dump GSEXXXXX

现在放到我们的Snakefile里:

rule sra_fastq:

input:

'sra/GSEXXXXX.sra'

output:

'sratofastq/GSEXXXXX.fastq'

shell:

'''

fastq-dump {input}

'''

snakemake的分级方式遵循python的缩进形式,也就是四个空格。

rule 后接rule的名字,例子里面只有一种input和output文件类型,但实际情况可能有更多的种类,不同的文件类型之间用逗号+换行隔开。例子中输入的只有也只有一个单独的文件,如果我们要同时处理多个.sra文件用{sample}代替,snakemake会自动识别文件类型并逐个进行处理。保存文件的修改,我们来测试一下!

snakemake的测试:

为了方便开发者进行测试,snakemake内置了伪执行命令,可以通过反馈的信息随时进行修改。

snakemake -n

snakemake -np

snakemake -nr

-n: 不真正执行

-p:输出每一步需要执行的shell

-r:输出每一步的执行原因

这里我们使用

snakemake -np sra/GSEXXXXX.fastq

请注意,-np后面的文件是你的output文件,而不是input!

如果你的文件位置输入错误,或者是弄错了文件名,会报错 MissingRuleException当然也有可能是找不到rule的参数或者是软件的安装位置,需要仔细的检查。如果命令本身哪里有错,伪执行是发现不了的,它主要是帮助你检查各个配置文件的位置是否和你输入的一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值