Samtools,虽然叫做samtools,但是其在人重分析中操作的对象主要是BAM文件,有点名不副实啊。现在每天记录一点samtools的命令,版本为1.3.1。
samtools view [options] in.sam | in.bam | in.cram[region...]
这条命令将输入文件转换成输出文件,通常是将比对后的sam文件转换为bam文件。bam文件是sam文件的二进制格式,更加节省存储空间而且操作速度更快。如果没有指定option和region选项,则会在屏幕中显示sam格式的文件,如下所示。
在没有指定region的情况下,默认输出所有region。参数-b,-C,-1,-u,-h,-H,-c可以设置输出文件的格式,-o和-U参数设置输出文件名。-t和-T参数需要提供额外的参考数据。在人重中,提供参考基因组的fai文件。参数-L,-r,-R,-q,-l,-m,-f,-F用来设置过滤条件。参数-x,-B,-s用于修改数据。
region参数的格式为:RNAME[:startpos-[endpos]],例如:chr1,chr2:1000,chr3:1000-2000。
下面介绍几个常用的参数:
-b:输出文件为bam格式;
-t:FILE,一个制表分隔符的文件,对ref.fa使用命令“samtools faidx <ref.fa>”后,获得索引文件ref.fa.fai,使用此索引文件即可;
-S:提高与以前samtools版本的兼容性;
-F:INT,获得mapped过滤设置,0为未设置;
-f:INT,获得unmapped过滤设置,0为未设置;
-h:输出中包含头信息;
-o:设置输出文件名;
-T:FILE,使用fa格式的参考序列,可以使用bgzip格式的文件和使用samtools faidx命令获取的索引文件;
下面是一些例子:
#! /bin/bash
#sam转换为bam
samtools view -b -S -t ref.fai lane.sam > lane.bam
samtools view -bS lane.sam -o lane.bam
#提取比对到参考基因组上的数据
samtools view -b -F 4 lane.sam > lane.bam
#提取没有比对到参考基因组上的数据
samtools view -b -f 4 lane.sam > lane.bam
#提取paired reads中比对到参考基因组上的数据
samtools view -b -F 4 -f 8 lane.sam > only.read1.mapped.bam
samtools view -b -F 8 -f 4 lane.sam > only.read2.mapped.bam
samtools view -b -F 12 lane.sam > all.mapped.read1.read2.bam