示例#1
0
def parse(bamfile, minqual):
    bamhandle = AlignmentFile(bamfile, 'rb')

    positions = Positions()

    for read in bamhandle:
        if isclip(read) is False or read.mapping_quality < minqual:
            continue
        clip = ClipRead(read)
        pos = positions.getposition(bamhandle.get_reference_name(read.reference_id), \
                                    clip.getclippos())
        pos.addclipread(clip)

    bamhandle.close()
    return positions
示例#2
0
    if min_idy > 0.:
        assert r.has_tag('NM')

    if r.has_tag('NM'):
        #idy=identity(r.reference_length, r.get_tag('NM'))
        idy = identity(r.reference_length + insertion_cnt(r.cigartuples),
                       r.get_tag('NM'))
        #idy=identity(r.query_alignment_length, r.get_tag('NM'))
    else:
        idy = 1.

    if idy < min_idy:
        continue

    if args.targets:
        if alignment.get_reference_name(r.reference_id) not in targets:
            continue

    init_length = r.infer_read_length()
    if not check_query_cov(r, init_length, alignment.lengths[r.reference_id]):
        continue

    if r.is_reverse:
        clipped_suffix, _ = hard_clipped(r.cigartuples)
        query_alignment_start = init_length - r.query_alignment_end - clipped_suffix
        query_alignment_end = init_length - r.query_alignment_start - clipped_suffix
        reference_start_str = "(%d" % r.reference_end
        reference_end_str = "%d]" % r.reference_start
    else:
        clipped_prefix, _ = hard_clipped(r.cigartuples)
        query_alignment_start = r.query_alignment_start + clipped_prefix