コード例 #1
0
def test_softclip_start_of_alignment_by_query_masking_qualities() -> None:
    for new_qual in None, 0, 2:
        rec = r(10, "50M", "+")
        clipping.softclip_start_of_alignment_by_query(rec, 10, clipped_base_quality=new_qual)
        quals = rec.query_qualities

        for i in range(0, 10):
            assert quals[i] == (30 if new_qual is None else new_qual)
コード例 #2
0
def test_softclip_start_of_alignment_by_query_clips_10_aligned_bases() -> None:
    rec = r(10, "50M", "+")
    info = clipping.softclip_start_of_alignment_by_query(rec, 10)
    assert info.query_bases_clipped == 10
    assert info.ref_bases_clipped == 10
    assert rec.reference_start == 20
    assert rec.cigarstring == "10S40M"
コード例 #3
0
def test_softclip_start_of_alignment_by_query_unmaps_read_when_clipping_all_bases() -> None:
    rec = r(10, "50M")
    assert not rec.is_unmapped
    info = clipping.softclip_start_of_alignment_by_query(rec, 50)
    assert info.query_bases_clipped == 50
    assert info.ref_bases_clipped == 50
    assert rec.is_unmapped
コード例 #4
0
def test_softclip_start_of_alignment_by_query_removes_deletion_following_clipping() -> None:
    for strand in "+", "-":
        rec = r(10, "10M4D40M", strand)
        info = clipping.softclip_start_of_alignment_by_query(rec, 10)
        assert info.query_bases_clipped == 10
        assert info.ref_bases_clipped == 14
        assert rec.reference_start == 24
        assert rec.cigarstring == "10S40M"
コード例 #5
0
def test_softclip_start_of_alignment_by_query_preserves_deletions_post_clipping_region() -> None:
    for strand in "+", "-":
        rec = r(10, "25M4D25M", strand)
        info = clipping.softclip_start_of_alignment_by_query(rec, 10)
        assert info.query_bases_clipped == 10
        assert info.ref_bases_clipped == 10
        assert rec.reference_start == 20
        assert rec.cigarstring == "10S15M4D25M"
コード例 #6
0
def test_softclip_start_of_alignment_by_query_preserves_insertion_adjacent_to_clipping() -> None:
    for strand in "+", "-":
        rec = r(10, "10M4I36M", strand)
        info = clipping.softclip_start_of_alignment_by_query(rec, 10)
        assert info.query_bases_clipped == 10
        assert info.ref_bases_clipped == 10
        assert rec.reference_start == 20
        assert rec.cigarstring == "10S4I36M"
コード例 #7
0
def test_softclip_start_of_alignment_by_query_consumes_rest_of_insertion() -> None:
    for strand in "+", "-":
        rec = r(10, "8M4I38M", strand)
        info = clipping.softclip_start_of_alignment_by_query(rec, 10)
        assert info.query_bases_clipped == 12
        assert info.ref_bases_clipped == 8
        assert rec.reference_start == 18
        assert rec.cigarstring == "12S38M"
コード例 #8
0
def test_softclip_start_of_alignment_by_query_with_complicated_cigar() -> None:
    for strand in "+", "-":
        rec = r(10, "2H4S16M10I5M5I10M", strand)
        info = clipping.softclip_start_of_alignment_by_query(rec, 10)
        assert info.query_bases_clipped == 10
        assert info.ref_bases_clipped == 10
        assert rec.reference_start == 20
        assert rec.cigarstring == "2H14S6M10I5M5I10M"
コード例 #9
0
def test_softclip_start_of_alignment_by_query_clips_10_more_bases() -> None:
    for strand in "+", "-":
        rec = r(10, "10S40M", strand)
        info = clipping.softclip_start_of_alignment_by_query(rec, 10)
        assert info.query_bases_clipped == 10
        assert info.ref_bases_clipped == 10
        assert rec.reference_start == 20
        assert rec.cigarstring == "20S30M"
コード例 #10
0
def test_soft_clip_start_of_alignment_by_query_clips_10_aligned_and_inserted_bases() -> None:
    for strand in "+", "-":
        rec = r(10, "4M2I44M", strand)
        info = clipping.softclip_start_of_alignment_by_query(rec, 10)
        assert info.query_bases_clipped == 10
        assert info.ref_bases_clipped == 8
        assert rec.reference_start == 18
        assert rec.cigarstring == "10S40M"
コード例 #11
0
def test_softclip_start_of_alignment_by_query_unmapped_reads_ok() -> None:
    rec = r(start=None, cigar=None)
    info = clipping.softclip_start_of_alignment_by_query(rec, 10)
    assert info.query_bases_clipped == 0
    assert info.ref_bases_clipped == 0