生物信息FASTA算法
FASTA程序是第一个广泛使用的数据库相似性程序。
目的:找到s串和t串相似度最高的序列
将序列分成k个大小的短序列片段,成为k-tuple
如序列ACGT,按k=2分割,将有AC,CG,GT三个k元组。
算法设置有两个数据结构表:
1、查找表
存放s串各个K元组的索引位置。
如序列ACGAC
k=1时,查找表为:
A 1 4
C 2 5
G 3
2、位移表
记录t串k元组和s串k元组的位移。
如s:ACA t:CAC
查找表为
A:1 3
C:2
位移表为
C_1 -1 (t串第一个位置的C和查找表中C的位移为-1)
A_2 +1
C_3 +1
3、统计最大数目的位移
如上例中最大数量位移为 +1 ,意为t串移动+1时,有最大数量字符能与s串匹配。
最后打印所有最大位移下,s与t串相同字符串的序列