'Selection  started by `heatmap_widget` due to `event`.'

def selection_start(self, heatmap_widget, event):

    pos = heatmap_widget.mapFromScene(event.scenePos())
    (row, _) = heatmap_widget.cell_at(pos)
    (start, _) = self._heatmap_ranges[heatmap_widget]
    row = (start + row)
    self._start_row = row
    range = (row, row)
    self.selection_ranges_temp = []
    if (event.modifiers() & Qt.ControlModifier):
        self.selection_ranges_temp = self.selection_ranges
        self.selection_ranges = self.remove_range(self.selection_ranges, row, row, append=True)
    elif (event.modifiers() & Qt.ShiftModifier):
        self.selection_ranges.append(range)
    elif (event.modifiers() & Qt.AltModifier):
        self.selection_ranges = self.remove_range(self.selection_ranges, row, row, append=False)
    else:
        self.selection_ranges = [range]
    self.select_rows(self.combined_ranges(self.selection_ranges))
