def __init__(self, adapter1, adapter2, match_probability=RandomMatchProbability(), insert_max_rmp=1E-6, adapter_max_rmp=0.001, min_insert_overlap=1, max_insert_mismatch_frac=0.2, min_adapter_overlap=1, max_adapter_mismatch_frac=0.2, adapter_check_cutoff=9, base_probs=dict(p1=0.25, p2=0.75)): self.adapter1 = adapter1 self.adapter1_len = len(adapter1) self.adapter2 = adapter2 self.adapter2_len = len(adapter2) self.match_probability = match_probability self.insert_max_rmp = insert_max_rmp self.adapter_max_rmp = adapter_max_rmp self.min_insert_overlap = min_insert_overlap self.max_insert_mismatch_frac = float(max_insert_mismatch_frac) self.min_adapter_overlap = min_adapter_overlap self.max_adapter_mismatch_frac = float(max_adapter_mismatch_frac) self.adapter_check_cutoff = adapter_check_cutoff self.base_probs = base_probs self.aligner = MultiAligner(max_insert_mismatch_frac, START_WITHIN_SEQ1 | STOP_WITHIN_SEQ2, min_insert_overlap)
def test_multi_aligner_no_mismatches(): from atropos._align import MultiAligner a = MultiAligner(max_error_rate=0, min_overlap=3) matches = a.locate('AGAGATCAGATGACAGATC', 'GATCA') assert len(matches) == 2 matches.sort(key=lambda x: x[4], reverse=True) assert matches[0][0] == 3 assert matches[0][1] == 8 assert matches[0][2] == 0 assert matches[0][3] == 5 assert matches[0][4] == 5 assert matches[0][5] == 0 assert matches[1][0] == 15 assert matches[1][1] == 19 assert matches[1][2] == 0 assert matches[1][3] == 4 assert matches[1][4] == 4 assert matches[1][5] == 0
def test_multi_aligner_with_mismatches(): from atropos._align import MultiAligner a = MultiAligner(max_error_rate=0.1, min_overlap=10) matches = a.locate('GATATCAGATGACAGATCAGAGATCAGAT', 'GAGATCAGATGA') assert len(matches) == 2 matches.sort(key=lambda x: x[5]) assert matches[0][0] == 19 assert matches[0][1] == 29 assert matches[0][2] == 0 assert matches[0][3] == 10 assert matches[0][4] == 10 assert matches[0][5] == 0 assert matches[1][0] == 0 assert matches[1][1] == 12 assert matches[1][2] == 0 assert matches[1][3] == 12 assert matches[1][4] == 11 assert matches[1][5] == 1