Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_100_percent_error_rate(self):
reference = 'GCTTAGACATATC'
aligner = Aligner(reference, 1.0, flags=Where.BACK.value)
aligner.locate('CAA')
def locate(reference, query, max_error_rate, flags=SEMIGLOBAL, wildcard_ref=False,
wildcard_query=False, min_overlap=1):
aligner = Aligner(reference, max_error_rate, flags, wildcard_ref, wildcard_query, min_overlap=min_overlap)
return aligner.locate(query)
def test_n_wildcards_not_counted_aligner_front():
ref = 'AGGNNNNNNNNNNNNNNTTC'
assert len(ref) == 20
aligner = Aligner(ref, max_error_rate=0.1, wildcard_ref=True, flags=Where.FRONT.value, min_overlap=3)
assert aligner.effective_length == 6
# adapter start, adapter stop, read start, read stop
assert aligner.locate('TTC')[:4] == (17, 20, 0, 3)
assert aligner.locate('TGC') is None
assert aligner.locate('CCCCCCCTTC')[:4] == (10, 20, 0, 10)
assert aligner.locate('CCCCCCCGTC') is None
assert aligner.locate('CCC' + ref.replace('N', 'G') + 'AAA') == (0, 20, 3, 23, 20, 0)
def test_not_only_n_wildcards(self):
reference = 'NNNNN'
with pytest.raises(ValueError) as info:
Aligner(reference, 0.1, wildcard_ref=True)
assert "only N wildcards" in info.value.args[0]
def test_n_wildcard_in_ref_matches_n_wildcard_in_query_back():
aligner = Aligner("NNACGT", max_error_rate=0, wildcard_ref=True, flags=Where.BACK.value)
match = aligner.locate("AAANTACGTAAA")
assert match == (0, 6, 3, 9, 6, 0)