这是一张自己截的sam文件图,bam文件是sam的二进制格式。
仅供参考。
sam文件一般比较大,读取sam文件在linux可以直接samtools view .sam,在windows下可以用LogView,也可以其他的读取程序
第一行可以看到是15号染色体,参考序列长度信息,不用管。
第二行显示比对工具和比对命令,也不用管。
从第三行开始正文,每一行代表一个read的匹配信息。可以看到前两行名字(第一列)一样,代表它们是一对read。每一列的格式信息官方解释如下:
看不懂,大致解释如下:
第一列(QNAME),read名。
第二列(FLAG),每一个flag数字都可以拆分成1,2,4,8,16…这些2的幂值的和,比如例图中83 = 1 + 2 + 16 + 64,163 = 1 + 2 + 32 +128,而且每个数字的组合方式是唯一的,能拆分出某个数就代表这条read具有某种属性,以下是每个幂值代表的意思:
1 : 代表这个序列采用的是PE双端测序
2: 代表这个序列和参考序列完全匹配,没有错配和插入缺失
4: 代表这个序列没有mapping到参考序列上
8: 代表这个序列的另一端序列没有比对到参考序列上,比如这条序列是R1,它对应的R2端序列没有比对到参考序列上
16:代表这个序列比对到参考序列的负链上
32 :代表这个序列对应的另一端序列比对到参考序列的负链上
64 : 代表这个序列是R1端序列, read1;
128 : 代表这个序列是R2端序列,read2;
256: 代表这个序列不是主要的比对,一条序列可能比对到参考序列的多个位置,只有一个是首要的比对位置,其他都是次要的
512: 代表这个序列在QC时失败了,被过滤不掉了
1024: 代表这个序列是PCR重复序列
2048: 代表这个序列是补充的比对
用Flag值和某个幂值进行按位与运算,如果得到幂值本身,表明具有这个属性,如果得到0,表明不具有。
第三列(RNAME),参考序列的名字。
第四列(POS),这个read在参考序列匹配的开始位点,不论这个read匹配在正链还是负链,这个位点都是代表最左端的位置,比如一条read长度为150,匹配在66580-66730,这个位点就是66580。
第五列(MAPQ),代表这条read的匹配质量分数,分数越高,表明这条read在参考序列的比对位置越唯一。MAPQ = -10lg(错误率),计算是这样计算的,但还没去验证。如果是0,代表未匹配,如果是255,代表这个匹配结果不可用。
第六列(CIGAR),CIGAR字段,由若干个“数字+字母”的形式组成,如例图中第四个read,由9S和141M组成,表明这个read前9个碱基被软剪切,后面141个碱基匹配上,是按前后顺序排列的。数字加起来为read长度,各个字母代表的含义如下:
M:我一般认为匹配。
I:有插入碱基。
D:有碱基缺失。
N:跳过区域。
S:soft-clip,剪切掉的序列,被剪掉的还在序列当中。
H:hard-clip,被剪掉的序列不在序列中。
P:填充,没见过。
=:序列匹配上参考序列。
X:未匹配得上。
第七列(RNEXT),如果是双端读数的话,第七列表示当前读数的配对读数所匹配的位点,如果跟当前读对匹配在同一染色体,则此处为“=”,如果是*,表示未匹配。
第八列(PNEXT),配对读数的匹配位点。
第九列(TLEN),DNA片段大小,这样的说法不太准确,我理解中的DNA片段大小等于insert size,但这一列的数值是insert size去掉两个读数长度之后的长度,也就是右读数最左端位点减去左读数最右端位点,位于两个读数中间的片段大小即为第九列数值。此列数值有正负,正负号取决于本条read在其配对read前还是在其后,如果在前则为正值,反之则为负值。
第十列(SEQ),read本身序列信息。
第十一列(QUAL),序列的质量信息,与第十列的碱基一一对应,计算方法自行百度,与fastQ文件序列质量计算大致相同。
第十二列是补充信息,以下信息来自别的博文,仅供参考。大概长这个样子:
AS:i 匹配的得分
XS:i 第二好的匹配的得分
YS:i mate 序列匹配的得分
XN:i 在参考序列上模糊碱基的个数
XM:i 错配的个数
XO:i gap open的个数
XG:i gap 延伸的个数
NM:i 经过编辑的序列
YF:i 说明为什么这个序列被过滤的字符串
YT:Z
MD:Z? 代表序列和参考序列错配的字符串
没有用过,我也不懂。。。
介绍完毕。
如果以上内容有什么错误或者构成侵权,欢迎联系我及时删除,感谢。