Sam&bam文件
SAM是一种序列比对格式标准, 由sanger制定,是以TAB为分割符的文本格式。主要应用于测序序列mapping到基因组上的结果表示,当然也可以表示任意的多重比对结果。当测序得到的fastq文件map到基因组之后,我们通常会得到一个sam或者bam为扩展名的文件。SAM的全称是sequence alignment/map format。而BAM就是SAM的二进制文件(B取自binary)。
SAM由头文件和map结果组成。头文件由一行行以@起始的注释构成;而map结果是类似下面的东西:在SAM输出的结果中每一行都包括十二项通过Tab分隔,从左到右分别是:
1 序列的名字(ID)
2 概括出一个合适的标记,各个数字分别代表
- 1? 序列是一对序列中的一个
- 2? 比对结果是一个pair-end比对的末端
- 4? 没有找到位点
- 8? 这个序列是pair中的一个但是没有找到位点
- 16? 在这个比对上的位点,序列与参考序列反向互补
- 32? 这个序列在pair-end中的的mate序列与参考序列反响互补
- 64 序列是 mate 1
- 128 序列是 mate 2
假如说标记为以上列举出的数目,就可以直接推断出匹配的情况。假如说标记不是以上列举出的数字,比如说83=(64+16+2+1),就是这几种情况值和。
3? 参考序列的名字
4 在参考序列上的位置(头or尾?)
5? mapping qulity?? 越高则位点越独特
bowtie2有时并不能完全确定一个短的序列来自与参考序列的那个位置,特别是对于那些比较简单的序列。但是bowtie2会给出一个值来显示出 这个段序列来自某个位点的概率值,这个值就是mapping qulity。Mapping qulity的计算方法是:Q=-10log10p,Q是一个非负值,p是这个序列不来自这个位点的估计值。
假如说一条序列在某个参考序列上找到了两个位点,但是其中一个位点的Q明显大于另一个位点的Q值,这条序列来源于前一个位点的可能性就比较大。Q值的差距越大,这独特性越高。
Q值的计算方法来自与SAM标准格式,请查看SAM总结。
6 代表比对结果的CIGAR字符串,如37M1D2M1I,这段字符的意思是37个匹配,1个参考序列上的删除,2个匹配,1个参考序列上的插入。M代表的是alignment match(可以是错配)
7? mate 序列所在参考序列的名称
8 mate 序列在参考序列上的位置
9? 估计出的片段的长度,当mate 序列位于本序列上游时该值为负值。
10 read的序列
11 ASCII码格式的序列质量
12 可选的区域
- AS:i? 匹配的得分
- XS:i? 第二好的匹配的得分
- YS:i? mate 序列匹配的得分
- XN:i? 在参考序列上模糊碱基的个数
- XM:i? 错配的个数
- XO:i? gap open的个数
- XG:i? gap 延伸的个数
- NM:i? 编辑距离。但是不包含头尾被剪切的序列。一般来说等于序列中error base的个数
- YF:i? 说明为什么这个序列被过滤的字符串
- YT:Z
- MD:Z? 代表序列和参考序列错配的字符串
不同软件比对出来的sam文件略有不同,一下就bowtie以及samtools两种软件输出的文件格式分别说明。
SAM-bowtie2版本
1,简介:
文件后缀名:.sam
Bowtie2是现下最流行的短序列比对软件,SAM(Sequence Alignment/Map)格式是一种通用的比对格式,用来存储reads到参考序列的比对信息。
注释:以@开头的行
行:除注释外,每一行是一个read
列:
第一列:read name,read的名字通常包括测序平台等信息
eg.ILLUMINA-379DBF:1:1:3445:946#0/1
第二列:sum of flags,为flag的总和(整数),flag取值见备注(3)
eg.16
第三列:RNAM,reference sequence name,实际上就是比对到参考序列上的染色体号。若是无法比对,则是*
eg.chr1
第四列:position,read比对到参考序列上,第一个碱基所在的位置。若是无法比对,则是0
eg.36576599
第五列:Mapping quality,比对的质量分数,越高说明该read比对到参考基因组上的位置越唯一。
eg.42
第六列:CIGAR值,碱基匹配上的碱基数。match/mismatch、insertion、deletion 对应字母 M、I、D
eg.36M 表示36个碱基在比对时完全匹配
注:第七列到第九列是mate(备注1)的信息,若是单末端测序这几列均无意义。
第七列:MRNM(chr),mate的reference sequence name,实际上就是mate比对到的染色体号,若是没有mate,则是*
eg.*
第八列:mate position,mate比对到参考序列上的第一个碱基位置,若无mate,则为0
eg.0
第九列:ISIZE,Inferred fragment size.详见Illumina中paired end sequencing 和 mate pair sequencing,是负数,推测应该是两条read之间的间隔(待查证),若无mate则为0
eg.0
第十列:Sequence,就是read的碱基序列,如果是比对到互补链上则对read进行了reverse completed
eg.CGTTTCTGTGGGTGATGGGCCTGAGGGGCGTTCTCN
第十一列:ASCII,read质量的ASCII编码。
eg.PY[[YY_______________QQQQbILKIGEFGKB
第十二列之后:Optional fields,以tab建分割。详见备注(2)
eg.AS:i:-1 XN:i:0 XM:i:1 XO:i:0 XG:i:0 NM:i:1 MD:Z:35T0 YT:Z:UU
扩展
3,应用举例:
SAM文件可以作为很多后续分析的源文件,也可以从其中提取感兴趣的信息。
4,备注:
(1)mate,在Illuminated中有两种测序技术:paired end sequencing,mate pair sequencing。这两种测序都是测的一个片段的两端,这两端产生的reads被称为mate1,mate2,单末端测序则无mate。
(2)Optional fields:
AS:i:<N>
Alignment score.可以为负的,在local下可以为正的。 只有当Align≥1 time才出现
XS:i:<N>
Alignment score for second-best alignment. 当Align>1 time出现
YS:i:<N>
Alignment score for opposite mate in the paired-end alignment. 当该read是双末端测序中的一条时出现
XN:i:<N>
The number of ambiguous bases in the reference covering this alignment.(推测是指不知道错配发生在哪个位置,推测是针对于插入和缺失,待查证)
XM:i:<N>
错配碱基的数目
XO:i:<N>
The number of gap opens(针对于比对中的插入和缺失)
XG:i:<N>
The number of gap extensions(针对于比对中的插入和缺失)
NM:i:<N>
The edit distance(read string转换成reference string需要的最少核苷酸的edits:插入/缺失/替换)
YF:Z:<S>
该reads被过滤掉的原因。可能为LN(错配数太多,待查证)、NS(read中包含N或者.)、
SC(match bonus低于设定的阈值)、QC(failing quality control,待证)
YT:Z:<S>
值为UU表示不是pair中一部分(单末端?)、CP(是pair且可以完美匹配)
DP(是pair但不能很好的匹配)、UP(是pair但是无法比对到参考序列上)
MD:Z:<S>
比对上的错配碱基的字符串表示
(3)flag取值
0:比对到参考序列的正链上(待求证)
1:是paired-end或mate pair中的一条
2:双末端比对的一条
4:没有比对到参考序列上
8:是paired-end或mate pair中的一条,且无法比对到参考序列上
16:比对到参考序列的负链上
32:双末端reads的另一条(mate)比对到参考序列的负链上
64:这条read是mate 1
128:这条read是mate 2