Esempio n. 1
0
def test_match_probability():
    a = InsertAligner('TTAGACATAT', 'CAGTGGAGTA')
    k = 3
    n = 5
    i3 = (120 / (6 * 2)) * (0.25 ** 3) * (0.75 ** 2)
    i4 = (120 / 24) * (0.25 ** 4) * 0.75
    i5 = 0.25 ** 5
    assert approx_equal(a.match_probability(k, n), i3 + i4 + i5, 0.0001)
Esempio n. 2
0
def test_short_adapter_overlap():
    a1_seq = 'TTAGACATAT'
    a2_seq = 'CAGTGGAGTA'
    seq1 = 'GACAGGCCGTTTGAATGTTGACGGGATGTT'
    seq2 = 'CATCCCGTCAACATTCAAACGGCCTGTCCA'
    aligner = InsertAligner(a1_seq, a2_seq)
    insert_match, match1, match2 = aligner.match_insert(seq1, seq2)
    assert match1.rstart == 28
    assert match1.length == 2
    assert match2.rstart == 28
    assert match2.length == 2
Esempio n. 3
0
def test_insert_align():
    a1_seq = 'TTAGACATATGG'
    a2_seq = 'CAGTGGAGTATA'
    aligner = InsertAligner(a1_seq, a2_seq)
    r1 = 'AGTCGAGCCCATTGCAGACT' + a1_seq[0:10]
    r2 = 'AGTCTGCAATGGGCTCGACT' + a2_seq[0:10]
    insert_match, match1, match2 = aligner.match_insert(r1, r2)
    assert match1.rstart == 20
    assert match1.length == 10
    assert match2.rstart == 20
    assert match2.length == 10
Esempio n. 4
0
 def __init__(
         self, adapter1, adapter2, action='trim', mismatch_action=None,
         symmetric=True, min_insert_overlap=1, **aligner_args):
     ErrorCorrectorMixin.__init__(self, mismatch_action)
     self.adapter1 = adapter1
     self.adapter2 = adapter2
     self.aligner = InsertAligner(
         adapter1.sequence, adapter2.sequence,
         min_insert_overlap=min_insert_overlap, **aligner_args)
     self.min_insert_len = min_insert_overlap
     self.action = action
     self.symmetric = symmetric
     self.with_adapters = [0, 0]