生物信息比较基因组学生信分析

Sam/Bam文件格式详解

2021-07-06  本文已影响0人  生信阿拉丁

作者:麦茬道
审稿:童蒙
编辑:amethyst

随着生物信息数据的爆发式增长,存储生物信息的文件格式也多样化起来,不同的文件格式往往有不同的目的:
为了软件之间的兼容性;
人类可读的用于数据加工、解析和处理的格式,比如.tsv,.csv等;
为了提高计算机计算效率的数据格式,一般可读性不强的二进制文件,比如今天要讲解到的bam文件。

介绍

bam文件是sam文件的二进制格式,sam 文件是Sequence Alignment/Map Format的简写,产生于比对之后的数据输出,记录了比对的具体情况。文件中以tab键分割,包括上下两部分:

01.Header section

02.Alignments section

该部分包含了11列必需字段,无效或者没有的字段一般用“0”或者“*”表示。
下面,以数据详细介绍下bam文件的Alignments section中的每一列的含义。
下图是reads比对情况的示意图


下图是将比对情况记录成bam文件格式的样子


图中的Alignments section有6行12列信息详细介绍了6条read的比对情况,其中前11列为必需字段,每列的含义简单汇总成下表。接下来,我们仔细解读下表1中的信息。


第1列:Qname
Read的名字

第2列:FLAG
每一个read的比对情况可以用十进制数字(或者十六进制数字)表示,如果比对情况 有多个,将多个比对情况所代表的十进制数字加和就是这一行的FLAG。
比如,图1中r001的FLAG是99(1+2+32+64),则表示了“该read是pair read中的一个”,“pair read中每个都能够正确比对上”,“该read的mate read的反向互补可以比对上”,“该read是pari read中的read1”;r001的另一个FLAG是147(1+2+16+128),则表示“该read是pair read中的一个”,“pair read中每个都能够正确比对上”,“该read是原read的反向互补”,“该read是pari read中的read2”(也就是说,该read是read2的反向互补序列)。
值得注意的是,r001是pair read,而且都能比对上,所以r001出现了两次,如果r001的read1比对到参考序列的2个地方,r001的名字则会出现三次;如果read1比对上一次,read2没有比对上,r001仍会出现2次,不过,其中一个r001的第三列为“*”;所以pair-end测序,read1文件和read2文件同时mapping,相同reads的id最少出现2次。
另,以下网站可以通过输入FLAG值,直接找出该FLAG是那些FLAG的加和:Decoding SAM flags(https://broadinstitute.github.io/picard/explain-flags.html


FLAG释义表如下:

第3列:RNAME
比对上的参考序列的名字,该名字出现在Header section的@SQ行的SN标识中,如果该read没有比对上,也就是说该read在参考序列上没有坐标,那么这一列则用“”表示,那么这一行的POS和CIGAR列也会是“”。

第4列:POS
read比对到的参考序列“RNAME”最左侧的位置坐标,也是CIGAR中第一个比对标识“M”对应的最左侧碱基在参考序列的位置,未比对上的read在参考序列中没有坐标,此列标识为“0”。

第5列:MAPQ
比对的质量值,计算方法为比对错误率的-10*log10的值,一般是四舍五入的整数值,如果是255,说明该比对值无效。

第6列:CIGAR
CIGAR标识符表示read中每个碱基的比对情况,主要有以下标识符:

REF:  CACGATCA**GACCGATACGTCCGA 
READ1:  CGATCAGAGACCGATA 
CIGAR:6M2I8M
REF: AGCTAGCATCGTGTCGCCCGTCTAGCATACGC
READ:             GTGTAACC-GACTAG
CIGAR:8M1D6M
REF:AGCATCGTGTCGCCCGTCTAGCATACGCATGATCGACTGTCAGCTAGTCAGACTA
READ:     GTGTAACCC................................TCAGAATA
CIGAR:9M32N8M
REF: AGCTAGCATCGTGTCGCCCGTCTAGCATACGCAT
READ:          gggGTGTAACC-GACTAGgggg
CIGAR:3S8M1D6M4S (在sam中存储为GGGGTGTAACCGACTAGGGGG)
CIGAR:3H8M1D6M4H (在sam中存储为GTGTAACCGACTAG)
REF:  CACGATCA**GACCGATACGTCCGA 
READ1:  CGATCAGAGACCGATA 
READ2:    ATCA*AGACCGATAC 
READ3:   GATCA**GACCG  
The padded CIGAR are different: 
READ1: 6M2I8M 
READ2: 4M1P1I9M 
READ3: 5M2P5M

第7列:MRNM
该read的mate read比对上的参考序列的名字,该名字出现在Header section的@SQ行的SN标识中,

第8列:MPOS
该read的mate read比对到的参考序列“RNAME”最左侧的位置坐标,也是mate read CIGAR中第一个比对标识“M”对应的最左侧碱基在参考序列的位置,未比对上的read在参考序列中没有坐标,此列标识为“0”。

第9列:ISIZE
表示pair read完全匹配到同一条参考序列时,两个read之间的长度,可简单理解为测序文库的长度。这个定义有两种情况(虚线表示未比对上的序列,即soft-clipped bases):

第10列:SEQ
存储的序列,没有存储,此列则用“*”标识。该序列的长度一定等于CIGAR标识中“M”,“I”,“S”,“=”,“X”标识的碱基长度之和。

第11列:QUAL
序列的每个碱基对应一个碱基质量字符,每个碱基质量字符对应的ASCII码值减去33(Sanger Phred-33 质量值体系),即为该碱基的测序质量得分(Phred Quality Score)。不同Phred Quality Score代表不同的碱基测序错误率,如Phred Quality Score值为20和30分别表示碱基测序错误率为1%和0.1%。

参考资料

上一篇下一篇

猜你喜欢

热点阅读