zoukankan      html  css  js  c++  java
  • 文件格式——Sam&bam文件

    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

  • 相关阅读:
    Android studio 几个坑,值得注意下。
    Android studio使用技巧,不定期更新。
    Android生猛上手,先写个拨号器。
    Ubuntu11.10安装教程,非虚拟机
    在线编辑器CKEditor,多图上传功能实现
    sql 中的NULL小问题 ,大bug
    工资低的.Net程序员,活该你工资低
    30岁的老龄程序员 ,不学习就会被淘汰
    计算商品税额和商品价格保留小数的时候的坑
    大话设计模式--简单工厂模式
  • 原文地址:https://www.cnblogs.com/zdwu/p/6801063.html
Copyright © 2011-2022 走看看