生物信息学/SAM数据格式

维基教科书,自由的教学读本

SAM(The Sequence Alignment/Map format)格式,即序列比对文件的格式。详细的介绍文档:

http://samtools.github.io/hts-specs/SAMv1.pdf

SAM文件由两部分组成:头部区和主体区,都以tab分列。

  • 头部区:以'@'开始,体现了比对的一些总体信息。比如比对的SAM格式版本,比对的参考序列,比对使用的软件等。
  • 主体区:比对结果,每一个比对结果是一行,有11个主列和1个可选列。

SAM头部区简要介绍[编辑]

@HD VN:1.0 SO:upsorted
		头部区第一行:VN是格式版本;SO表示比对排序的类型,
		有unkown(default), unsorted, query name和coordinate几种。
		samtools软件在进行排序后不能自动更新bam文件的SO值。picard却可以。
@SQ SN:A.auricula_all_contig_1 LN:9401
		参考序列名。这些参考序列决定了比对结果sort的顺序。SN是参考序列名;LN是参考序列长度;
@RG ID:sample01
		Read Group. 1个sample的测序结果为1个Read Group;该sample可以有多个library的测序结果。
		数据编号信息。若对数据进行编号,则将其信息记录在@RG中。
		GATK软件运行时输入的SAM格式文件中必须含有该信息。
@PG ID:bowtie2 PN:bowtie2 VN:2.0.0-beta7
		生成SAM文件所使用的比对件。
主体部分有11个主列和1个可选列。其解释如下:
Field 描述
1 QNAME 比对的序列名
2 FLAG bitwise FLAG(表明比对类型:pairing, strand, mate strand 等)按位计算值,值变成二进制后,不同位表示相应的比对信息
3 RNAME 比对上的参考序列名
4 POS 1-Based的比对上的最左边的定位
5 MAPQ 比对质量 (Phred)
6 CIAGR Extended CIGAR string (操作符:MIDNSHP)比对结果信息:匹配碱基数,可变剪接等。
7 MRNM 相匹配的另外一条序列,比对上的参考序列名
8 MPOS 1-Based leftmost Mate POsition
9 ISIZE 插入片段长度
10 SEQ 和参考序列在同一个链上的比对序列(若比对结果在负义链上,则序列是其反向重复序列)
11 QUAL QUALity比对序列的质量(ASCII-33=Phred base quality)
12 OPT OPTional可选的行,以TAG: TYPE: VALUE的形式提供额外的信息
SAM文件第2列的FLAG值的介绍:
字符 二进制 十进制 描述
p 0x0001 1 该read是成对的paired reads中的一个
P 0x0002 2 Paird reads中每个都正确比对到参考序列
u 0x0004 4 该read没比对到参考序列上
U 0x0008 8 与该read成对的另一端的read没有比对到参考序列上
r 0x0010 16 该read和参考序列相比,是反向互补的
R 0x0020 32 与该read成对的另一端的read是反向互补的
1 0x0040 64 在Paired reads中,该read是第1条
2 0x0080 128 在Paired reads中,该read是第2条
s 0x0100 256 次优的比对结果
f 0x0200 512 没有通过质量控制
d 0x0400 1024 PCR重复或光学重复

BWA生成的TAGS[编辑]

BWA生成以‘X’ 开头的Tags
Tag Meaning
NM Edit distance
MD 错配位置/碱基
AS 比对得分
BC Barcode序列
X0 最佳匹配的次数
X1 BWA找到的次优比对数量
XN 参考文献中不明确的N碱基数量
XM 比对中错配的数量
XO gap的数量
XG gap延伸的次数
XT 类型: Unique唯一/Repeat重复/N/Mate-sw
XA 可选匹配; 格式format: (chr,pos,CIGAR,NM;)*
XS 次优比对得分
XF 支持正链/负链比对
XE 支持的seeds数

XO和XG是由BWT搜索生成,CIGAR字符串有Smith-Waterman比对,这两个内容不同不是bug。

在使用bwa、bowtie、tophat、hisat或STAR比对软件对reads进行比对后,可以获得了 SAM文件。这些sam文件记录着比对的结果。但是在后续分析中常常需要对sam格式文件进行操作。比如,对比对结果按reads比对到参考序列的位置进行排序,以利于下一步的分析。