我在Burrows-Wheeler逆向变换中的逻辑出了什么问题?

时间:2016-08-03 19:23:16

标签: burrows-wheeler-transform

我正在研究Burrows-Wheeler转换,到目前为止,我可以从一些 Text 中获取它。现在是时候进行逆向过程了,这就是我遇到的麻烦。

这是输入:TTCCTAACG $ A.

这是我的思维方式:

1)计算输入中的As,Cs,Gs,Ts的数量:A:3,C:3,G:1,T:3

2)让我们写下Burrows-Wheeler转换的第一列和最后一栏。最后一栏是我们的输入。所以这就是:

      F    L

[0]   $    T
[1]   A    T
[2]   A    C
[3]   A    C
[4]   C    T
[5]   C    A
[6]   C    A
[7]   G    C
[8]   T    G
[9]   T    $
[10]  T    A

这是我的逻辑:

  1. 最初,输出='$'
  2. L [0] ='T'=> output ='T $'
  3. F中的第一个T具有索引8 =>我们需要L [8] => output ='GT $'
  4. F中的第一个G具有索引7 =>我们需要L [7] => output ='CGT $'
  5. F中的第一个C具有索引4 =>我们需要L [4] => output ='TCGT $'
  6. 这是我们的第二个T.F中的第二个T具有索引9,但是L [9] ='$',因此
    我们应该停下来。
  7. 显然,它还没有结束,这里出了点问题。你能解释一下吗?

2 个答案:

答案 0 :(得分:0)

我过于简单地理解这种方法。在步骤4中,由于C是第三个C,我们需要F [6]。

答案 1 :(得分:0)

最后一列看起来不对 - 它应该是符号前面的第一列。 您也不要使用BWT的特殊符号。这样就破坏了之前的规则,你就会打扰你的映射。

d