简介
由于二代测序中普遍采取短读长(50~150bp)的测序策略,在后续分析的流程中需要使用比对软件将reads片段匹配到参考基因组中从而产生比对/匹配文件,进而用于后续流程的分析。
Samtools是一个用来处理SAM/BAM(SAM的二进制格式,用于压缩空间)格式的比对文件的工具,它能够输入和输出SAM(sequence alignment/map:序列比对)格式的文件,对其进行排序、合并、建立索引等处理。
常用命令
-
view
将sam文件转换成bam文件;然后对bam文件进行数据的排序(不属于本命令的功能)和提取(这些操作是对bam文件进行的,因而当输入为sam文件的时候,不能进行该操作)等操作;最后将排序或提取得到的数据输出为bam或sam(默认的)格式。
bam文件优点:占用的磁盘空间小,二进制文件的运算速度快$ samtools view -b abc.sam > abc.bam
-
sort
对bam文件排序
$ samtools sort [-n] [-m <maxMem>] <in.bam> <out.prefix> -m 参数默认下是 500,000,000 即500M(不支持K,M,G等缩写)。对于处理大数据时,如果内存够用,则设置大点的值,以节约时间。 -n 设定排序方式按short reads的ID排序。默认下是按序列在fasta文件中的顺序(即header)和序列从左往右的位点排序。
-
merge
将多个已经sort的bam融合成一个bam
$ samtools merge [out.bam][in1.bam][in2.bam][in3.bam]
-
index
需要对bam文件进行排序后,才能进行index。本命令对bam文件建立索引并产生后缀为.bai的文件,用于快速的随机处理。
$ samtools index aln.sorted.bam
-
faidx
本命令对fasta文件建立索引并产生后缀为.fai的文件,用于快速的随机处理。$ samtools faidx <in.bam> [ [...]]
-
fastq
将bam文件转换为fastq或fasta格式。
$ samtools fastq [options...] <in.bam>