docs: def get_island_bins(df, window_size, genome, args):
      # type: (pd.DataFrame, int, str, Namespace) -> Dict[str, Set[int]]
      """Finds the enriched bins in a df."""
  
      # need these chromos because the df might not have islands in all chromos
      chromosomes = natsorted(list(args.chromosome_sizes))
  
      chromosome_island_bins = {} # type: Dict[str, Set[int]]
      df_copy = df.reset_index(drop=False)
      for chromosome in chromosomes:
          cdf = df_copy.loc[df_copy.Chromosome == chromosome]
          if cdf.empty:
              chromosome_island_bins[chromosome] = set()
          else:
              island_starts_ends = zip(cdf.Start.values.tolist(),
                                       cdf.End.values.tolist())
              island_bins = chain(*[range(
                  int(start), int(end), window_size)
                                    for start, end in island_starts_ends])
              chromosome_island_bins[chromosome] = set(island_bins)
  
      return chromosome_island_bins