def fetch_insertion(chrom, st, cigar):
    """ fetch insertion regions defined by cigar. st must be zero based
	return list of tuple of (chrom,st, end)
	
	NOTE: insertion region does NOT present in reference genome and there
	fore cannot represented using reference coordinates[start, end]. So we
	use [start, SIZE).
	[(100,2)] means 2nt insert between 100 and 101
	"""
    chrom_st = st
    ins_bound = []
    for c, s in cigar:
        if c == 0:
            chrom_st += s
        elif c == 1:
            ins_bound.append((chrom, chrom_st, s))
            continue
        elif c == 2:
            chrom_st += s
        elif c == 3:
            chrom_st += s
        elif c == 4:
            chrom_st += s
        else:
            continue
    return ins_bound
