def _parse_cigar(self, cigar):
        """For a given CIGAR string, return the start positions of
        each aligned segment in ref and tgt, and a list of CIGAR operators.
        """
        ces = [m.groupdict() for m in cigar_re.finditer(cigar)]
        ref_pos = [None] * len(ces)
        tgt_pos = [None] * len(ces)
        cigar_op = [None] * len(ces)
        ref_cur = tgt_cur = 0
        for i, ce in enumerate(ces):
            ref_pos[i] = ref_cur
            tgt_pos[i] = tgt_cur
            cigar_op[i] = ce["op"]
            step = int(ce["len"])
            if ce["op"] in "=MINX":
                ref_cur += step
            if ce["op"] in "=MDX":
                tgt_cur += step
        ref_pos.append(ref_cur)
        tgt_pos.append(tgt_cur)
        return ref_pos, tgt_pos, cigar_op
def _parse_cigar ( self , cigar ) : ces = [ m . groupdict ( ) for m in cigar_re . finditer ( cigar ) ] ref_pos = [ None ] * len ( ces ) tgt_pos = [ None ] * len ( ces ) cigar_op = [ None ] * len ( ces ) ref_cur = tgt_cur = 0 for i , ce in enumerate ( ces ) : ref_pos [ i ] = ref_cur tgt_pos [ i ] = tgt_cur cigar_op [ i ] = ce [ "op" ] step = int ( ce [ "len" ] ) if ce [ "op" ] in "=MINX" : ref_cur += step if ce [ "op" ] in "=MDX" : tgt_cur += step ref_pos . append ( ref_cur ) tgt_pos . append ( tgt_cur ) return ref_pos , tgt_pos , cigar_op
For a given CIGAR string, return the start positions of
        each aligned segment in ref and tgt, and a list of CIGAR operators.