예제 #1
0
 def test_complement(self):
     """Alphabet complement should correctly complement sequence"""
     self.assertEqual(RnaAlphabet.complement('UauCG-NR'), 'AuaGC-NY')
     self.assertEqual(DnaAlphabet.complement('TatCG-NR'), 'AtaGC-NY')
     self.assertEqual(RnaAlphabet.complement(''), '')
     self.assertRaises(TypeError, ProteinAlphabet.complement, 'ACD')
     #if it wasn't a string, result should be a list
     self.assertEqual(RnaAlphabet.complement(list('UauCG-NR')), 
         list('AuaGC-NY'))
     self.assertEqual(RnaAlphabet.complement(('a','c')), ('u','g')) 
     #constructor should fail for a dict
     self.assertRaises(ValueError, RnaAlphabet.complement, {'a':'c'})
예제 #2
0
 def test_rc(self):
     """Alphabet rc should correctly reverse-complement sequence"""
     self.assertEqual(RnaAlphabet.rc('UauCG-NR'), 'YN-CGauA')
     self.assertEqual(DnaAlphabet.rc('TatCG-NR'), 'YN-CGatA')
     self.assertEqual(RnaAlphabet.rc(''), '')
     self.assertEqual(RnaAlphabet.rc('A'), 'U')
     self.assertRaises(TypeError, ProteinAlphabet.rc, 'ACD')
     #if it wasn't a string, result should be a list
     self.assertEqual(RnaAlphabet.rc(list('UauCG-NR')), 
         list('YN-CGauA'))
     self.assertEqual(RnaAlphabet.rc(('a','c')), ('g','u')) 
     #constructor should fail for a dict
     self.assertRaises(ValueError, RnaAlphabet.rc, {'a':'c'})
예제 #3
0
 def test_disambiguate(self):
     """Alphabet disambiguate should remove degenerate bases"""
     d = RnaAlphabet.disambiguate
     self.assertEqual(d(''), '')
     self.assertEqual(d('AGCUGAUGUA--CAGU'),'AGCUGAUGUA--CAGU')
     self.assertEqual(d('AUn-yrs-wkmCGwmrNMWRKY', 'strip'), 'AU--CG')
     self.assertEqual(d(tuple('AUn-yrs-wkmCGwmrNMWRKY'), 'strip'), \
         tuple('AU--CG'))
     s = 'AUn-yrs-wkmCGwmrNMWRKY'
     t = d(s, 'random')
     u = d(s, 'random')
     for i, j in zip(s, t):
         if i in RnaAlphabet.Degenerates:
             assert j in RnaAlphabet.Degenerates[i]
         else:
             assert i == j
     self.assertNotEqual(t, u)
     self.assertEqual(d(tuple('UCAG'), 'random'), tuple('UCAG'))
     self.assertEqual(len(s), len(t))
     assert RnaAlphabet.firstDegenerate(t) is None
     #should raise exception on unknown disambiguation method
     self.assertRaises(NotImplementedError, d, s, 'xyz')