1)samtools简介
--------------------------------------------------------------------------
背景:前面我们讲过sam/bam格式,sam文件虽然是可读的文本文件形式,但是通常是非常大,因此一般会对其压缩来节省磁盘空间,且对于很多软件来说,相比于对sam文件,对bam文件进行处理更加有效。SAMtools 是一款优秀的用以解析、处理sam/bam格式文件的一种软件包工具。其详细的文档可以在其官网里面找到。它主要包含以下功能:
1、格式转换(convert from other alignment formats)
2、排序 ,合并(sort and merge alignments)
3、去除PCR重复( remove PCR duplicate)
4、call SNP和indels( call SNPs and short indel variants)
5、数据提取(data extraction)
6、可视化(show alignments in a text-based viewer)
2)用法和命令
----------------------------------------------------------------------
像许多linux命令一样,SAMtool命令遵循流模型,允许将多个命令组合到数据处理管道中。标准流(stdin,stdout和stderr), 发送到stdout的数据默认打印到屏幕上,但很容易使用普通的Unix重定向器(>和>>)重定向到另一个文件,或通过管道(|)重定向到另一个命令。
SAMtools 命令的基本用法是: samtools <command> [options]

2.1) view
view命令用来过滤SAM或BAM格式的数据。输入通常是指定为参数的sam或bam文件,但可以是来自任何其他命令的sam或bam数据。 可选功能包括查看原始文件内容、BAM和SAM格式之间进行转换、将数据子集提取到新文件中, 提取读取的顺序得以保留。
 -- Viewing
     flags          explain BAM flags
     tview          text alignment viewer
     view           SAM<->BAM<->CRAM conversion
     depad          convert padded BAM to unpadded BAM

示例:
2.1.1) 将bam文件转化为sam文件,h 参数表示header
samtools view  -h RNA-seq.bam >RNA-seq.sam  
2.1.2) 将sam文件转化为bam文件
samtools view -bS RNA-seq.sam > sample.bam
2.1.3) 提取某个区间的比对结果(需要索引文件)
samtools view -hb RNA-seq.bam  'chr17:40465680-40465850' >out.bam
2.14)tview命令启动基于ascii的交互式查看器,可用于可视化读取与参考基因组的指定区域。
Usage: samtools tview <aln.bam> [ref.fasta]
2.15)提取比对上的区域
samtools view -h -F 4 -b RNA-seq.bam > aln_only_mapped.bam

2.2)index
index命令创建一个新的索引文件,生成的* .sam.sai或* .bam.bai文件,允许快速查找(已排序)SAM或BAM中的数据。
  -- Indexing
     dict           create a sequence dictionary file
     faidx          index/extract FASTA
     fqidx          index/extract FASTQ
     index          index alignment

示例:
2.2.1)samtools  faidx longreads.fa  #对fasta建立索引,会生成.fai文件
2.2.2)samtools faidx longreads.fa r1 >r1.fas  #建立索引后就可以提取指定的序列,这里提r1
2.2.3)samtools  fqidx  longreads.fq   #对fastq建立索引
2.2.4)samtools index  RNA-seq.bam  #对比对文件建立索引

2.3)格式转换
-- File operations
     collate          shuffle and group alignments by name
     cat                concatenate BAMs
     merge            merge sorted alignments
     mpileup          multi-way pileup
     sort               sort alignment file
     split               splits a file by read group
     quickcheck     quickly check if SAM/BAM/CRAM file appears intact
     fastq             converts a BAM to a FASTQ
     fasta             converts a BAM to a FASTA

示例
2.3.1)samtools sort -n  RNA-seq.bam >RNA-seq_sorted_out.bam  #将bam文件进行排序
2.3.2)samtools fastq RNA-seq.bam >RNA-seq.fq            #将bam 文件转化为fastq
2.3.3)samtools fasta RNA-seq.bam >RNA-seq.fa            #将bam 文件转化为fasta

2.4)编辑
  -- Editing
     calmd          recalculate MD/NM tags and '=' bases
     fixmate        fix mate information
     reheader       replace BAM header
     targetcut      cut fosmid regions (for fosmid pool only)
     addreplacerg   adds or replaces RG tags
     markdup        mark duplicates

示例:
2.4.1)samtools markdup  RNA-seq.bam RNA-seq. markdup.bam   #进行duplicates标记

2.6)统计
  -- Statistics
     bedcov        read depth per BED region
     depth          compute the depth
     flagstat       simple stats
     idxstats       BAM index stats
     phase          phase heterozygotes
     stats          generate stats (former bamcheck)

示例:
2.6.1)samtools depth   RNA-seq.bam >depth.out   #统计depth信息
2.6.2)samtools flagstat RNA-seq.bam >flagstat.out  # 统计大致信息
2.6.1)samtools  idxstats   RNA-seq.bam >out   # 统计index信息

3)参考资源
----------------------------------------------------------------------

1)https://en.wikipedia.org/wiki/SAMtools
2)The Sequence Alignment/Map format and SAMtools
3)https://davetang.org/wiki/tiki-index.php?page=SAMTools
4)https://github.com/davetang/learning_bam_file

samtools软件的使用的更多相关文章

  1. samtools软件作用

    samtools的说明文档:http://samtools.sourceforge.net/samtools.shtml samtools是一个用于操作sam和bam文件的工具合集,包含有许多命令.以 ...

  2. SAM格式 及 比对工具之 samtools 使用方法

    参考资料: SAMtools(官网) SAM Spec v1.4 (SAM格式 说明书) (重要) samtools-1.3.1 使用手册 (SAMtools软件说明书) samtools常用命令详解 ...

  3. GATK--使用转载

    http://blog.sciencenet.cn/blog-1469385-819498.html 文章目录 一.准备工作 二.流程概览 三.流程 首先说说GATK可以做什么.它主要用于从seque ...

  4. BAM/SAM格式

    本质上就是二进制压缩的SAM文件,大部分生物信息学流程都需要这个格式,为了节省存储空间以及方便索引. # BiocInstaller::biocLite('Rsamtools') library(Rs ...

  5. Python通过调用windows命令行处理sam文件

    Python通过调用windows命令行处理sam文件 以samtools软件为例 一.下载或者索取得到windows版本的samtools软件,解压后如下: 进入文件内部,有如下几个文件: 二.将s ...

  6. 解读sam格式文件

    1,SAM文件格式介绍 SAM(The Sequence Alignment / Map format)格式,即序列比对文件的格式,详细介绍文档:http://samtools.github.io/h ...

  7. 安装生物信息学软件-Samtools

    装完Bowtie2,官方文档给出的栗子说可以玩一玩samtools,所以我入个坑 参考这篇http://m.010lm.com/roll/2016/0620/2343389.html Step 1: ...

  8. samtools常用命令详解

    samtools的说明文档:http://samtools.sourceforge.net/samtools.shtmlsamtools是一个用于操作sam和bam文件的工具合集.包含有许多命令.以下 ...

  9. 安装生物信息学软件-bowtie2

    好吧,这是本周(2016.10.21-28)的学习任务之一:安装bowtie2并学习其使用方法&参数设置 所以,啃文档咯,官方文档Version 2.2.9 http://bowtie-bio ...

随机推荐

  1. 【EasyUI学习-2】Easyui Tree的异步加载

    作者:ssslinppp       1. 摘要 2. tree的相关介绍 3. 异步加载tree数据,并实现tree的折叠展开 3.1 功能说明: 3.2 前台代码 3.3 后台代码 4. 其他 1 ...

  2. CSS 标签实例二

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 【Python编程:从入门到实践】chapter10 文件和异常

    chapter10 文件和异常 10.1 从文件中读取数据 10.1.1 读取整个文件 with open("pi.txt") as file_object: contents = ...

  4. 不设目标也能通关「马里奥」的AI算法,全靠好奇心学习

    在强化学习中,设计密集.定义良好的外部奖励是很困难的,并且通常不可扩展.通常增加内部奖励可以作为对此限制的补偿,OpenAI.CMU 在本研究中更近一步,提出了完全靠内部奖励即好奇心来训练智能体的方法 ...

  5. 你的GAN训练得如何--GAN 的召回率(多样性)和精确率(图像质量)方法评估

    生成对抗网络(GAN)是当今最流行的图像生成方法之一,但评估和比较 GAN 产生的图像却极具挑战性.之前许多针对 GAN 合成图像的研究都只用了主观视觉评估,一些定量标准直到最近才开始出现.本文认为现 ...

  6. Samba 简介

    SMB 代表的是服务器消息块 (Server Message Block),它是用于在 Windows 上共享文件的协议的原始名称. CIFS 代表公共 Internet 文件系统 (Common I ...

  7. 国内访问Google的方法(Google学术、Google香港、Twitter等)

    通过修改host文件达到访问Google等国外网址的目的 打开下面网址,里面会定期更新host文件,而且有详细的方法 https://laod.cn/hosts/2017-google-hosts.h ...

  8. python数据结构之链表(一)

    数据结构是计算机科学必须掌握的一门学问,之前很多的教材都是用C语言实现链表,因为c有指针,可以很方便的控制内存,很方便就实现链表,其他的语言,则没那么方便,有很多都是用模拟链表,不过这次,我不是用模拟 ...

  9. linux更换shell外壳zsh

    linux-外壳内核与shell的关系 内核处于外壳之中,通过外壳与shell(命令行)交互 外壳可以更换 ############################################## ...

  10. yum lnmp

    1.关闭防火墙 [root@CentOS ~]# chkconfig iptables off   2.关闭selinux vi /etc/sysconfig/selinux //将SELINUX=e ...