1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
# This code is part of the Biopython distribution and governed by its
# license. Please see the LICENSE file that should have been included
# as part of this package.
"""Tests of the transcription and translation methods of Seq objects."""
import unittest
from Bio import Seq
class TestTranscriptionTranslation(unittest.TestCase):
def test_transcription(self):
s = "ATA"
dna = Seq.Seq(s)
rna = dna.transcribe()
self.assertEqual(rna, "AUA")
s = "GAAAATTCATTTTCTTTGGACTTTCTCTGAAATCCGAGTCCTAGGAAAGATGCGTGAGATTCTTCATATT"
dna = Seq.Seq(s)
rna = dna.transcribe()
self.assertEqual(
rna,
"GAAAAUUCAUUUUCUUUGGACUUUCUCUGAAAUCCGAGUCCUAGGAAAGAUGCGUGAGAUUCUUCAUAUU",
)
s = "GAAAAUUCAUUUUCUUUGGACUUUCUCUGAAAUCCGAGUCCUAGGAAAGAUGCGUGAGAUUCUUCAUAUU"
rna = Seq.Seq(s)
dna = rna.back_transcribe()
self.assertEqual(
dna,
"GAAAATTCATTTTCTTTGGACTTTCTCTGAAATCCGAGTCCTAGGAAAGATGCGTGAGATTCTTCATATT",
)
def test_translation(self):
s = ""
dna = Seq.Seq(s)
protein = dna.translate(to_stop=True)
self.assertEqual(protein, "")
s = "TAA"
dna = Seq.Seq(s)
protein = dna.translate(to_stop=True)
self.assertEqual(protein, "")
s = "GAAAATTCATTTTCTTTGGACTTTCTCTGAAATCCGAGTCCTAGGAAAGATGCGTGAGATTCTTCA"
dna = Seq.Seq(s)
protein = dna.translate(to_stop=True)
self.assertEqual(protein, "ENSFSLDFL")
s = "GAA"
dna = Seq.Seq(s)
protein = dna.translate(15, to_stop=True)
self.assertEqual(protein, "E")
s = "ATA"
dna = Seq.Seq(s)
protein = dna.translate("Vertebrate Mitochondrial", to_stop=True)
self.assertEqual(protein, "M")
s = "GAAAATTCATTTTCTTTGGACTTTCTCTGAAATCCGAGTCCTAGGAAAGATGCGTGAGATTCTTCATAT"
dna = Seq.Seq(s)
protein = dna.translate("SGC8", to_stop=True)
self.assertEqual(protein, "ENSFSLDFLWNPSPSNDAWDSSY")
def test_dna_rna_translation(self):
s = "TCAAAAAGGTGCATCTAGATG"
dna = Seq.Seq(s)
protein = dna.translate(to_stop=True)
self.assertEqual(protein, "SKRCI")
gapped_protein = dna.translate()
self.assertEqual(gapped_protein, "SKRCI*M")
# The table used here has "AGG" as a stop codon:
p2 = dna.translate(table=2, to_stop=True)
self.assertEqual(p2, "SK")
p2 = dna.translate(table=2)
self.assertEqual(p2, "SK*CI*M")
p2 = dna.translate(table=2, stop_symbol="+")
self.assertEqual(p2, "SK+CI+M")
r = s.replace("T", "U")
rna = Seq.Seq(r)
protein = rna.translate(to_stop=True)
self.assertEqual(protein, "SKRCI")
gapped_protein = rna.translate()
self.assertEqual(gapped_protein, "SKRCI*M")
def test_ambiguous(self):
s = "RATGATTARAATYTA"
dna = Seq.Seq(s)
protein = dna.translate("Vertebrate Mitochondrial")
self.assertEqual(protein, "BD*NL")
stop_protein = dna.translate("SGC1", to_stop=True)
self.assertEqual(stop_protein, "BD")
if __name__ == "__main__":
runner = unittest.TextTestRunner(verbosity=2)
unittest.main(testRunner=runner)
|