code: def get_assc_pruned(assc_geneid2gos, min_genecnt=None, max_genecnt=None, prt=sys.stdout):
      
      # DEFN WAS: get_assc_pruned(assc_geneid2gos, max_genecnt=None, prt=sys.stdout):
      #      ADDED min_genecnt argument and functionality
      if max_genecnt is None and min_genecnt is None:
          return assc_geneid2gos, set()
      go2genes_orig = get_b2aset(assc_geneid2gos)
      # go2genes_prun = {go:gs for go, gs in go2genes_orig.items() if len(gs) <= max_genecnt}
      go2genes_prun = {}
      for goid, genes in go2genes_orig.items():
          num_genes = len(genes)
          if (min_genecnt is None or num_genes >= min_genecnt) and \
             (max_genecnt is None or num_genes <= max_genecnt):
              go2genes_prun[goid] = genes
      num_was = len(go2genes_orig)
      num_now = len(go2genes_prun)
      gos_rm = set(go2genes_orig.keys()).difference(set(go2genes_prun.keys()))
      assert num_was-num_now == len(gos_rm)
      if prt is not None:
          if min_genecnt is None:
              min_genecnt = 1
          if max_genecnt is None:
              max_genecnt = "Max"
          prt.write("{N:4} GO IDs pruned. Kept {NOW} GOs assc w/({m} to {M} genes)\n".format(
              m=min_genecnt, M=max_genecnt, N=num_was-num_now, NOW=num_now))
      return get_b2aset(go2genes_prun), gos_rm
docs: Remove GO IDs associated with large numbers of genes. Used in stochastic simulations.