code: def _find_read_splits(in_file, split_size):
      
      num_lines = total_reads_from_grabix(in_file) * 4
      assert num_lines and num_lines > 0, "Did not find grabix index reads: %s %s" % (in_file, num_lines)
      split_lines = split_size * 4
      chunks = []
      last = 1
      for chunki in range(num_lines // split_lines + min(1, num_lines % split_lines)):
          new = last + split_lines - 1
          chunks.append((last, min(new, num_lines)))
          last = new + 1
      return ["%s-%s" % (s, e) for s, e in chunks]
docs: Determine sections of fastq files to process in splits.
  
      Assumes a 4 line order to input files (name, read, name, quality).
      grabix is 1-based inclusive, so return coordinates in that format.