Я столкнулся с проблемой отслеживания глобального выравнивания последовательности.Моя первая последовательность - ATTGCGCGCAT, а вторая - ATGCTTAACCA.Результат трассировки должен быть ATTGC _ _ _ GCGCAT A _ TGCTTAAC _ CA _ Но код, который я использую, не может вывести этот результат.
Я пытался просмотреть Google для справки, но мало ссылок на трассировкунаписано на 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());
}