美文网首页流程
snakemake学习

snakemake学习

作者: xiaosine | 来源:发表于2021-11-15 08:49 被阅读0次

DAG(directed acyclic graph):有向无环图

条件:1. 每个顶点出现且只出现一次。2. 若存在一条从顶点A到顶点B的路径,那么在序列中顶点A出现在顶点B的前面。

只有有向无环图才有拓扑排序,非DAG图没有拓扑排序一说,DAG一般用有向边指示顺序。

#tutorial source

#https://snakemake.bitbucket.io/snakemake-tutorial.html

#https://www.cnblogs.com/raisok/p/10970060.html

#https://snakemake.readthedocs.io/en/stable/executor_tutorial/tutorial.html

#snakemake前期准备

#1.数据

#2.创建工作流文件(包括input and output)

##linux# touch Snakefile(snakemake默认自动识别的文件,可更改为其他文件名,但在使用snakemake命令时需要指定)

#最好将工作流文件命名为.py文件

###创建规则

sample= ["A","B"]

rule bwa: #将第一条规则命名为bwa,进行比对

    input: #指定输入

        "data/genome.fa", #多个input用逗号隔开?

        "data/samples/{sample}.fastq" #此处{sample}是通配符(wildcard)用来匹配所有样品,sample是一个自定义的变量名

    output:

        "mapped_reads/{sample}.bam"

    shell: #此处shell也可以使用run替代来运行python代码

        "bwa mem {input} | samtools view -Sb - > {output}" #此出- >是否可以替换成->?

        #bwa mem为bwa推荐使用的算法,速度更快,准确度更高

        #bwa输入需要两个文件Reference genome data(已经构建出参考基因组的FM-index)和short reads data

#save file as bwa_map.py

#linux

##snakemake -np -s bwa_map.py mapped_reads/{A,B,C}.bam #snakemake并不建议这样写,而是建议一个样本一个样本跑

#此处的-n指的是--dryrun,不真正执行,一般用来看Snakefile是否有错,-p指的是--printshellcmds,指的是输出要执行的shell命令。

# -s指的是--snakefile,用于指定Snakefile,否则是当前目录下的Snakefile

rule samtools_sort:

    input:

        "mapped_reads/{sample}.bam"

    output:

        "mapped_reads/{sample}.bam"

    shell:

        "samtools sort -T sorted_reads/{wildcards.sample}"#-T表示PREFIX设置临时文件的前缀

        "-O bam {input} > {output}" #-O用来指定输出的格式(bam/sam),重定向操作很迷惑

#samtools的sort命令格式如下

##samtools sort[-l level] [-m maxMem][-o out.bam] [-O format][-n] [-T tmpprefix] [- @ threads] [in.sam | in.bam | in.cram]

#上述的samtools_sort也可以写成这样

持续更新

相关文章

  • snakemake学习

    DAG(directed acyclic graph):有向无环图 条件:1. 每个顶点出现且只出现一次。2. 若...

  • snakemake -- 学习

    snakemake document[https://snakemake.readthedocs.io/en/st...

  • snakemake 学习(1)

    1、安装 Snakemake可以在PyPi以及Bioconda上获得,也可以从源代码获得。您可以使用以下方法之一安...

  • snakemake 学习(0)

    1. snkemake介绍 Snakemake工作流管理系统是一种创建可重复和可扩展的数据分析的工具。工作流程通过...

  • snakemake 学习(2)

    举一个小例子: 通过在Snakefile中指定规则来定义Snakemake工作流。 规则通过指定如何从输入文件集创...

  • 流程管理工具snakemake学习笔记杂记02

    snakemake学习笔记007~slurm的cluster提交任务 主要参考 https://eriqande....

  • Snakemake - 任务投递参数

    SnakeMake - 使用 snakemake主体是通过一个*.smk完成 相关命令: --dag --forc...

  • Shell 使用多线程提交任务-FIFO

    参考: 学习snakemake,三步轻松搭建生信流程![https://zhuanlan.zhihu.com/p/...

  • snakemake 学习笔记1

    1, snakemake介绍 Snakemake是用Python3写的一个流程化工具, 非常方便. 官网上的例子有...

  • snakemake 学习笔记3

    目标 这次, 我要实现这个路程图. 目标介绍 第一: 生成1.txt , 2.txt, 3.txt 第二: 向每个...

网友评论

    本文标题:snakemake学习

    本文链接:https://www.haomeiwen.com/subject/igiazltx.html