diff --git a/tests/utils.py b/tests/utils.py index 416bb13..fc93c50 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -1,6 +1,7 @@ from utils.tau import tau from utils.entropy import entropy from utils.jaccard import jaccard +from utils.sequence import translate from unittest import TestCase @@ -18,3 +19,16 @@ def test_jaccard(self): self.assertEqual(jaccard('ab', 'bc'), 1/3) self.assertEqual(jaccard('ab', 'cd'), 0) self.assertEqual(jaccard('ab', 'ab'), 1) + + def test_sequence(self): + sequence = "ATGTCAGAATTATTACAGTTGCCTCCAGGTTTCCGATTTCACCCTACCGATGAAGAGCTTGTCATGCACTATCTCTGCCGCAAATGTGCCTCTCAGTCCATCGCCGTTCCGATCATCGCTGAGATCGATCTCTACAAATACGATCCATGGGAGCTTCCTGGTTTAGCCTTGTATGGTGAGAAGGAATGGTACTTCTTCTCTCCCAGGGACAGAAAATATCCCAACGGTTCGCGTCCTAACCGGTCCGCTGGTTCTGGTTACTGGAAAGCTACCGGAGCTGATAAACCGATCGGACTACCTAAACCGGTCGGAATTAAGAAAGCTCTTGTTTTCTACGCCGGCAAAGCTCCAAAGGGAGAGAAAACCAATTGGATCATGCACGAGTACCGTCTCGCCGACGTTGACCGGTCCGTTCGCAAGAAGAAGAATAGTCTCAGGCTGGATGATTGGGTTCTCTGCCGGATTTACAACAAAAAAGGAGCTACCGAGAGGCGGGGACCACCGCCTCCGGTTGTTTACGGCGACGAAATCATGGAGGAGAAGCCGAAGGTGACGGAGATGGTTATGCCTCCGCCGCCGCAACAGACAAGTGAGTTCGCGTATTTCGACACGTCGGATTCGGTGCCGAAGCTGCATACTACGGATTCGAGTTGCTCGGAGCAGGTGGTGTCGCCGGAGTTCACGAGCGAGGTTCAGAGCGAGCCCAAGTGGAAAGATTGGTCGGCCGTAAGTAATGACAATAACAATACCCTTGATTTTGGGTTTAATTACATTGATGCCACCGTGGATAACGCGTTTGGAGGAGGAGGGAGTAGTAATCAGATGTTTCCGCTACAGGATATGTTCATGTACATGCAGAAGCCTTACTAG" + translation = "MSELLQLPPGFRFHPTDEELVMHYLCRKCASQSIAVPIIAEIDLYKYDPWELPGLALYGEKEWYFFSPRDRKYPNGSRPNRSAGSGYWKATGADKPIGLPKPVGIKKALVFYAGKAPKGEKTNWIMHEYRLADVDRSVRKKKNSLRLDDWVLCRIYNKKGATERRGPPPPVVYGDEIMEEKPKVTEMVMPPPPQQTSEFAYFDTSDSVPKLHTTDSSCSEQVVSPEFTSEVQSEPKWKDWSAVSNDNNNTLDFGFNYIDATVDNAFGGGGSSNQMFPLQDMFMYMQKPY*" + + self.assertEqual(translate(sequence), translation) + self.assertEqual(translate(sequence, trim=False), translation) + self.assertNotEqual(translate("AAA" + sequence, trim=False), translation) + self.assertEqual(translate("AAA" + sequence, trim=True), translation) + self.assertNotEqual(translate(sequence+"AAA", return_on_stop=False), translation) + self.assertEqual(translate(sequence+"AAA", return_on_stop=False), translation + "K") + self.assertEqual(translate(sequence+"AAA", return_on_stop=True), translation) + self.assertEqual(translate("ATGSEB"), "MX") diff --git a/utils/sequence.py b/utils/sequence.py index 1620ade..e55855e 100644 --- a/utils/sequence.py +++ b/utils/sequence.py @@ -36,7 +36,7 @@ def translate(sequence, trim=True, return_on_stop=True): if trim: start = sequence.find('ATG') - trimmed_sequence[start:] + trimmed_sequence = trimmed_sequence[start:] codons = [trimmed_sequence[i:i+3] for i in range(0, len(trimmed_sequence), 3)]