Lift a region that overlaps the genomic occurrence of the retrotransposon
    to consensus sequence coordinates using just the coordinates (not the full
    alignment), when they have differing length. This is an internal helper
    method. The above length constraint must be true, otherwise an assertion
    is failed.

    :param intersect_region: a region that intersects this occurrence.
    :return: list of GenomicInterval objects. This is a list because a genomic
             deletion of part of the retrotransposon can fragment the
             intersecting region and result in more than one returned interval.
             List might be empty, if intersection overlaps only gaps.
    :note: no checks are made for whether the interval really intersects!!

def __liftover_coordinates_genomic_indels(self, intersect_region):
    """
    Lift a region that overlaps the genomic occurrence of the retrotransposon
    to consensus sequence coordinates using just the coordinates (not the full
    alignment), when they have differing length. This is an internal helper
    method. The above length constraint must be true, otherwise an assertion
    is failed.

    :param intersect_region: a region that intersects this occurrence.
    :return: list of GenomicInterval objects. This is a list because a genomic
             deletion of part of the retrotransposon can fragment the
             intersecting region and result in more than one returned interval.
             List might be empty, if intersection overlaps only gaps.
    :note: no checks are made for whether the interval really intersects!!
    """
    # should never happen, but check anyway...
    consensus_match_length = self.consensus_end - self.consensus_start
    size_dif = consensus_match_length - len(self)
    assert(size_dif != 0)

    if size_dif < 0:
      # genomic region longer; assume genomic region contains insertions
      return self.__liftover_coordinates_genomic_insertions(intersect_region)
    else:
      # genomic region shorter; assume genomic region contains deletions
      return self.__liftover_coordinates_genomic_deletions(intersect_region)