示例#1
0
文件: align.py 项目: llllaaaa/atropos
 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)
示例#2
0
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
示例#3
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