def __liftover_coordinates_genomic_deletions(self, intersecting_region):
<EOL>consensus_match_length = self.consensus_end - self.consensus_start<EOL>size_dif = consensus_match_length - len(self)<EOL>assert(size_dif > <NUM_LIT:0>)<EOL>name = self.repeat_name()<EOL>gap_interval = int(math.ceil(len(self) / float(size_dif)))<EOL>s_dist_to_gen_start = max(intersecting_region.start - self.start, <NUM_LIT:0>)<EOL>e_dist_to_gen_start = min(max(intersecting_region.end -<EOL>self.start, <NUM_LIT:0>), len(self))<EOL>gaps_before = s_dist_to_gen_start / gap_interval<EOL>gaps_in = ((e_dist_to_gen_start - <NUM_LIT:1>) / gap_interval) - gaps_before<EOL>gen_s_dist = s_dist_to_gen_start<EOL>left_to_lift = (min(self.end, intersecting_region.end) -<EOL>max(self.start, intersecting_region.start))<EOL>res = []<EOL>if self.consensus_match_strand is '<STR_LIT:+>':<EOL><INDENT>s = s_dist_to_gen_start + self.consensus_start<EOL>s = s + gaps_before<EOL>for i in range(<NUM_LIT:0>, gaps_in):<EOL><INDENT>e = s + min((gap_interval - (gen_s_dist % gap_interval)), left_to_lift)<EOL>res.append(GenomicInterval(name, s, e, intersecting_region.name,<EOL>intersecting_region.score, self.strand))<EOL>gen_s_dist += (e - s)<EOL>left_to_lift -= (e - s)<EOL>s = e + <NUM_LIT:1><EOL><DEDENT>e = min(s + min(gap_interval, left_to_lift), self.consensus_end)<EOL>if e - s != <NUM_LIT:0>:<EOL><INDENT>res.append(GenomicInterval(name, s, e, intersecting_region.name,<EOL>intersecting_region.score, self.strand))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>e = self.consensus_end - s_dist_to_gen_start<EOL>e = e - gaps_before<EOL>for i in range(<NUM_LIT:0>, gaps_in):<EOL><INDENT>s = e - min((gap_interval - (gen_s_dist % gap_interval)), left_to_lift)<EOL>res.append(GenomicInterval(name, s, e, intersecting_region.name,<EOL>intersecting_region.score, self.strand))<EOL>gen_s_dist += (e - s)<EOL>left_to_lift -= (e - s)<EOL>e = s - <NUM_LIT:1><EOL><DEDENT>s = max(e - min(gap_interval, left_to_lift), self.consensus_start)<EOL>if e - s != <NUM_LIT:0>:<EOL><INDENT>res.append(GenomicInterval(name, s, e, intersecting_region.name,<EOL>intersecting_region.score, self.strand))<EOL><DEDENT><DEDENT>return res<EOL>
A 'private' helper member function to perform liftover in coordinate space
when the length of the genomic match is smaller than the concensus match.
We assume the genomic region contains deletions. In this case, we uniformly
distribute the deletions (gaps) through the genomic region. This is the
trickiest liftover case because it fragments the region after liftover.
This method should only be called when the aboe condition is true (longer
consensus region than genomic region) otherwise an assertion will be
failed.

:param intersecting_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.