zoukankan      html  css  js  c++  java
  • HISAT,sTRINGTIE,ballgown三款RNA-seq信息分析软件

    HISAT,sTRINGTIE,ballgown三款RNA-seq信息分析软件

    Bowtie 里的FM-index 简介

    原文链接:http://m.blog.csdn.net/blog/stormlovetao/7048481

    最近看新发表的几篇RNA-seq比对,组装的软件,发现HISAT里面也用到了FM-index这个算法,所以就找了一下,原博文链接如上所示,说的很是透彻

    另外StringTie用到的算法叫做流神经网络,我发现在chinablog上也有一篇文章详细的介绍,这里就转帖出来

    下面是我对这几篇文章的一个粗略的总结,有兴趣的可以看一下,不能保证总结的就对或者完整,权当是一个参考吧,如果哪里错了,欢迎指出错误指出
    ##############################################
    HISAT:
    1:index算法基于BWT和以BWT为基础的FM index: FM 算法是以BWT为基础,在计算的过程中加了两个参数,一个是OCC,
    Occ[c,r]表示在BWT(T)中第r行之前出现字符c的个数,因为如果把整个基因组存进去,每次都要重头数一遍,消耗量太大,所以是以几百行为一组为一个check point,这样内存就小了,也方便检索;另外一个是SA, 记录第r行在参考基因组中是什么位置,这个过程是在BWT操作中实现的
    2:建立index的方式:全基因组FM index和局部index(特色,新的建索引库策略)核心算法会用到tophat3上
    HISAT在基因组范围内有48000个局部FM index
    每个长度64k,通过测试数据和真实数据的比较,发现这是一个最快的软件
    HISAT的基本设计原理:
    HISAT利用bowtie2来建立很多低水平结果的FM index,这些index包含两种类型:1:全基因组index;2:大量的小FMindex,每个代表64k,也因为建了很多小的index,所以总的内存使用情况也较低
    3 :100bp的reads至少跨越两个exon的占34.5%,分为三类:1:每个外显子至少16bp(25.1);每个外显子8-15bp(5.1),每个外显子1-7bp(4.2);
    另外跨越三个的3.1%。针对每种reads都有相应的比对策略
    基本的比对策略的思想是先在众多index中找,如果比对上多个地方,就往两边延伸;
    4:基本的性能对比
    速度:110,193条reads/s, tophat 1,954
    利用模拟数据正确比对率(99.2%),tophat2(97.4)
    在跨越2个exon,只有1-7bp的reads来说,
      uniq比对率HISAT(94.4)tophat2(77.8)
    另外敏感度和准确性
    HISAT(97.3,94.8) Tophat2(90.6,82.6)
    100bp,20M的reads
    用时26.7min,tophat2 1170分钟
     
    #############################
    1:StringTie和Cufflinks算法对比
    cufflinks parsimony算法  (简约算法):生成最少的亚型
    说这种算法没有考虑转录丰度,在isoforms方面算的不准。其在算表达量的时候,按照图上的说法是用了最大似然冗余算法。
    stringTie先将reads分为不同的类,然后再针对每个类的reads生成一个拼接图来确定转录本,之后每个转录本产生一个流神经网络的最大流算法来评估表达水平
    这个算法的意思对应过来就是在一个基因处的若干个转录本,如何分配reads的数目才能让每个转录本的数目都处在最多的状态,发的链接上是用了一个工厂的例子。
    这个算法是求解最优化的,在这篇文章上也是第一次用。
    2:在RNA组装方面优劣势对比
    在组装方面StringTie具有一些优势,在低表达的部分,阈值过滤5%的StringTie比阈值过滤10%的准确度和敏感度还要高(这里的准确度和敏感度是把原始数据随机抽取出来一部分数据,看看这两组随机抽出来的数据的重合度如何和ROC是一个事情)
    关于组装效果,StringTie要好于cufflinks,同时他们又远远好于其他软件,就组装错误而言,文章上列举了一个例子,即附表四,cufflinks预测出来的FPKM值可以到293509.68,而StringTie最大是935,这个问题,我们在项目处理中也遇到过
    3:性能对比
    时间上来说:StringTie 30min      cufflink 81min 其他更多
    真实数据测试35-76分钟,比其他快3倍
    内存比cufflink少一半
    找出来的基因中,cufflink找出来的70%在StringTie中有重合,相比于cufflink,StringTie在基因重构方面对三种类型的基因更有效,分别是:低冗余,高exon数目,和多重转录本。
    按照作者的说法,StringTie之所以能取得好的效果,是因为模型中有个求最有的过程;其可以通过
    转录组的每个组装平衡覆盖度,算法自己可以通过合并覆盖到的深度来限制组装。
    作者倒是希望通过StringTie来取代cufflink
     
    ########################################
     
    关于tablemaker和ballgown
    tablemaker的设计是为了处理cufflinks和cuffmerge的结果,一遍后面用ballgown处理,不过按照文章上说的ballgown也可以直接输入,可以是针对StringTie的结果
    ballgown是一个R脚本,用来分析差异结果的,差异分布的结果是基于F-test来检测的,和我们以前用的有些不同;
    就测试内存而言,cuffdiff用148G6 9个小时,而ballgown用18秒8G,
     
    就差异结果而言,cuffdiff更保守一些,文章中用了一个例子,就是男性Y染色体的表达量数据和女性落到Y染色体的表达量数据对比,ballgown可以起到很好的效果,而cuffdiff找到的差异基因少。
     
    所有这些软件的开发目的就是为了能在笔记本上跑开生物程序
  • 相关阅读:
    使用Cmake生成makefile
    c++模板类(一)理解编译器的编译模板过程
    C++ 模板
    c++/c 获取cpp文件行号跟文件名
    java获取代码调用位置信息
    android获取手机ip
    Cocos2d-html5游戏开发,常用工具集合
    cocos2d-html5基础
    Cocos2d-x-html5之HelloWorld深入分析与调试
    基于ndk_r7_windows编译实现ndk项目,不需要cygwin
  • 原文地址:https://www.cnblogs.com/wangprince2017/p/9937233.html
Copyright © 2011-2022 走看看