BAM文件中flag的释义一直很含糊,看了很多官方文档和博客都解释得似懂非懂,今天就详细地了解了一下,首先:
samtools view *.bam | head -10
# 查看bam文件,每一行代表一条记录
图中有两条记录,其中第二列即为flag值。
这个值是由多个“基本的”flag值相加得来的,不同的“基本”flag值代表比对的不同性质。
基本flag的赋值为2的n次方,即1,2,4,8...等等等,其它任意数值的flag值都可以由不同且唯一的基本flag值组合得到。如99只能由1+2+32+64得到,则flag99的含义则囊括了1,2,32,64这四个“基本”flag的含义。
基本flag的值和对应的含义见下表(https://www.samformat.info/sam-format-flag):
英文的描述过于简短,我初看也是似懂非懂,后面会放目前我在苦苦检索后找到的,最有助于理解的一些前人总结。
下面是根据一个真实的bam文件统计的flag值和该值的总计数。统计的代码为:
samtools view *.bam | awk '{print $2}' | sort | uniq -c
由于基本flag排列组合后得到的flag很多,这里展示有代表性的一部分,可以发现83,163,99,147出现的频次远多于其他falg值,事实上,这4个flag值占该bam文件所有记录的99.2%,可以说是最应该熟知的flag值。
下面是干货:
-
bam文件结构概览
-
不仅告诉你flag值,还告诉你flag是如何相加的,比短短几个英文字母的解释要清楚许多
-
个人总结