Esempio n. 1
0
 def test_reverse_complement(self):
     self.assertEqual(self.b1.reverse_complement(), RNASequence("UGUAAUC"))
     self.assertEqual(self.b2.reverse_complement(),
                      RNASequence("GGUACCGGU"))
     self.assertRaises(BiologicalSequenceError, self.b3.reverse_complement)
     self.assertEqual(self.b4.reverse_complement(),
                      RNASequence("NVHDBMRSWYK"))
Esempio n. 2
0
    def setUp(self):
        """Initialize values to be used in tests
        """
        self.d1 = DNASequence('GATTACA', id="d1")
        self.d2 = DNASequence('TTG', id="d2")
        self.d1_lower = DNASequence('gattaca', id="d1")
        self.d2_lower = DNASequence('ttg', id="d2")
        self.r1 = RNASequence('GAUUACA', id="r1")
        self.r2 = RNASequence('UUG', id="r2")
        self.r3 = RNASequence('U-----UGCC--', id="r3")

        self.i1 = DNASequence('GATXACA', id="i1")

        self.seqs1 = [self.d1, self.d2]
        self.seqs1_lower = [self.d1_lower, self.d2_lower]
        self.seqs2 = [self.r1, self.r2, self.r3]
        self.seqs3 = self.seqs1 + self.seqs2

        self.seqs1_t = [('d1', 'GATTACA'), ('d2', 'TTG')]
        self.seqs2_t = [('r1', 'GAUUACA'), ('r2', 'UUG'),
                        ('r3', 'U-----UGCC--')]
        self.seqs3_t = self.seqs1_t + self.seqs2_t

        self.s1 = SequenceCollection(self.seqs1)
        self.s1_lower = SequenceCollection(self.seqs1_lower)
        self.s2 = SequenceCollection(self.seqs2)
        self.s3 = SequenceCollection(self.seqs3)
        self.empty = SequenceCollection([])

        self.invalid_s1 = SequenceCollection([self.i1])
Esempio n. 3
0
 def test_nondegenerates_gap_mixed_case(self):
     exp = [
         RNASequence('-A.a'),
         RNASequence('-A.c'),
         RNASequence('-C.a'),
         RNASequence('-C.c')
     ]
     obs = sorted(RNASequence('-M.m').nondegenerates(), key=str)
     self.assertEqual(obs, exp)
Esempio n. 4
0
 def test_nondegenerates_mixed_degens(self):
     exp = [
         RNASequence('AGC'),
         RNASequence('AGU'),
         RNASequence('GGC'),
         RNASequence('GGU')
     ]
     obs = sorted(RNASequence('RGY').nondegenerates(), key=str)
     self.assertEqual(obs, exp)
Esempio n. 5
0
    def setUp(self):
        self.d1 = DNASequence('..ACC-GTTGG..', id="d1")
        self.d2 = DNASequence('TTACCGGT-GGCC', id="d2")
        self.d3 = DNASequence('.-ACC-GTTGC--', id="d3")

        self.r1 = RNASequence('UUAU-', id="r1")
        self.r2 = RNASequence('ACGUU', id="r2")

        self.seqs1 = [self.d1, self.d2, self.d3]
        self.seqs2 = [self.r1, self.r2]

        self.seqs1_t = [('d1', '..ACC-GTTGG..'), ('d2', 'TTACCGGT-GGCC'),
                        ('d3', '.-ACC-GTTGC--')]
        self.seqs2_t = [('r1', 'UUAU-'), ('r2', 'ACGUU')]

        self.a1 = Alignment(self.seqs1)
        self.a2 = Alignment(self.seqs2)
        self.empty = Alignment([])
Esempio n. 6
0
    def test_omit_gap_positions(self):
        """omitting gap positions functions as expected
        """
        expected = self.a2
        self.assertEqual(self.a2.omit_gap_positions(1.0), expected)
        self.assertEqual(self.a2.omit_gap_positions(0.51), expected)

        r1 = RNASequence('UUAU', id="r1")
        r2 = RNASequence('ACGU', id="r2")
        expected = Alignment([r1, r2])
        self.assertEqual(self.a2.omit_gap_positions(0.49), expected)

        r1 = RNASequence('UUAU', id="r1")
        r2 = RNASequence('ACGU', id="r2")
        expected = Alignment([r1, r2])
        self.assertEqual(self.a2.omit_gap_positions(0.0), expected)

        self.assertEqual(self.empty.omit_gap_positions(0.0), self.empty)
        self.assertEqual(self.empty.omit_gap_positions(0.49), self.empty)
        self.assertEqual(self.empty.omit_gap_positions(1.0), self.empty)
Esempio n. 7
0
    def test_iter_positions(self):
        """iter_positions functions as expected
        """
        actual = list(self.a2.iter_positions())
        expected = [[RNASequence(j) for j in i]
                    for i in ['UA', 'UC', 'AG', 'UU', '-U']]
        self.seqs2_t = [('r1', 'UUAU-'), ('r2', 'ACGUU')]
        self.assertEqual(actual, expected)

        actual = list(self.a2.iter_positions(constructor=str))
        expected = [list('UA'), list('UC'), list('AG'), list('UU'), list('-U')]
        self.seqs2_t = [('r1', 'UUAU-'), ('r2', 'ACGUU')]
        self.assertEqual(actual, expected)
Esempio n. 8
0
 def setUp(self):
     self.empty = RNASequence('')
     self.b1 = RNASequence('GAUUACA')
     self.b2 = RNASequence('ACCGGUACC',
                           id="test-seq-2",
                           description="A test sequence")
     self.b3 = RNASequence('ACCGGTACC',
                           id="bad-seq-1",
                           description="Not a RNA sequence")
     self.b4 = RNASequence('MRWSYKVHDBN',
                           id="degen",
                           description="All of the degenerate bases")
     self.b5 = RNASequence('.G--AUUAC-A...')
Esempio n. 9
0
    def test_nondegenerates_all_degens(self):
        # Same chars.
        exp = [
            RNASequence('CC'),
            RNASequence('CG'),
            RNASequence('GC'),
            RNASequence('GG')
        ]
        # Sort based on sequence string, as order is not guaranteed.
        obs = sorted(RNASequence('SS').nondegenerates(), key=str)
        self.assertEqual(obs, exp)

        # Different chars.
        exp = [
            RNASequence('AC'),
            RNASequence('AG'),
            RNASequence('GC'),
            RNASequence('GG')
        ]
        obs = sorted(RNASequence('RS').nondegenerates(), key=str)
        self.assertEqual(obs, exp)

        # Odd number of chars.
        obs = list(RNASequence('NNN').nondegenerates())
        self.assertEqual(len(obs), 4**3)
Esempio n. 10
0
 def test_nondegenerates_invalid(self):
     with self.assertRaises(BiologicalSequenceError):
         list(RNASequence('AZA').nondegenerates())
Esempio n. 11
0
 def test_is_reverse_complement(self):
     self.assertFalse(self.b1.is_reverse_complement(self.b1))
     self.assertTrue(self.b1.is_reverse_complement(RNASequence('UGUAAUC')))
     self.assertTrue(
         self.b4.is_reverse_complement(RNASequence('NVHDBMRSWYK')))
Esempio n. 12
0
 def test_complement(self):
     self.assertEqual(self.b1.complement(), RNASequence("CUAAUGU"))
     self.assertEqual(self.b2.complement(), RNASequence("UGGCCAUGG"))
     self.assertRaises(BiologicalSequenceError, self.b3.complement)
     self.assertEqual(self.b4.complement(), RNASequence("KYWSRMBDHVN"))
     self.assertEqual(self.b5.complement(), RNASequence(".C--UAAUG-U..."))