生物序列局部比对之Blast算法
来源:互联网 发布:网络教学平台哪个好 编辑:程序博客网 时间:2024/06/08 05:11
生物序列局部比对之Blast算法
算法基本原理:Blast算法是1990年由Altschul等人提出的两序列局部比对算法,采用了一种短片段匹配算法和一种有效的统计模型来找出目的序列和数据库之间的最佳局部比对效果。Blast算法是一种基于局部序列比对的序列比对算法。广泛被使用在蛋白质DNA序列的分析问题中,在其他序列相似性比对中也有应用。传统的基于动态规划的局部性比对性算法采用的是精确的序列比对,虽然有着较好的比较结果,但是对于长度为n和m的两个待比较序列,局部性比对算法的时间复杂度有O(mn),这个时间复杂度对于序列匹配来说代价太大。Blast是一种在局部性比对基本上一种近似比对的算法。它在保持较高精度的情况下可以大大减少程序运行的时间,是大规模序列对比问题一个速度和精确性都可以接受的一个解决方法。它的基本思想是:通过产生数量更少的但质量更好的增强点来提高匹配的精确度。首先采用哈希法对查询序列以碱基的位置为索引建立哈希表,然后将查询序列和数据库中所有序列联配,找出精确匹配的“种子”,以“种子”为中心,使用动态规划法向两边扩展成更长的联配,最后在一定精度范围内选取符合条件的联配按序输出。得分最高的联配序列就是最有比对序列。
其算法过程可简单描述为:
1)
2)
3)
算法流程详解
1.
2.
A
G
C
T
A
2
-5
-7
-7
G
-5
2
-7
-7
C
-7
-7
2
-5
T
-7
-7
-5
2
字母对打分表
3.
4.(优化步骤)在实际运行中,算法最大的消耗在步骤extend上面,减少extend的方法就是减少seed的数目。对于选出的seed,可以将距离相近的合并为一个seed,这样就可以减少大量extend的计算量。
5.
6.
- 生物序列局部比对之Blast算法
- 生物序列比对与计算智能
- 序列比对算法
- GO 和 KEGG 注释之前,为什么要先进行序列比对(BLAST)?
- 生物信息之多序列比对,进化树分析,保守位点分析
- 序列比对:Needleman-Wunsch 算法
- 序列比对算法-计算生物学
- 动态编程之序列比对:Needleman-Wunsch 算法和Smith-Waterman算法
- 生物信息_Blast比对_blast
- Blat_类BLAST 比对工具 & GNU Parallel
- 用动态规划法求解生物信息学中DNA序列比对的问题 (交叉学科应用实验)
- 序列比对
- LSH(局部敏感哈希算法)实现文本的相似性比对
- 多重序列比对查看
- Android 序列化比对
- 2序列比对问题
- 图像比对算法
- BLAST-动态规划算法
- initrd
- Stars -树状数组
- oracle 出生日期计算年龄
- 推荐一款很吊的思维导图软件(如果你经常感到思维发散,头绪繁多,可以试试脑图软件。)
- 带头结点的双端链表
- 生物序列局部比对之Blast算法
- ListView适配器中ViewHolder的超级简洁写法
- js实现无缝滚动
- C/C++生成二叉树并搜索
- VFS文件系统结构分析
- 文章标题尊重原创,只有原创和翻译文章才能推荐到首页
- CMFCToolBar的简单使用
- Java中线程等待(同步)的五种方法
- astyle