一、简介
samtools view是一款可以查看SAM(Sequence Alignment/Map)和BAM(Binary Alignment/Map)两种格式的文件的工具,可用于过滤、转换、排序、合并、索引等操作。SAM/BAM格式是存储测序数据的标准格式,可包含参考序列信息、测序序列信息、比对信息等,方便后续的生物信息学分析。
二、安装
samtools view是samtools中的一部分,因此需要先安装samtools。启动终端,输入以下命令:
sudo apt update sudo apt install samtools
安装完成后,输入以下命令即可查看samtools版本号:
samtools --version
三、查看SAM/BAM文件
查看SAM/BAM文件的基本命令格式如下:
samtools view [options] <input.bam>
其中,options是可选参数,input.bam是待查看的文件名。
示例命令,查看样本A的比对信息:
samtools view SampleA.bam
默认情况下,输出信息包括每个比对的SAM格式信息。如果需要以BAM格式输出,可以使用-o选项:
samtools view -b SampleA.bam -o SampleA.bam.bg
若需要只查看某一特定染色体上的比对信息,则可以通过输入染色体名称的方式进行过滤:
samtools view SampleA.bam chr1
若需要进行区间提取,则需要输入区间的起始位置和终止位置,如chr1:1000-2000:
samtools view SampleA.bam chr1:1000-2000
四、质量过滤
查看某个样本的比对结果时,可能需要去除一些低质量的序列。samtools view提供了两种方式进行质量过滤,分别是基于MAPQ值和基于flag标志。
基于MAPQ值过滤:
samtools view -q 20 SampleA.bam
以上命令将只输出MAPQ值大于20的比对信息,MAPQ值代表比对的置信度,取值范围为0~255。默认情况下,所有比对的MAPQ值都是60,因此只有在有足够置信度的情况下才会输出比对结果。
基于flag标志过滤:
samtools view -F 0x4 SampleA.bam
以上命令将过滤掉flag标志为0x4的比对信息,0x4表示序列不能比对到参考序列上。
五、格式转换
samtools view提供了多种格式转换的方式,如SAM转BAM、BAM转SAM、SAM或BAM转CRAM、BAM转BED等。
SAM转BAM:
samtools view -b SampleA.sam -o SampleA.bam
BAM转SAM:
samtools view -h SampleA.bam -o SampleA.sam
SAM或BAM转CRAM:
samtools view -T ref.fa -C SampleA.bam -o SampleA.cram
BAM转BED:
bedtools bamtobed -i SampleA.bam > SampleA.bed
六、其他常用操作
1. 对BAM进行排序:
samtools sort SampleA.bam -o SampleA.sorted.bam
2. 对BAM进行索引:
samtools index SampleA.sorted.bam
3. 合并多个BAM文件:
samtools merge merged.bam SampleA.bam SampleB.bam SampleC.bam
4. 查看BAM文件中的参考序列信息:
samtools view -H SampleA.bam | grep '@SQ'
七、总结
samtools view是生物信息学中极为重要的SAM/BAM文件查看工具,不仅可以查看、转换、过滤、排序、合并、索引等操作,而且支持多种格式之间的相互转换,十分方便实用。