Biostar_handbook||charpter 14. S

作者: Dawn_WangTP | 来源:发表于2018-07-16 01:57 被阅读2次

    Charpter_14 Sequence Alignment Maps(SAM)

    SAM文件是由Tab(\t)分割,面向‘行’的文本格式文件,主要包括两部分:

    • Header部分,包括@HD,@SQ,@PG等开头的基本信息。
    • Alignment部分,包括reads比对的所有信息。

    sam是最常见的存放mapping数据的格式,各种组学分析只要存在mapping的步骤都会产生SAM格式文件用于后续进一步的下游分析。

    比对+samtools sort一个快速示例

    REF=ebola.fa
    R1=SRR1972739_1.fq
    R2=SRR1972739_2.fq
    
    ### bwa mem $REF $R1 $R2 > bwa.sam
    
    ### bowtie 比对输出直接sort排序产生bam文件
    bowtie2 -x $REF -1 $R1 -2 $R2 |samtools sort -@ 10 >bowtie2_output.sorted.bam
    
    

    SAM header

    header部分由@起始,包括有:

    • HD:表示排序情况,unsorted或者已经按coordinate/names排过序
    • SQ:比对的参考序列的染色体信息,姓名/多长。
    • PG:运行命令的具体参数信息。
    • RG:每个read所在的group的信息。通常包含测序平台/测序文库/样本的ID等信息(header里最为重要的一个信息).ID(Read group identifier), LB(library), SM(Sample)

    @RG信息:如果原来样本的测序深度比较深,一般会按照不同的lane分开比对,最后再合并到一起。那么这个时候会有多个RG,里面记录了不同的lane,甚至测序文库的信息,唯一不变的是SM的sample信息,这样合并后才能正确处理。

    比对信息(Alignment部分)

    image
    image

    Column 1. QNAME(query name):fastq文件里的read ID

    Column 2. FLAG信息

    • 记录了许多有关read比对情况的信息,转换成二进制码后发现其包括12位,十进制取值范围就是0~2048,2的12次方。
    FLAG 二进制 具体含义
    1 000000000001 代表是PE双端测序,0代表SE单端测序
    2 000000000010 代表read和参考序列完全匹配。如果是PE测序还代表没有插入确实
    4 000000000100 该read未比对到参考序列上
    8 000000001000 PE测序的另一端R2未比对到参考序列上
    16 000000010000 反向互补后比对到参考序列上,read比对到了反向互补链上
    32 000000100000 PE测序的另一条reads(R2)比对到了反向互补链上
    64 000001000000 PE测序read1
    128 000010000000 PE 测序的read2
    256 000100000000 代表二次比对,该read在基因组上比对了多个位置,只有一个是首要比对位置,其它都是次要的,该位置是次要的,通常要过滤掉,但有些场景中是有用的信息
    512 001000000000 代表此序列低于测序平台过滤阈值,QC失败无法过滤(不常用)
    1024 010000000000 PCR重复序列或光学重复,可被Picard标记过滤掉(来自测序文库构建过程)
    2048 100000000000 该read可能存在嵌合,这个比对的部分只是来自其中的一部分序列(supplement alignment)
    • 对于未知的FLAG,可以samtools flags 141
    • 对于FLAG=77时,需要转换为二进制序列:77=000001001101=1+4+8+64即表示:PE read,比对不上参考序列,另一端也未比对上参考序列,它是PE测序read1
    • 常见的FLAGS:
      • 其中一条reads没有map上: 73, 133, 89 121, 165, 181, 101, 117, 153, 185, 59, 137
      • 两条reads都未map上:77,141
      • 比对上了,方向也对,也在插入大小(insert size)内: 99, 147, 83, 163
      • 比对上了,也在插入大小(insert size)内, 但是反向不对:67, 131, 115, 179
      • 单一配对,就是插入大小(insert size)不对: 81, 161, 97, 145, 65, 129, 113, 177

    Column 3/4. RNAME(reference name)/POS(position)

    • RNAME:表示参考序列的名字
    • POS:比对上的坐标位置,注意不管是正向还是反向,只记录比对上的最左边的坐标位置,坐标是以1为起始

    Column 5/6. MAPQ(mapping quality)和CIGAR(compact idiosyncratic gapped alignment representation)

    • MAPQ: 比对质量值,比对到参考序列上此位置的可靠程度,转化为-10logP。40/10=4 ——> 10^-4=1/10000,即比错的概率小于0.0001。
    • CIGAR:reads比对到参考序列的具体细节情况:
      • M:(完全匹配或SNP单碱基错配)
      • I:序列插入,包含潜在的insertion变异
      • D:序列删除,包含潜在的deletion变异
      • S:软跳过,跳过reads中部分序列,不改变read长度
      • H:硬跳过,切到reads中部分序列
      • N:跳过参考序列(常见于RNA-SEQ)

    Column 7/8/9 RNEXT, PNEXT, TLEN(仅PE的数据才有)

    • RNEXT:PE测序的配对read所比对到的染色体,=代表两个比对到相同的染色体
    • PNEXT:配对的read所比对到的位置。
    • TLEN: 插入片段的长度,可根据POS和CIGAR信息得出

    Column 10/11 SEQ 和 QUAL:query的序列以及fastq序列所对应的质量值

    Column 12 and on

    此列开始,不同测比对软件产出的数据会产生一定的差异。基本格式为TAG:TYPE:VALUE


    SAM/BAM file Manipulation

    • Select or Filter data from BAM files
    ### 查看特定的FLAG值
    samtools flags 4 ### 0x4 unmap
    
    ### 查看所有含有4的比对, -c 计数
    samtools view -f 4 bwa.bam
    samtools view -f 4 -c bwa.bam
    
    ### 过滤所有含有4的比对,反向匹配
    samtools view -F 4 bwa.bam
    
    ### -f -F参数的输出到新文件
    samtools view -b -F 4 bwa.bam > bwa.aligned.bam
    samtools index bwa.aligned.bam
    
    
    • BAMw文件概况统计
    samtools flagstat bwa.bam
    samtools idxstats bwa.bam
    bamtools stats -in bwa.bam
    
    ### 获取最佳比对的序列
    samtools flags 2308
    # unmap, secondary, supplement
    
    ### 此为proper_pair的最佳结果,其对于多次比对的reads只保留一次。
    samtools view -f 2 -F 2308 bwa.bam
    
    
    • 对于flags信息的运用
    ### 反链比对上的
    samtools view -f 16 -c bwa.bam
    # 6347
    
    ### 反链比对上的,且是非 未必对上的
    samtools view -f 16 -F 4 -c bwa.bam
    
    ### 比对到正链上,且是非 未比对上的
    samtools view -c -F 20 bwa.bam
    
    
    
    
    • 过滤低质量比对, 5列MAPQ
      • bwa比对的MAPQ值0代表未多次比对
      • q参数表示保留比对质量值大于等于此q值
    samtools view -c -q 1 bwa.bam
    
    ###比对质量大于1,且比对到正链上
    samtools view -q 1 -F 4 -F 16 -c bwa.bam
    
    
    • Secondary alignment 二次比对:序列是多次比对,其中一个最好的比对为PRIMARY align,其余的都是二次比对,FLAG值256
    samtools flags SECONDARY
    # 0x100 256
    
    samtools view -c -F 4 -f 256 bwa.bam
    # 0
    
    • 获得PRIMARY or Representative 比对
      • only have one primary alignment and other secondary and supplemental alignments.
    samtools flags SUPPLEMENT,SECONDARY
    # 0x900 2304
    
    samtools view -c -F 4 -F 2304 bwa.bam
    
    

    处理分析 SAM files

    • 添加@RG分组信息
    TAG='@RG\tID:xyz\tSM:Ebola\tLB:patient_100'
    
    ## 在比对过程中添加@RG信息tags
    bwa mem -R $TAG $REF $R1 $R2 |samtools sort >bwa.bam
    samtools index bwa.bam
    
    ### 改变分组@RG信息
    NEWTAG='@RG\tID:abc\tSM:Ebola\tLB:patient_101'
    samtools addreplacerg -m overwrite_all -r $NEWTAG bwa.bam -O BAM > newbam.bam
    
    
    
    • 合并BAM文件
    ## bwa 比对信息
    BWA_TAG='@RG\tID:bwa\tSM:bwa\tLB:bwa'
    samtools addreplacerg -m overwrite_all -r $BWA_TAG bwa.bam -O BAM > newbwa.bam
    
    ## bowtie2比对信息
    BOWTIE_TAG='@RG\tID:bowtie\tSM:bowtie\tLB:bowtie'
    samtools addreplacerg -m overwrite_all -r $BOWTIE_TAG bowtie.bam -O BAM > newbowtie.bam
    
    ## 合并成all_merge.bam
    samtools merge all_merge.bam newbwa.bam newbowtie.bam 
    
    ### 去合并之后分组信息为bwa的bam,bowtie.  **参数-l **
    samtools view -c -l bwa all_merge.bam
    samtools view -c -l bowtie all_merge.bam
    
    
    • 指定比对到ref上的某一位置上查看信息
    samtools view in.bam chr22:16050103-16050110
    
    
    • 快速查看比对情况
      • bam文件比较大,可以截取感兴趣的区段成小的bam文件再查看
      • 直接samtools tview --reference hg38.fa in.bam
    ###截成小的bam文件
    samtools view -h bwa.bam AF086833.2:1000-1100 |samtools view -Sb - >small.bam
    
    ### 直接tview 查看
    samtools tview --reference ref/ebola.fa bwa.bam
    

    参考文章:

    1. Biostar_handbook
    2. 解螺旋的矿工——从零开始完整学习全基因组测序数据分析:第5节 理解并操作BAM文件
    3. 徐州更——SAM格式及其相关工具

    相关文章

      网友评论

        本文标题:Biostar_handbook||charpter 14. S

        本文链接:https://www.haomeiwen.com/subject/ewimpftx.html