'Add/remove a selection range from `start` to `end`.'

def selection_add(self, start, end, heatmap=None, clear=True, remove=False, append=False):

    if (heatmap is not None):
        (_start, _) = self._heatmap_ranges[heatmap]
        start = (_start + start)
        end = (_start + end)
    if clear:
        self.selection_ranges = []
    if remove:
        self.selection_ranges = self.remove_range(self.selection_ranges, start, end, append=append)
    else:
        self.selection_ranges.append((start, end))
    self.select_rows(self.combined_ranges(self.selection_ranges))
    self.selection_finished.emit()
