【问题标题】:Traceback in DP Needleman-Wunsch/Smith-WatermanDP Needleman-Wunsch/Smith-Waterman 中的追溯
【发布时间】:2014-03-04 16:45:36
【问题描述】:

在 Needleman-Wunsch 和 Smith-Waterman 中,实现回溯的最佳方式是什么?我们是否通常保留两个矩阵,一个与每个条目的前任?也就是说,每个条目将是 UP、DIAG 或 LEFT。还是有更简单、更节省空间的方法来进行回溯?我了解算法以及如何获得最高分,但不了解追溯。谢谢!

【问题讨论】:

    标签: bioinformatics


    【解决方案1】:

    使用 2 个矩阵会起作用,但这是一种天真的方法,尤其是在大小或内存是一个问题的情况下。问题是 2 个单独的矩阵空间效率低。

    由于 N-W 中的回溯只有 3 个可能的方向,而 S-W 中只有 4 个可能的方向(您需要添加 STOP),您可以将每个方向存储为 2 位。如果您的分数足够小,您可以将相应矩阵单元格的两个值打包到一个矩阵的单个单元格中,然后进行位掩码以获得分数和回溯方向。

    或者,如果您仍然想要 2 个矩阵,则没有理由为回溯矩阵占用这么多空间。您仍然可以打包回溯矩阵,以便 4 个回溯位置位于字节矩阵的单个单元格中。 (您必须进行类似的位掩码)。

    【讨论】:

    • 我通过存储值来自哪里的数组索引来实现它。
    【解决方案2】:

    我的理解是肯定的,你确实需要 2 个矩阵。

    然后你从右下角往回追溯。见http://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm

    【讨论】:

    • 您在全局对齐中从右下角回溯,例如 Needleman–Wunsch。您可以从 Smith-Waterman 矩阵中的最大值追溯。
    猜你喜欢
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    相关资源
    最近更新 更多