后缀树算法

后缀树算法

后缀树算法在现代的比对工具中也是非常常见的一类比对算法,常用的STAR软件利用的就是后缀树算法,而bowtie,BWA等比对软件用的是BWT算法,这就是为什么STAR的比对速度要比其他二代软件快,索引比其他二代软件大的原因

构建后缀树算法

构建后缀树算法的流程类似于BWT算法,比方说我的 ref 序列为:ATCATGATC$,类似于BWT算法依次向前移位,并去掉第一个元素

上表的第一行表示位置信息

并且根据你的ref序列的特点来构建树

image.png

其中黑色点代表结点,[3,9]表示位置信息,代表上表中3到9号位置的两个元素,其他的以此类推

对于ref:ATCATGATC$
开头第一个元素无非是A,T,C,G四种元素,那么由0号节点出发,分为四类

  1. AT,由于ref中A与T总是相连的,所以划归到一起
  2. T,由于T后面接着 C 或者 G,所以单独拿出来
  3. C,由于C后面接着 A 或 $,所以单独拿出来
  4. G,由于ref中只有GATC$,所以只有这一种类型

倘若现在有一条reads:ATCA,首先走结点0->1->6->12,并储存位置信息,这就比对完成了,即比对到位置信息为[0,3]

又比如有一条reads:CATGA,首先走结点0->3->10,储存位置信息,这就比对完成了,即比对到位置信息为[2,6]

再如有一条reads:ATC,可以走结点0->1->6,即比对到位置信息为[0,2];也可以走结点0->16->17,即比对到位置信息为[6,9]

参考:孟叔live

你可能感兴趣的:(后缀树算法)