序列比对:动态规划速度慢但可靠

Explore workouts, and achieving AB Data
Post Reply
Mitu9900
Posts: 223
Joined: Thu Dec 26, 2024 9:17 am

序列比对:动态规划速度慢但可靠

Post by Mitu9900 »

人们已经找到了很多解决序列相似性搜索问题的方法。本质上,它们都试图做一件事:给定一组查询序列(任何性质),找到最大数量的相似或相同单元(通常是氨基酸或碱基)相互对齐的方式。

动态规划是最早开发的序列比对方法,在质量方面仍然是黄金标准。然而,从计算角度来看,动态规划并不是最优的,只有当比对涉及两个、三个或四个序列时,才推荐使用动态规划方法。换句话说,这些方法一点也不可扩展。常用的序列比对动态规划算法是 Needleman-Wunsch 算法和 Smith-Waterman 算法,它们开发于 20 世纪 70 年代和 80 年代。

标准动态规划方法首先会构建所有输入序列对的比对空间,创建一对一比对的集合,然后将其合并为 n 级比对网格,其中 n 是查询序列的数量。动态规划虽然费力,但其优点是总能找到最优解。

与下文讨论的启发式方法相比,动态规划方法不会“偷工减料”,因此在需要比对的序列数量较少时,动态规划方法会成为首选方法。动态规划的另一个优点是,它可以轻松地从开源 Python 工具集合(例如 BioPython ( https://biopython.org/ ))中应用,其中包含用 柬埔寨手机数据 于简单成对序列比对的 Bio.pairwise2 模块,以及其他用于更复杂比对的模块。


序列比对:启发式方法虽然快速,但会偷工减料
启发式算法被定义为解决数据问题的实用方法,但不能保证获得最佳结果。换句话说:启发式算法产生的比对可能不是代表最相似序列的比对。虽然这听起来像是一个严重的警告——毕竟,谁想要次优解决方案?——但它们的实用性使启发式算法与动态规划方法相比计算量要小得多。

事实上,在解决复杂的多重比对问题时,启发式方法是唯一可行的解​​决方案,因为对于同一问题,经典的动态规划方法需要几天或几周的计算时间。

第一个流行的启发式序列比对方法是 FASTA,开发于 1985 年,随后在 20 世纪 90 年代又出现了 BLAST。这些启发式方法的主要成就是使用单词方法或 k 元组。在这些方法中,“单词”是从序列查询中获取的短序列,并与其他序列的数据库进行匹配。通过使用这些单词进行初始比对,可以抵消序列,创建相对位置比对,从而大大加快序列比对方法的其余部分。
Post Reply