예제 #1
0
    def test_should_raise_exception_if_msa_contains_only_one_sequence(self):
        # setup
        sequence = MSA(['AA'])

        # check
        with self.assertRaises(Exception):
            Score(sequence)
예제 #2
0
    def test_should_raise_exception_if_sequences_have_different_lengths(self):
        # setup
        sequences = MSA(['AA', 'A', 'AA'])

        # check
        with self.assertRaises(Exception):
            Score(sequences)
예제 #3
0
    def test_most_frequent_A_with_BLOSUM62(self):
        # setup
        sequences = MSA(['AA', 'AC', 'AC'])

        # results
        result = Star(sequences, Blosum62()).compute()
        expected = 30

        # check
        self.assertEqual(expected, result)
예제 #4
0
    def test_get_score_of_column_with_only_gaps(self):
        # setup
        column = MSA(['-', '-', '-'])

        # results
        result = SumOfPairs(column).get_column_score(0)
        expected = 3

        # check
        self.assertEqual(expected, result)
예제 #5
0
    def test_only_gaps_with_BLOSUM62(self):
        # setup
        sequences = MSA(['---', '---'])

        # results
        result = SumOfPairs(sequences, Blosum62()).compute()
        expected = 3

        # check
        self.assertEqual(expected, result)
예제 #6
0
    def test_basic_score_with_gaps_BLOSUM62(self):
        # setup
        sequences = MSA(['FA', 'A-'])

        # results
        result = SumOfPairs(sequences, Blosum62()).compute()
        expected = -10

        # check
        self.assertEqual(expected, result)
예제 #7
0
    def test_percentage_of_non_gaps_0(self):
        # setup
        sequences = MSA(["----", "----"])

        # results
        result = PercentageOfNonGaps(sequences).compute()
        expected = 0.0

        # check
        self.assertEqual(result, expected)
예제 #8
0
    def test_basic_score_of_12_with_PAM250(self):
        # setup
        sequences = MSA(['AA', 'AA', 'AA'])

        # results
        result = SumOfPairs(sequences, PAM250()).compute()
        expected = 12

        # check
        self.assertEqual(expected, result)
예제 #9
0
    def test_percentage_of_totally_conserved_columns_0(self):
        # setup
        sequences = MSA(["ABCD", "DCBA"])

        # results
        result = PercentageOfTotallyConservedColumns(sequences).compute()
        expected = 0.0

        # check
        self.assertEqual(result, expected)
예제 #10
0
    def test_compute_of_two_gapped_seqs(self):
        # setup
        sequences = MSA(["-----", "-----"])

        # results
        expected = 0
        result = Entropy(sequences).compute()

        # check
        self.assertEqual(expected, result)
예제 #11
0
    def test_compute_of_three_seqs_with_gaps(self):
        # setup
        sequences = MSA(["A-TGCAAT-G", "-CT-CCAT-A", "-TTAT-CTG-"])

        # results
        expected = -6.94
        result = round(Entropy(sequences).compute(), 2)

        # check
        self.assertEqual(expected, result)
예제 #12
0
    def test_compute_of_four_seqs_with_no_gaps(self):
        # setup
        sequences = MSA(["ACGT", "ACGT", "TGCA", "TGCA"])

        # results
        expected = -2.77
        result = round(Entropy(sequences).compute(), 2)

        # check
        self.assertEqual(expected, result)
예제 #13
0
    def test_most_frequent_gaps_with_PAM250(self):
        # setup
        sequences = MSA(['AA', 'A-', 'AC'])

        # results
        result = Star(sequences, PAM250()).compute()
        expected = -2

        # check
        self.assertEqual(expected, result)
예제 #14
0
    def test_get_score_of_an_alignment(self):
        # setup
        sequences = \
            MSA(['---GKGDPKKPRGKMSSYAFFVQTSREEHKKKHPDASVNFSEFSKKCSERWKTMSAKEKGKFEDMAKADKARYEREMKTYI------PPKGE----',
             '------MQDRVKRPMNAFIVWSRDQRRKMALENPRMR-NS-EISKQLGYQWKMLTEAEKWPFFQEAQKLQAMHREKYPNYKYRP---RRKAKMLPK',
             'MKKLKKHPDFPKKPLTPYFRFFMEKRAKYAKLHPEMS-NL-DLTKILSKKYKELPEKKKMKYIQDFQREKQEFERNLARFREDH---PDLIQNAKK',
             '--------MHIKKPLNAFMLYMKEMRANVVAES-TLK-ESAAINQILGRRWHALSREEQAKYYELARKERQLHMQLYPGWSARDNYGKKKKRKREK'])

        # results
        result = SumOfPairs(sequences, PAM250()).compute()
        expected = 24

        # check
        self.assertEqual(expected, result)
예제 #15
0
파일: runner.py 프로젝트: DongCai008/pyMSA
def run_all_scores(sequences: list) -> None:
    aligned_sequences = list(pair[1] for pair in sequences)
    sequences_id = list(pair[0] for pair in sequences)

    msa = MSA(aligned_sequences, sequences_id)
    print_alignment(msa)

    # Percentage of non-gaps and totally conserved columns
    non_gaps = PercentageOfNonGaps(msa)
    totally_conserved_columns = PercentageOfTotallyConservedColumns(msa)

    percentage = non_gaps.compute()
    print("Percentage of non-gaps: {0} %".format(percentage))

    conserved = totally_conserved_columns.compute()
    print("Percentage of totally conserved columns: {0}".format(conserved))

    # Entropy
    value = Entropy(msa).compute()
    print("Entropy score: {0}".format(value))

    # Sum of pairs
    value = SumOfPairs(msa, Blosum62()).compute()
    print("Sum of Pairs score (Blosum62): {0}".format(value))

    value = SumOfPairs(msa, PAM250()).compute()
    print("Sum of Pairs score (PAM250): {0}".format(value))

    value = SumOfPairs(msa, FileMatrix('PAM380.txt')).compute()
    print("Sum of Pairs score (PAM380): {0}".format(value))

    # Star
    value = Star(msa, Blosum62()).compute()
    print("Star score (Blosum62): {0}".format(value))

    value = Star(msa, PAM250()).compute()
    print("Star score (PAM250): {0}".format(value))