• De novo RNA-Seq Assembly Using De Bruijn Graphs


    De novo RNA-Seq Assembly Using De Bruijn Graphs
     2017-06-12 09:42:47     59     0     0

    在说基因组的拼接之前,可以考虑如下的一个问题:

    假设有一摞报纸被炸成了碎片,如何利用这些碎片拼接成一份完整的信息了解那天发生的大事?

    这个问题的难点在于:必定有一部分的信息因为爆炸而消失不见,也不能简单的把报纸粘起来,因为报纸不止一份,所以我们必须从大量包含了重复内容的碎片来重构一份完整的报纸。

    传统的基因租测序流程大致如下:

    取目标样本的一些组织(其中包含了数百万的细胞,具有相同的基因组) -> 将这些dna打断成一定长度的碎片(获得的片段成为read) -> 使用测序仪测得read的碱基序列

    所以,在我们要进行后续的分析前,我们需要先要将这些 reads 拼接以还原我们需要的基因组信息。

    与刚才的报纸问题相似,但是基因组拼接的增加了以下难点:

    • DNA是双链,所以对于一个给定的read 我们无法知道他是来于DNA的其中一链,还是来自于它的互补链
    • 测序仪测序错误
    • 获得的reads中可能没有覆盖到基因组的所有片段,所以无法重构该片段

    这个问题看起来很复杂,显得无从入手,我们可以将其分解为一个个的小问题,并且将其抽象成一个可以明确表达的问题,逐个解决。

    从k-mers重构字符串

    我们假设测序获得的read长度相等,而且没有测序错误,也不用考虑重复问题,就简单的考虑如何将 k-mers (k为read长度,)拼接成一个原始的字符串

    模拟k-mer的生成

    输入:整数k,字符串                           

    输出:k-mers(经过排序)                  

    在了解了k-mer是什么后,我们反过来利用k-mers来还原一个字符串

    很明显这个字符串应该以TAA开头,因为没有3-mers以TA结尾

    以AA开头的3-mers只有AAT

    而以AT开头的 3-mers只有ATG

    重复以上过程,我们还原了原始的字符串

    下面考虑一个更复杂的例子

    我们还是从TAA开始

    到此为止一切顺利,但是以ATG后面以TG开头的 3-mers 共有3个 TGC, TGG, TGT

    换成TGC后似乎已经还原了原始字符串,但是到此为止只使用了14个 3-mers,忽略了GGG,使得这个字符串比原始字符串少了一个字符G

    上面的例子中ATG重复了3次,导致了我们有三个选择TGC,TGG,TGT来延续ATG。当有数百万个reads时,因为重复带来的计算困难将更为严重。

    可以将基因组的拼接类比为Triazzle(Triazzle是一种拼图游戏,虽然只有16块拼图,但是并没有看起来那么容易)

    回到刚才的问题

  • 相关阅读:
    PHP中的NULL类型
    js中自定义事件,使用了jQuery
    chrome调试文章
    codeforces 633D
    hdu 1496 Equations
    poj 1286 Necklace of Beads
    poj 2154 Color
    poj 3270 Cow Sorting
    poj 1026 Cipher
    poj 2369 Permutations
  • 原文地址:https://www.cnblogs.com/wangprince2017/p/9937512.html
Copyright © 2020-2023  润新知