def test005_findBestCandidateTar2(self): from dnaSequencing import findBestCandidate tar2 = 'CATTATTATGAGGTTTCCCTCCCTAAACTT' can2 = [ 'CCACGGGAATCCATAGTCAGAAATAGTATC', 'ACGACCGTTAACCACATTACCCCGTGGTCG', 'ACCCCTAGCCGGCCGATAGAGTGTAAGGAT', 'CGTCGACAGACCACGTTATTTCATTCGGCG', 'CCCTAGCCGGCCGATAGAGTGTAAGGATAG', 'TATGAACTTCGGCGGGTACATATGGACTAT', 'AGTCAGTGTAAGGTTAACTCCGCATTAGAA', 'AGGCTATGCGCAAGAAAAGCCATACTTCTT', 'CTGTCTTCGCCGGGCTCTATTACGGTCGCT', 'AGGGCCTGGAGACAGTCAGTGTAAGGTTAA', 'AACGGAGACGCTTTGCCGTACGACTGACCC', 'CACGGTTATGGCTTCTAGCGGTCTTCACCC', 'AGGCGTCCCTCCTTAGAGGCCAGGTGTCCG', 'GTTTGCGTCTGGAGGATGAAGCACTATACG', 'CTGTGTATGAACTTCGGCGGGTACATATGG', 'CGGTCTTCACCCCCCCAGGCAAGTAGCTTC', 'TAATGTCCATGGTGATACCCCTAGCCGGCC', 'CACCCCCCCAGGCAAGTAGCTTCACGCTGA', 'GCGTTTCAGAGCATTAATCGGGGGCCGTGT', 'CCCGACACCGGCCTTGCAGGCTATGCGCAA', 'GACCCCAAGGGGCGATATTGCACGACCGTT', 'TCGAGCGATAATTGGTGTTCGTTACAGCGT', 'GGATAGCAGACCCCCACCTTCGTAAAACAA', 'CCCTCCTTAGAGGCCAGGTGTCCGAACTTC', 'TCAGAAATAGTATCACTCCTTATTCCGACT', 'CCCGTGTTAGGCGTCCCTCCTTAGAGGCCA', 'GTCTCTTGCGCTTAAATAATCCAGCATCGC', 'CTCCCGTCGACAGACCACGTTATTTCATTC', 'CAGACCACGTTATTTCATTCGGCGTTTCTC', 'TAGTATCACTCCTTATTCCGACTCAGAAAG', 'CGGACGACCTCTAGGATGTACTACCCTACT', 'ACCGAGAACCGCGGTTATAATTTCACATTA', 'CAGTGTAAGGTTAACTCCGCATTAGAAGCC', 'ATGGCTTCTAGCGGTCTTCACCCCCCCAGG', 'CGAGAACCGCGGTTATAATTTCACATTATT', 'GCATCGCCTAGCAAAGCAGCTTACGTTCAG', 'CAAATCTCACTAATGTCCATGGTGATACCC', 'GGGAATCCATAGTCAGAAATAGTATCACTC', 'GTTTGCGTCTGGAGGATGAAGCACTATACG' ] self.assertTupleEqual(findBestCandidate(tar2, can2), ('TATGAACTTCGGCGGGTACATATGGACTAT', 1))
def test003_findBestCandidateTar0(self): from dnaSequencing import findBestCandidate tar0 = 'TTATAGTGATATACGTGCTTAGGTAGTGCAGAGACACAACTTATAGAGTGAGGCCAGCTCACGAGCTCTAGAAGCCCAAA' can0 = [ 'TATTGTGCTCTATAGCTCCAGGCACATCCCTTGACGGATTGGGGACTGTCTTGACGAAAGTTCGGAGGTAGAAAAGTCCA', 'GACGACACCCTGGCAAAGGTCACGTCATGGGTGGAGTACTTATACCGGCAGCAGAGCGATCTGCTACCTATCTTCATGAT', 'CACGAGCTCTAGAAGCCCAAACTGTGACGCAATTGCCGGGCTAAAACTATGCTAAGAAATCCCCATTACCAGAGTCTTAG', 'TGAGCCGTTGGGCAGTTAACGGATTTTACTCGTCGCTGCCTGAAGTGCCAAATTTACCAAAAACCGGATAACTTCATGCA', 'CTTATAGAGTGAGGCCAGCTCACGAGCTCTAGAAGCCCAAATTGCTACTGTGCCGCTGCGCACCGCATGATCGCAGTCAG', 'TTAGAGGAATTGGACGGCACTCGGACACAAGCTCACGCCCCATACTTTAGCACCGAATATCGACTAAGCATAGTTGATCT', 'AGCAAGAGTTGGTATCTCTAGGGGCTTCTCCGGACGCAACGACGCGTCTGACAGTTCAGGTTGTTATGACCCGGGTGTGA', 'CTATGGTTAGGCAACTTCCACGCTATCCCTCGACCACGGCTCGTGGAGCCGTACCGGTGTATTTTGTTGCTGCTAATATT', 'GTAGCACGCAGTTCGAGTCACCCGGAAGCAGCGAAACGTTCGGCAACTACAAACTCCAATCTTGTATTCGGGTGCCTTTT', 'CGATTGTCTGTGTTCTGCATGAGCACAATAAGTACAAGTCGAACTGGTATTTACTAAAGTCCGCATATTGTACGGTACGT' ] self.assertTupleEqual(findBestCandidate(tar0, can0), ( 'CTTATAGAGTGAGGCCAGCTCACGAGCTCTAGAAGCCCAAATTGCTACTGTGCCGCTGCGCACCGCATGATCGCAGTCAG', 41))
def test004_findBestCandidateTar1(self): from dnaSequencing import findBestCandidate tar1 = 'GTCGCGTTCAGGCGCATTAAGTTAGTCGGA' can1 = [ 'TCAGGCGCATTAAGTTAGTCGGAGCACACG', 'TGCTCTGGTCGCGTTCAGGCGCATTAAGTT', 'GCGCATTAAGTTAGTCGGAGCACACGATAG', 'GATGGGATTCCACTGCTCTGGTCGCGTTCA', 'AGATGGGATTCCACTGCTCTGGTCGCGTTC', 'CGTTCAGGCGCATTAAGTTAGTCGGAGCAC', 'CTAAGATGGGATTCCACTGCTCTGGTCGCG', 'TACATGAAGCGCTACGTCTTATTGCGCTGG', 'TCGGAGCACACGATAGTGTACATGAAGCGC', 'TCGCGTTCAGGCGCATTAAGTTAGTCGGAG', 'ACGATAGTGTACATGAAGCGCTACGTCTTA', 'GATGGGATTCCACTGCTCTGGTCGCGTTCA', 'TTCAGGCGCATTAAGTTAGTCGGAGCACAC', 'AGTTAGTCGGAGCACACGATAGTGTACATG', 'TCGGAGCACACGATAGTGTACATGAAGCGC', 'TAGTGTACATGAAGCGCTACGTCTTATTGC', 'GATTCCACTGCTCTGGTCGCGTTCAGGCGC', 'TGTACATGAAGCGCTACGTCTTATTGCGCT', 'TGCTCTGGTCGCGTTCAGGCGCATTAAGTT', 'TTAGTCGGAGCACACGATAGTGTACATGAA', 'TACATGAAGCGCTACGTCTTATTGCGCTGG', 'GATTCCACTGCTCTGGTCGCGTTCAGGCGC', 'AGTCGGAGCACACGATAGTGTACATGAAGC', 'TAGTGTACATGAAGCGCTACGTCTTATTGC', 'CACTAAGATGGGATTCCACTGCTCTGGTCG', 'GATAGTGTACATGAAGCGCTACGTCTTATT', 'TGGTCGCGTTCAGGCGCATTAAGTTAGTCG', 'AAGTTAGTCGGAGCACACGATAGTGTACAT', 'AGTGTACATGAAGCGCTACGTCTTATTGCG', 'AAGATGGGATTCCACTGCTCTGGTCGCGTT', 'GGCGCATTAAGTTAGTCGGAGCACACGATA', 'AAGATGGGATTCCACTGCTCTGGTCGCGTT', 'ACACGATAGTGTACATGAAGCGCTACGTCT', 'CACTAAGATGGGATTCCACTGCTCTGGTCG', 'AAGTTAGTCGGAGCACACGATAGTGTACAT', 'GTTCAGGCGCATTAAGTTAGTCGGAGCACA', 'CTGCTCTGGTCGCGTTCAGGCGCATTAAGT', 'GGGATTCCACTGCTCTGGTCGCGTTCAGGC', 'GTCGGAGCACACGATAGTGTACATGAAGCG', 'GGAGCACACGATAGTGTACATGAAGCGCTA', 'ACTAAGATGGGATTCCACTGCTCTGGTCGC', 'GATAGTGTACATGAAGCGCTACGTCTTATT', 'CATTAAGTTAGTCGGAGCACACGATAGTGT', 'GATGGGATTCCACTGCTCTGGTCGCGTTCA', 'AGTGTACATGAAGCGCTACGTCTTATTGCG', 'TCGGAGCACACGATAGTGTACATGAAGCGC', 'ACACGATAGTGTACATGAAGCGCTACGTCT', 'ACTGCTCTGGTCGCGTTCAGGCGCATTAAG', 'ACGATAGTGTACATGAAGCGCTACGTCTTA', 'GCACACGATAGTGTACATGAAGCGCTACGT', 'GATAGTGTACATGAAGCGCTACGTCTTATT', 'TCGCGTTCAGGCGCATTAAGTTAGTCGGAG', 'CTGCTCTGGTCGCGTTCAGGCGCATTAAGT', 'GTACATGAAGCGCTACGTCTTATTGCGCTG', 'ATTAAGTTAGTCGGAGCACACGATAGTGTA', 'CACACGATAGTGTACATGAAGCGCTACGTC', 'GGGATTCCACTGCTCTGGTCGCGTTCAGGC', 'TGCTCTGGTCGCGTTCAGGCGCATTAAGTT', 'TCTGGTCGCGTTCAGGCGCATTAAGTTAGT', 'AGATGGGATTCCACTGCTCTGGTCGCGTTC', 'ATAGTGTACATGAAGCGCTACGTCTTATTG', 'AGGCGCATTAAGTTAGTCGGAGCACACGAT', 'ACGATAGTGTACATGAAGCGCTACGTCTTA', 'AGGCGCATTAAGTTAGTCGGAGCACACGAT', 'TCAGGCGCATTAAGTTAGTCGGAGCACACG', 'CGCGTTCAGGCGCATTAAGTTAGTCGGAGC', 'GGATTCCACTGCTCTGGTCGCGTTCAGGCG', 'TGGGATTCCACTGCTCTGGTCGCGTTCAGG', 'TAAGATGGGATTCCACTGCTCTGGTCGCGT', 'ACGATAGTGTACATGAAGCGCTACGTCTTA', 'GAGCACACGATAGTGTACATGAAGCGCTAC', 'ATTCCACTGCTCTGGTCGCGTTCAGGCGCA', 'GCTCTGGTCGCGTTCAGGCGCATTAAGTTA', 'AGCACACGATAGTGTACATGAAGCGCTACG', 'GCGTTCAGGCGCATTAAGTTAGTCGGAGCA', 'CGCGTTCAGGCGCATTAAGTTAGTCGGAGC', 'GTCGGAGCACACGATAGTGTACATGAAGCG', 'GATTCCACTGCTCTGGTCGCGTTCAGGCGC', 'TAAGATGGGATTCCACTGCTCTGGTCGCGT', 'GATTCCACTGCTCTGGTCGCGTTCAGGCGC', 'TAGTCGGAGCACACGATAGTGTACATGAAG', 'AAGTTAGTCGGAGCACACGATAGTGTACAT', 'TCGGAGCACACGATAGTGTACATGAAGCGC', 'ACGATAGTGTACATGAAGCGCTACGTCTTA', 'TAGTCGGAGCACACGATAGTGTACATGAAG', 'TTAGTCGGAGCACACGATAGTGTACATGAA', 'CACACGATAGTGTACATGAAGCGCTACGTC', 'GCACACGATAGTGTACATGAAGCGCTACGT', 'TCGGAGCACACGATAGTGTACATGAAGCGC', 'AGCACACGATAGTGTACATGAAGCGCTACG', 'ACACGATAGTGTACATGAAGCGCTACGTCT', 'CACACGATAGTGTACATGAAGCGCTACGTC', 'AGATGGGATTCCACTGCTCTGGTCGCGTTC', 'CGTTCAGGCGCATTAAGTTAGTCGGAGCAC', 'TAGTGTACATGAAGCGCTACGTCTTATTGC', 'GATGGGATTCCACTGCTCTGGTCGCGTTCA', 'TAGTCGGAGCACACGATAGTGTACATGAAG', 'TGGTCGCGTTCAGGCGCATTAAGTTAGTCG', 'AGTCGGAGCACACGATAGTGTACATGAAGC', 'CCACTGCTCTGGTCGCGTTCAGGCGCATTA', 'CTCTGGTCGCGTTCAGGCGCATTAAGTTAG', 'TGCTCTGGTCGCGTTCAGGCGCATTAAGTT', 'TGCTCTGGTCGCGTTCAGGCGCATTAAGTT', 'TAAGATGGGATTCCACTGCTCTGGTCGCGT', 'TGCTCTGGTCGCGTTCAGGCGCATTAAGTT', 'GCATTAAGTTAGTCGGAGCACACGATAGTG', 'GCGTTCAGGCGCATTAAGTTAGTCGGAGCA', 'ATTCCACTGCTCTGGTCGCGTTCAGGCGCA', 'GTGTACATGAAGCGCTACGTCTTATTGCGC', 'ATAGTGTACATGAAGCGCTACGTCTTATTG', 'TAAGATGGGATTCCACTGCTCTGGTCGCGT', 'GTTCAGGCGCATTAAGTTAGTCGGAGCACA', 'GATTCCACTGCTCTGGTCGCGTTCAGGCGC', 'TAGTGTACATGAAGCGCTACGTCTTATTGC', 'AGCACACGATAGTGTACATGAAGCGCTACG', 'ATGGGATTCCACTGCTCTGGTCGCGTTCAG', 'GTTAGTCGGAGCACACGATAGTGTACATGA', 'TAAGTTAGTCGGAGCACACGATAGTGTACA', 'TGTACATGAAGCGCTACGTCTTATTGCGCT', 'TTAGTCGGAGCACACGATAGTGTACATGAA', 'GGTCGCGTTCAGGCGCATTAAGTTAGTCGG', 'AGTCGGAGCACACGATAGTGTACATGAAGC', 'GGTCGCGTTCAGGCGCATTAAGTTAGTCGG', 'GAGCACACGATAGTGTACATGAAGCGCTAC', 'AGTTAGTCGGAGCACACGATAGTGTACATG', 'ACACGATAGTGTACATGAAGCGCTACGTCT', 'GCACACGATAGTGTACATGAAGCGCTACGT', 'CTCTGGTCGCGTTCAGGCGCATTAAGTTAG', 'GCTCTGGTCGCGTTCAGGCGCATTAAGTTA', 'AGTGTACATGAAGCGCTACGTCTTATTGCG', 'GTTCAGGCGCATTAAGTTAGTCGGAGCACA', 'TCAGGCGCATTAAGTTAGTCGGAGCACACG', 'GCACTAAGATGGGATTCCACTGCTCTGGTC' ] self.assertTupleEqual(findBestCandidate(tar1, can1), ('TCGCGTTCAGGCGCATTAAGTTAGTCGGAG', 29))
def test007_noMatches(self): from dnaSequencing import findBestCandidate self.assertTupleEqual(findBestCandidate('aaa', ['bbb', 'ccc']), ('', 0))
def test002_findBestCandidateTarEasy(self): from dnaSequencing import findBestCandidate tar_easy = 'ABCDEFG' can_easy = ['GHHHHHH', 'FGHHHHH', 'EFGHHHH', 'CDEFGHH', 'DEFGHHH'] self.assertTupleEqual(findBestCandidate(tar_easy, can_easy), ('CDEFGHH', 5))
def test006_findBestCandidateWithEmptyLines(self): from dnaSequencing import findBestCandidate tar = 'ABCDEFG' can = ['', '', 'EFGHHHH', 'CDEFGHH', 'DEFGHHH'] self.assertTupleEqual(findBestCandidate(tar, can), ('CDEFGHH', 5))