code: @Deprecated
    public static ImmutableList<StreamReadsRequest> getReadRequests(List<String> readGroupSetIds,
        String references, long numberOfBasesPerShard) {
      final Iterable<Contig> shards = getSpecifiedShards(references, numberOfBasesPerShard);
  
      // Work around lack of FluentIterable.shuffle() https://github.com/google/guava/issues/1358
      List<StreamReadsRequest> requests =
          Arrays.asList(FluentIterable.from(readGroupSetIds)
          .transformAndConcat(new Function<String, Iterable<StreamReadsRequest>>() {
            @Override
            public Iterable<StreamReadsRequest> apply(final String readGroupSetId) {
              return FluentIterable.from(shards)
                  .transform(new Function<Contig, StreamReadsRequest>() {
                    @Override
                    public StreamReadsRequest apply(Contig shard) {
                      return shard.getStreamReadsRequest(readGroupSetId);
                    }
                  });
            }
          }).toArray(StreamReadsRequest.class));
      // The shards were already shuffled, but now lets shuffle this list of concatenated shuffled requests.
      Collections.shuffle(requests);
      return FluentIterable.from(requests).toList();
    }
docs: Constructs sharded StreamReadsRequests for the specified contiguous region(s) of the genome.
  
  @param readGroupSetIds The list of readGroupSetIds.
  @param references The specified contiguous region(s) of the genome.
  @param numberOfBasesPerShard The maximum number of bases to include per shard.
  @return The shuffled list of sharded request objects.