def test_should_raise_exception_if_msa_contains_only_one_sequence(self): # setup sequence = MSA(['AA']) # check with self.assertRaises(Exception): Score(sequence)
def test_should_raise_exception_if_sequences_have_different_lengths(self): # setup sequences = MSA(['AA', 'A', 'AA']) # check with self.assertRaises(Exception): Score(sequences)
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)
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)
def test_only_gaps_with_BLOSUM62(self): # setup sequences = MSA(['---', '---']) # results result = SumOfPairs(sequences, Blosum62()).compute() expected = 3 # check self.assertEqual(expected, result)
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)
def test_percentage_of_non_gaps_0(self): # setup sequences = MSA(["----", "----"]) # results result = PercentageOfNonGaps(sequences).compute() expected = 0.0 # check self.assertEqual(result, expected)
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)
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)
def test_compute_of_two_gapped_seqs(self): # setup sequences = MSA(["-----", "-----"]) # results expected = 0 result = Entropy(sequences).compute() # check self.assertEqual(expected, result)
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)
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)
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)
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)
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))