Exemplo n.º 1
0
 def test_iteritems(self):
     s = set()
     l1 = list()
     t = SuffixTree()
     for x in xrange(100):
         k = base64.b64encode(os.urandom(x%10 + 1)).rstrip('=')
         if k in s: continue
         l1.append((k, x))
         t[k] = x
         s.add(k)
     l1.sort()
     self.assertEquals(l1, list(t.iteritems()))
Exemplo n.º 2
0
 def test_match(self):
     t = SuffixTree()
     t['what'] = 1
     t['where'] = 1
     t['when'] = 1
     t['widget'] = 1
     t['wizard'] = 1
     t['wow'] = 1
     t['wowo'] = 1
     self.assertEquals(dict(t.find('e')), {'where':1,'when':1,'widget':1})
     self.assertEquals(dict(t.find('h')), {'where':1,'when':1,'what':1})
     self.assertEquals(dict(t.find('a')), {'wizard':1,'what':1})
     self.assertEquals(dict(t.find('ow')), {'wow':1,'wowo':1})
Exemplo n.º 3
0
 def test_find_simple(self):
     s = set()
     l1 = list()
     t = SuffixTree()
     for x in xrange(100):
         k = base64.b64encode(os.urandom(x%10 + 1)).rstrip('=')
         if k in s: continue
         l1.append(k)
         t[k] = x
         s.add(k)
     l1.sort()
     for x in l1:
         assert bool(tuple(t.find(x)))
Exemplo n.º 4
0
 def test_get_next_iteration(self):
     self.tree = SuffixTree("CAG")
     self.assertTrue(self.tree._iterator is not None)
     self.assertEqual( self.tree.get_next_iteration(), ('G', 3))
     self.assertEqual( self.tree.get_next_iteration(), ('AG', 2))
     self.assertEqual( self.tree.get_next_iteration(), ('CAG', 1))
     # make sure iterator halts when we reach beginning of string
     self.assertEqual( self.tree.get_next_iteration(), None)
     self.assertEqual( self.tree.get_next_iteration(), None)
Exemplo n.º 5
0
class SuffixTreeTest(unittest.TestCase):
    def setUp(self):
        self.nucleotides = u'CAGTCAGG'
        self.tree = SuffixTree(self.nucleotides)

    def test_has_root(self):
        """ we initialize the tree with a root node """
        self.assertTrue(self.tree.rootNode is not None)
        self.assertTrue(isinstance(self.tree.rootNode, SuffixRootNode))

    def test_get_next_iteration(self):
        self.tree = SuffixTree("CAG")
        self.assertTrue(self.tree._iterator is not None)
        self.assertEqual( self.tree.get_next_iteration(), ('G', 3))
        self.assertEqual( self.tree.get_next_iteration(), ('AG', 2))
        self.assertEqual( self.tree.get_next_iteration(), ('CAG', 1))
        # make sure iterator halts when we reach beginning of string
        self.assertEqual( self.tree.get_next_iteration(), None)
        self.assertEqual( self.tree.get_next_iteration(), None)

    def test_construct_tree(self):
        pass
def design(family, param):
    result = []
    for seq in family:
        remain = set(family)
        remain.remove(seq)
        #build GST s1|s2...|sm
        tree = SuffixTree(concat(list(remain)))
        
        n = len(seq)
        l_min = param[0]
        l_max = param[1]
        l_t = param[10] 
        
        begin = 0 
        end = n - (l_t + l_min)
        forward = find(l_min, l_max, begin, end, seq, tree)
        
        begin = (l_t + l_min) 
        end = n
        reverse = find(l_min, l_max, begin, end, seq, tree)
              
        result.append(bio.design_primer(seq, param, forward, reverse))
                
    return result
Exemplo n.º 7
0
 def setUp(self):
     self.nucleotides = u'CAGTCAGG'
     self.tree = SuffixTree(self.nucleotides)