def test1(self):
        #                    x  x  x  c  d  e
        filled_matrix = [
            [0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0],  # a
            [0, 0, 0, 0, 0, 0, 0],  # b
            [0, 0, 0, 0, 2, 1, 0],  # c
            [0, 2, 2, 2, 1, 1, 0],  # x
            [0, 1, 1, 1, 1, 3, 2],  # d
            [0, 0, 0, 0, 0, 2, 5],  # e
            [0, 2, 2, 2, 1, 1, 4]
        ]  # x

        list1 = "abcxdex"
        list2 = "xxxcde"

        alignment = SmithWaterman.do_alignment(list1, list2, filled_matrix)

        self.assertEqual(
            alignment,
            [['c', 'x', 'd', 'e'], ['|', ' ', '|', '|'], ['c', '-', 'd', 'e']])
    def test2(self):
        #                    T  A  C  G  G  G  T  A  T
        filled_matrix = [
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 1, 1, 1, 0, 0, 0],  # G
            [0, 0, 0, 0, 1, 2, 2, 1, 0, 0],  # G
            [0, 0, 1, 0, 0, 1, 1, 1, 2, 1],  # A
            [0, 0, 0, 2, 1, 0, 0, 0, 1, 1],  # C
            [0, 0, 0, 1, 3, 2, 1, 0, 0, 0],  # G
            [0, 1, 0, 0, 2, 2, 1, 2, 1, 1],  # T
            [0, 0, 2, 1, 1, 1, 1, 1, 3, 2],  # A
            [0, 0, 1, 3, 2, 1, 0, 0, 2, 2],  # C
            [0, 0, 0, 2, 4, 3, 2, 1, 1, 1]
        ]  # G
        list1 = "GGACGTACG"
        list2 = "TACGGGTAT"

        alignment = SmithWaterman.do_alignment(list1, list2, filled_matrix)

        self.assertEqual(
            alignment,
            [['T', 'A', 'C', 'G'], ['|', '|', '|', '|'], ['T', 'A', 'C', 'G']])
    def test3(self):
        #                    G  G  A  C  A  A  A  C  G
        filled_matrix = [
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 1, 1, 0, 0, 0, 0, 0, 0, 0],  # G
            [0, 1, 2, 1, 0, 0, 0, 0, 0, 1],  # G
            [0, 0, 1, 3, 2, 1, 1, 1, 0, 0],  # A
            [0, 0, 0, 2, 4, 3, 2, 1, 1, 0],  # C
            [0, 1, 1, 1, 3, 3, 2, 1, 0, 1],  # G
            [0, 0, 0, 0, 2, 2, 2, 1, 0, 0],  # T
            [0, 0, 0, 1, 1, 3, 3, 3, 2, 1],  # A
            [0, 0, 0, 0, 1, 2, 2, 2, 4, 3],  # C
            [0, 1, 1, 0, 0, 1, 1, 1, 3, 5]
        ]  # G
        list1 = "GGACGTACG"
        list2 = "GGACAAACG"

        alignment = SmithWaterman.do_alignment(list1, list2, filled_matrix)

        self.assertEqual(alignment,
                         [['G', 'G', 'A', 'C', 'G', 'T', 'A', 'C', 'G'],
                          ['|', '|', '|', '|', '.', '.', '|', '|', '|'],
                          ['G', 'G', 'A', 'C', 'A', 'A', 'A', 'C', 'G']])
Exemple #4
0
import SmithWaterman
import AlignmentTools

file1 = SmithWaterman.get_file_data("Enter first file name: ")
file2 = SmithWaterman.get_file_data("Enter second file name: ")

file1list = list(file1)
file2list = list(file2)

file1len = len(file1list)
file2len = len(file2list)

matrix = SmithWaterman.create_matrix(file1len, file2len)

AlignmentTools.fill_matrix(file1list, file2list, matrix)

alignment = SmithWaterman.do_alignment(file1list, file2list, matrix)

print(''.join(alignment[0]))
print(''.join(alignment[1]))
print(''.join(alignment[2]))