def sampleCellsAcrossColumns(numCellPairs, cellsPerColumn, numColumns, seed=42):
  """
  Generate indices of cell pairs, each pair of cells are from different column
  @return cellPairs (list) list of cell pairs
  """
  np.random.seed(seed)
  cellPairs = []
  for i in range(numCellPairs):
    randCols = np.random.choice(np.arange(numColumns), (2, ), replace=False)
    randCells = np.random.choice(np.arange(cellsPerColumn), (2, ), replace=False)

    cellsPair = np.zeros((2, ))
    for j in range(2):
      cellsPair[j] = randCols[j] * cellsPerColumn + randCells[j]
    cellPairs.append(cellsPair.astype('int32'))
  return cellPairs
Generate indices of cell pairs, each pair of cells are from different column
  @return cellPairs (list) list of cell pairs