def test_multiple_references(self):
     ref1 = Sequence('TGCGATGACGCGTGAGGTGTATGAAGCAAAGGCAGCGAAAAAAAAAGGTGGTGGGAGTATGACGAAAATAAACCAGCGAAAATTAACCGCGCGGACTATTTACTCCCACCACCTTTTTTTTTCCGTCACATCAAGTCGTCCATTAGGAGTAG')
     ref2 = Sequence('TATAAGATTATGAACGTGAGGTGTATGAAGCAAAGGCAGCAATCAAGCTAATATGGAGATGGATTTCAGAAGGTTTTGTTTATAGCGAAAAACAAGAAACTGACTTATATGAGCTCGGTAAGAAGTACTTCAATGAGCTAGTAAATAGAAGTATGATACAGCCAATTGGTATTGATGATGGAGAAGATAAACAAGCGTGTCGTGTACATGACATGGTGCTTGATATCCTATGCT')
     primer = Primer('CGTGAGGTGTATGAAGCAAAGGCAGC', span=(10, 36), strand=1)
     sites = binding_sites([ref1, ref2], primer)
     expected = [(10, 36), (14, 40)]
     self.assertEqual(expected, [site.span() for site in sites])
 def test_self_contig_complementary_score_2(self):
     """
     AATT
     ||||
     TTAA
     """
     seq = Sequence('AATT')
     primer = Primer(seq, 0, 0, 0)
     self.assertEqual(primer.complementary_score, 4)
 def test_self_complementary_3(self):
     """  
        GGGATGGGGGG
           || 
     GGGGGGTAGGG 
     """
     seq = Sequence('GGGATGGGGGG')
     primer = Primer(seq, 0, 0, 0)
     self.assertEqual(primer.complementary_score, 2)
 def test_rev_comp_binding_sites(self):
     # TGACGGAAAAAAAAAGGTGGTGGGAGTA
     # Reverse Complement:
     # TACTCCCACCACCTTTTTTTTTCCGTCA
     ref = Sequence('TGCGATGACGGAAAAAAAAAGGTGGTGGGAGTATGACGAAAATAAACCAGCGAAAATTAACCGCGCGGACTATTTACTCCCACCACCTTTTTTTTTCCGTCACATCAAGTCGTCCATTAGGAGTAG')
     primer = Primer('TGACGGAAAAAAAAAGGTGGTGGGAGTA', span=(5, 33), strand=1)
     sites = binding_sites([ref], primer)
     expected = [(5, 33), (74, 102)]
     self.assertEqual(expected, [site.span() for site in sites])
 def test_fuzzy_binding_sites(self):
     # ACGGAAAAAAAAAGGTGGTGGGAGTATGACGAAAAT
     # ||||  |||||||| |||||| ||||||||||||||
     # ACGGTTAAAAAAAGATGGTGGCAGTATGACGAAAAT
     ref = Sequence('TGCGATGACGGAAAAAAAAAGGTGGTGGGAGTATGACGAAAATAAACCAGCGAAAATTAACCGCGCGGACTATTCATCAAGTCGTCCATTAGGAGTAGAGACGGAAAAAAAAAGGTGGTGGGAGTATGACGGACGGTTAAAAAAAGATGGTGGCAGTATGACGAAAATATTTTCACAACCCAATTTGCCTATTTTATTTATTCATTGGAAAACTTGAAGAATGGAAATTTTGTGGTGCGATAATAGCATATTGTGTTGATGTTGTC')
     primer = Primer('ACGGAAAAAAAAAGGTGGTGGGAGTATGACGAAAAT', span=(6, 38), strand=1)
     sites = binding_sites([ref], primer)
     expected = [(7, 43), (132, 168)]
     self.assertEqual(expected, [site.span() for site in sites])
    def test_self_complementary_2(self):
        """  
        AAAGGGGGT
          |     |
          TGGGGGAAA 
        """

        seq = Sequence('AAAGGGGGT')
        primer = Primer(seq, 0, 0, 0)
        self.assertEqual(primer.complementary_score, 2)
 def test_self_complementary(self):
     seq = Sequence('AATT')
     primer = Primer(seq, 0, 0, 0)
     self.assertEqual(primer.complementary_score, 4)
 def test_no_binding_sites(self):
     ref = Sequence('GTAGCATGCGATCGTCTATCGTATGACGCTGCACGCAT')
     primer = Primer('TGACGGAAAAAAA', span=(13, 26), strand=1)
     sites = binding_sites([ref], primer)
     expected = []
     self.assertEqual(expected, [site.span() for site in sites])
 def test_multiple_binding_sites(self):
     ref = Sequence('TGCGATGACGGAAAAAAAAAGGTGGTGGGAGTATGACGAAAATAAACCAGCGAAAATTAACCGCGCGGACTATTCATCAAGTCGTCCATTAGGAGTAGAGACGGAAAAAAAAAGGTGGTGGGAGTATGACGGATTTTCACAACCCAATTTGCCTATTTTATTTATTCATTGGAAAACTTGAAGAATGGAAATTTTGTGGTGCGATAATAGCATATTGTGTTGATGTTGTC')
     primer = Primer('GACGGAAAAAAAAAGGTGGTGGGAGTATGACG', span=(6, 38), strand=1)
     sites = binding_sites([ref], primer)
     expected = [(6, 38), (99, 131)]
     self.assertEqual(expected, [site.span() for site in sites])
 def test_single_binding_site(self):
     ref = Sequence('TGCGATGACGGAAAAAAAAAGGTGGTGGGAGTATGACGAAAATAAACCAGCGAAAATTAACCGCGCGGACTATTCATCAAGTCGTCCATTAGGAGTAGAGATTTTCACAACCCAATTTGCCTATTTTATTTATTCATTGGAAAACTTGAAGAATGGAAATTTTGTGGTGCGATAATAGCATATTGTGTTGATGTTGTCAAATTTCTTCCCACCAACCGTGCCCTCCTCCAGTTGATTGTATGCACAAGCGTGCCACCCCATGACGGTAGGAAACGAGCACAACTGCACCATTGTTTAAATCATCTCGTCAGAGCTTCATCAGTTTATAATGGCATATGTTTGTCCACAAGCGCATCACCGGCCCCGGTGCGCCAAATATATTTTGTAACCACCCTTATCCTTTCAATCAACCATCACGAGGAAATAGTCTGAGAAGTTCGCAGCCACATTGTCGTTGTGGAGTCTATATCAACCACCATTCTTAAAATTAGCTACGTGTGATCAACTTGGTCCACCACCTACGCAAGGAGGTGCGTGGTGCGGAAGTTGATTAATCCAACCAAACGTGCCTGCTTGTCTCTAGATAATACAAACTAAGATGTCTAACTAAACTAATGCATCTGCTCAAAGGCATCAATCGCATCGGCGCAAGCGTTCAGAGGTCAGACGACCATTGGCAAGCACCAAAGGACGGGGCCATACGCTTAGAGACACCTACATGGCCGGGTATTAATTACTAGAGTGTTGCAACGCGTTCGCAAAGTCAGCACACGGAGATTGGTGC')
     primer = Primer('CAGTTGATTGTATGCACAAGCGTGCCACCCCATGA', span=(228, 263), strand=1)
     sites = binding_sites([ref], primer)
     expected = [(228, 263)]
     self.assertEqual(expected, [site.span() for site in sites])