code: def count_duplicate_starts(bam_file, sample_size=10000000):
      
      count = Counter()
      with bam.open_samfile(bam_file) as samfile:
          # unmapped reads should not be counted
          filtered = ifilter(lambda x: not x.is_unmapped, samfile)
          def read_parser(read):
              return ":".join([str(read.tid), str(read.pos)])
          samples = utils.reservoir_sample(filtered, sample_size, read_parser)
  
      count.update(samples)
      return count
docs: Return a set of x, y points where x is the number of reads sequenced and
      y is the number of unique start sites identified
      If sample size < total reads in a file the file will be downsampled.