全局序列比对中的回溯

问题描述 投票:0回答:1

我正面临追溯全局序列比对的问题。我的第一个序列是ATTGCGCGCAT,第二个序列是ATGCTTAACCA。回溯结果应为A T T G C _ _ _ G C G C A T A _ T G C T A A C _ C A _但是我使用的代码无法输出该结果。

我曾尝试浏览谷歌以供参考,但很少引用用Java编写的回溯。

private static void traceback(String seqOne, String seqTwo,int[][]matrix) {


    StringBuilder s1 = new StringBuilder(), s2 = new StringBuilder();

    for ( int i = seqOne.length(),  j = seqTwo.length(); i > 0 && j > 0; ) {
        if (i > 0 && j > 0 && (matrix[i][j] == matrix[i - 1][j - 1]) ) {
            s1.append(seqOne.charAt(--i));
            s2.append(seqTwo.charAt(--j));
        } else if ( i > 0 && (matrix[i][j] == matrix[i - 1][j] + 1) ) {
            s1.append(seqOne.charAt(--i));
            s2.append("-");
        } else if ( j > 0 && (matrix[i][j] == matrix[i][j - 1] + 1) ) {
            s2.append(seqTwo.charAt(--j));
            s1.append("-");
        }
    }

    System.out.println();
    System.out.println(s1.reverse().toString());
    System.out.println(s2.reverse().toString());

}
java dynamic-programming bioinformatics
1个回答
1
投票

这是我使用在线刺激器进行演示的答案

traceback

© www.soinside.com 2019 - 2024. All rights reserved.