code: def stats(args):
      
      from jcvi.utils.cbook import percentage
  
      p = OptionParser(stats.__doc__)
      opts, args = p.parse_args(args)
  
      if len(args) != 1:
          sys.exit(not p.print_help())
  
      blocksfile, = args
      fp = open(blocksfile)
      counts = defaultdict(int)
      total = orthologous = 0
      for row in fp:
          atoms = row.rstrip().split("\t")
          hits = [x for x in atoms[1:] if x != '.']
          counts[len(hits)] += 1
          total += 1
          if atoms[1] != '.':
              orthologous += 1
  
      print("Total lines: {0}".format(total), file=sys.stderr)
      for i, n in sorted(counts.items()):
          print("Count {0}: {1}".format(i, percentage(n, total)), file=sys.stderr)
  
      print(file=sys.stderr)
  
      matches = sum(n for i, n in counts.items() if i != 0)
      print("Total lines with matches: {0}".\
                  format(percentage(matches, total)), file=sys.stderr)
      for i, n in sorted(counts.items()):
          if i == 0:
              continue
  
          print("Count {0}: {1}".format(i, percentage(n, matches)), file=sys.stderr)
  
      print(file=sys.stderr)
      print("Orthologous matches: {0}".\
                  format(percentage(orthologous, matches)), file=sys.stderr)
docs: %prog stats blocksfile
  
      Provide statistics for MCscan-style blocks. The count of homologs in each
      pivot gene is recorded.