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

  • 相关阅读:
    Lambda表达式、依赖倒置
    ASP.NET vNext 概述
    Uname
    RHEL4 i386下安装rdesktop【原创】
    Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)
    How to decompile class file in Java and Eclipse
    先有的资源,能看的速度看,不能看的,抽时间看。说不定那天就真的打不开了(转)
    Google App Engine 学习和实践
    【VBA研究】VBA通过HTTP协议实现邮件轨迹跟踪查询
    js正則表達式语法
  • 原文地址:https://www.cnblogs.com/zdwu/p/6801063.html
Copyright © 2011-2022 走看看