BWT算法在生物信息学中的应用(一)-算法的基本原理

BWT算法可以将原文本转换成相似文本,并且可以用其他技术进行压缩。
具体分为如下几个步骤:
编码:
1.循环移位
2.排序
3.输出最后一列,作为变换后的序列。
解码:
利用第一列和最后一列的关系,来还原出原始序列。

下面,以一段核酸序列作为例子,进行讲解,具体例子如下:
1. 假设原始序列如下图,我们在最后加入一个$表示结束位置。
这里写图片描述
2.进行循环移位,结果如下
BWT算法在生物信息学中的应用(一)-算法的基本原理_第1张图片
3.进行排序,结果如下
BWT算法在生物信息学中的应用(一)-算法的基本原理_第2张图片
4.最终,红色的序列L列作为我们的输出序列。后续数据压缩算法对L列进行压缩(这样的变换后,数据具有更好的压缩性能,具体原理,后续研究)。

解码:
解码规则按照下图中进行,具体有两个基本原则。
1.L列的第一个元素为原始序列的最后一个元素(因为$在该位置后面)。
2.F列中的每一个元素,都是其同一行中的L列的下一个元素。也就是L列是F列的前一个元素。
因此,我们可以根据L列得到倒序排列
L(0)[C] -> F(3)[C] -> L(3)[A] -> f(1)[A] -> L(1)[T] -> … …
最终得到序列 CATGCCA, 将该序列倒排过来,即得到初始序列ACCGTAC
BWT算法在生物信息学中的应用(一)-算法的基本原理_第3张图片

你可能感兴趣的:(数据结构与算法,生物信息)