千家信息网

怎样理解SAM/BAM文件格式

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,怎样理解SAM/BAM文件格式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。重点介绍下SAM文件中比对部分的含义,比对部分的信息是\t分
千家信息网最后更新 2024年11月22日怎样理解SAM/BAM文件格式

怎样理解SAM/BAM文件格式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

重点介绍下SAM文件中比对部分的含义,比对部分的信息是\t分隔的11列文件,每列的含义如下

1. column1

第一列是QNAME, 代表输入序列的名字,通常是reads的标识符。

2. column2

第二列是FLAG, 事先定义了以下几种flag, 每个flag用一个数字表示,对应一种比对的情况

  • 1代表这个序列采用的是PE双端测序

  • 2代表这个序列和参考序列完全匹配,没有插入缺失

  • 4代表这个序列没有mapping到参考序列上

  • 8代表这个序列的另一端序列没有比对到参考序列上,比如这条序列是R1,它对应的R2端序列没有比对到参考序列上

  • 16代表这个序列比对到参考序列的负链上

  • 32代表这个序列对应的另一端序列比对到参考序列的负链上

  • 64 代表这个序列是R1端序列

  • 128 代表这个序列是R2端序列

  • 256代表这个序列不是主要的比对,一条序列可能比对到参考序列的多个位置,根据map的质量值,可以将所有的alignments划分为primary alignments和secondary alignments

  • 512代表这个序列在QC时失败了,被过滤不掉了

  • 1024代表这个序列是PCR重复序列

  • 2048代表这个alignments是Supplement alignments, 一条reads的比对通常是全长比对上了基因组上的一段区域,但是对于嵌合体序列而言,一条reads会比对到基因组上两个不同的区域,此时就会形成两个alignments, 这些alignments 就叫做Supplement alignments


上面的这几个标签都是2的n次方,这样的数列有一个特点,就是随机挑选其中的几个,它们的和是唯一的,比如65只能是1和 64组成,代表这个序列是双端测序,而且是read1。

3. column3

第三列是RNAME, 代表基因组序列的名字,通常是染色体的名字。

4. column4

第四列是POS, 代表reads比对到染色体上的起始位置。

5. column5

第五列是MAPQ,代表mapping quality

6.column6

第六列是CIGAR,代表比对的描述信息,采用以下几个字符来描述reads的比对情况。

M表示match,可以是精确匹配,也可以是错配,I表示在基因组上插入碱基,D表示在基因组上删除碱基,N代表跳过基因组上的碱基,S代表在序列中去除部分碱基。

示例比对情况如下

ref :  AAG CGCTATAGAAquery  AAGTCGCT  AG

对于查询序列而言,首先是有3个碱基的匹配,用3M表示;然后在参考序列上插入了1个碱基,用1I表示; 接下来又有4个碱基的匹配,用4M表示;在然后是查询序列上有2个bp的插入,相对基因组而言是2个bp的缺失,用2D表示,最后是2个碱基的匹配,用2M表示。

综上,这个alignment对用的CIGAR为3M1I4M2D2M

7.column7

第七列是RNEXT, 如果一条reads比对上了基因组的多个位置,这一列记录的是下一个alignment比对的染色体的名字,如果只比对上基因组的一个位置,该列的内容为"*"。

8. column8

第八列是PNEXT, 如果一条reads比对上了基因组的多个位置,这一列记录的是下一个alignment比对的位置,如果只比对上基因组的一个位置,该列的内容为"*"。

9. column9

第九列是TLEN,代表插入片段的长度,根据reads比对的情况,可以估算出插入片段的长度。

10. column10

第十列是SEQ,代表输入的序列,通常是fastq文件中的序列。

11. column11

第十一列是QUAL,代表输入序列的质量,通常是fastq文件中的碱基质量。
除了以上11列内容外,还有一些可选的其他tag信息,这些tag信息的写法为tag:type:value, 每种type用一个字母表示,A表示单个字符;Z表示字符串,i表示整数,f表示浮点数。

比如NH这个tag表示reads的alignments的个数,写法如下

NH:i:2

表示这条reads比对上基因组的两个位置。所有tag的详细解释参考如下链接

https://samtools.github.io/hts-specs/SAMtags.pdf


看完上述内容,你们掌握怎样理解SAM/BAM文件格式的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0