samtools,bedtools

作者: nnlrl | 来源:发表于2019-07-18 21:18 被阅读88次

    1 samtools

    • SAM全称是Sequence Alignment/Map, 是目前最常用的存放比对或联配数据的格式。无论是重测序,还是转录组,还是表观组, 几乎所有流程都会产生SAM/BAM文件作为中间步骤,然后是后续专门的分析过程。

    • 顾名思义samtools就是用于处理sam与bam格式的工具软件,能够实现二进制查看、格式转换、排序及合并等功能,结 合sam格式中的flag、tag等信息,还可以完成比对结果的统计汇总。同时利用linux中的grep、awk等操作命令, 还可以大大扩展samtools的使用范围与功能。比如结构变异,基因融合,SNP/INDEL calling检测等


    sam文件格式

    其中第二列是常用的基因比对情况打分



    这里需要注意,计算比对情况时每次都需要使用总值减去可以减的最大值,最后得到的结果即是序列的比对情况
    #view功能可查看sam文件或者进行bam文件转化
    /software/samtools-1.3/samtools view /home/tech/NGS-example/AS_example/231ESRP.25K.rep-1.bam |less -s
    
    #提取比对到参考序列上的比对结果 
    samtools view  -bF 4 abc.bam > abc.F.bam 
    
    #提取paired reads中两条reads都比对到参考序列上的比对结果,只需要把两个4+8的值#12作为过滤参数即可 
    samtools view  -bF 12 abc.bam > abc.F12.bam 
    
    #提取没有比对到参考序列上的比对结果 
    samtools view  -bf 4 abc.bam > abc.f.bam 
    
    #提取bam文件中比对到caffold1上的比对结果,并保存到sam文件格式 
    samtools view  abc.bam scaffold1 > scaffold1.sam 
    
    #提取scaffold1上能比对到30k到100k区域的比对结果 samtools view  abc.bam scaffold1:30000-100000 > scaffold1_30k-100k.sam
    
    #统计bam文件中的比对flag信息,并输出比对统计结果 
    /software/samtools-1.3/samtools flagstat toy.bam
    
    #一般sam转换bam直接用sort函数,排序之后输出bam文件
    /software/samtools-1.3/samtools sort -o toy.bam toy.sam
    
    #对排序后的bam文件建立index,并输出为bai文件,用于快速随机处理。
    /software/samtools-1.3/samtools index toy.bam
    
    #统计reads数
    samtools idxstats toy.bam | awk '{s+=$3+$4}'END'{print s}'
    

    2 bedtools

    • bedtools的功能非常强大,试图解决你所遇到的所有和基因组位置运算的问题以及周边问题:基因组运算,多文件比较,PE数据操作,格式转换,Fasta数据操作,BAM工具,统计学相关工具,其他小工具

    • bedtools总共有二三十个工具/命令来处理基因组数据。比较典型而且常用的功能举例如下:格式转换,bam转bed(bamToBed),bed转其他格式(bedToBam,bedToIgv);对基因组坐标的逻辑运算,包括:交集(intersectBed,windowBed),”邻集“(closestBed),补集(complementBed),并集(mergeBed),差集(subtractBed);计算覆盖度(coverage)(coverageBed,genomeCoverageBed)

    • bedtools的核心是基因组运算,所谓的基因组运算,就是看看看自己手头拿到的区域和你感兴趣的区域的关系如何。 bedtools提供了如下工具做一系列你想到或者你想不到的事情。

    • bed格式一般主要包含了基因的染色体定位信息,包括染色体定位,起始位点以及终止位点等信息,便于对整条染色体的基因覆盖情况进行了解

    #取交集
    bedtools intersect -a a.bed -b b.bed
    chr1    100 101 a2  2   -
    chr1    100 110 a2  2   -
    
    #输出overlap中a的序列
    bedtools intersect -a a.bed -b b.bed -wa
    
    #输出overlap中b的序列
    bedtools intersect -a a.bed -b b.bed -wb
    
    #输出两段序列中重复的部分
    bedtools intersect -a a.bed -b b.bed -wa -wb
    
    bedtools window命令,顾名思义,是扩展一个窗口;功能与intersect相似,是对A文件中每个元素 的位置坐标扩展,捕获B文件中与A有overlap的元素;如,寻找lncRNA的顺式靶基因
    bedtools window -a a.bed -b b.bed
    chr1    10  20  a1  1   +   chr1    20  30  b1  1   +
    chr1    10  20  a1  1   +   chr1    90  101 b2  2   -
    chr1    10  20  a1  1   +   chr1    100 110 b3  3   +
    chr1    10  20  a1  1   +   chr1    200 210 b4  4   +
    chr1    100 200 a2  2   -   chr1    20  30  b1  1   +
    chr1    100 200 a2  2   -   chr1    90  101 b2  2   -
    chr1    100 200 a2  2   -   chr1    100 110 b3  3   +
    chr1    100 200 a2  2   -   chr1    200 210 b4  4   +
    
    

    相关文章

      网友评论

        本文标题:samtools,bedtools

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