def test_pairwise_returns_score(self): """exercise pairwise local/global returns alignment score""" S = make_dna_scoring_dict(10, -1, -8) aln, score = local_pairwise(seq1, seq2, S, 10, 2, return_score=True) self.assertTrue(score > 100) aln, score = global_pairwise(seq1, seq2, S, 10, 2, return_score=True) self.assertTrue(score > 100)
def test_local_tiebreak(self): """Should pick the first best-equal hit rather than the last one""" # so that the Pyrex and Python versions give the same result. score_matrix = make_dna_scoring_dict(match=1, transition=-1, transversion=-1) pattern = DNA.make_seq("cwc", name="pattern") two_hit = DNA.make_seq("cactc", name="target") aln = local_pairwise(pattern, two_hit, score_matrix, 5, 2) hit = aln.named_seqs["target"] self.assertEqual(str(hit).lower(), "cac")
def test(r=1, **kw): S = make_dna_scoring_dict(10, -1, -8) seq2 = DNA.make_seq("AAAATGCTTA" * r) seq1 = DNA.make_seq("AATTTTGCTG" * r) t0 = time.clock() try: # return_alignment is False in order to emphasise the quadratic part of # the work. aln = classic_align_pairwise(seq1, seq2, S, 10, 2, local=False, return_alignment=False, **kw) except ArithmeticError: return "*" else: t = time.clock() - t0 return int((len(seq1) * len(seq2)) / t / 1000)
def _aligned_both_ways(self, seq1, seq2, **kw): S = make_dna_scoring_dict(10, -1, -8) a1 = classic_align_pairwise(seq1, seq2, S, 10, 2, **kw) a2 = classic_align_pairwise(seq2, seq1, S, 10, 2, **kw) return [a1, a2]