code: def _filter_clades(clade_counts, cutoff):
      
  
      ## store clades that pass filter
      passed = []
      clades = np.array([list(i[0]) for i in clade_counts], dtype=np.int8)
      counts = np.array([i[1] for i in clade_counts], dtype=np.float64)
      
      for idx in xrange(clades.shape[0]):
          conflict = False
      
          if counts[idx] < cutoff:
              continue
              
          if np.sum(clades[idx]) > 1:
              # check the current clade against all the accepted clades to see if
              # it conflicts. A conflict is defined as:
              # 1. the clades are not disjoint
              # 2. neither clade is a subset of the other
              # OR:
              # 1. it is inverse of clade (affects only <fake> root state)
              # because at root node it mirror images {0011 : 95}, {1100 : 5}.
              for aidx in passed:
                  #intersect = clade.intersection(accepted_clade)
                  summed = clades[idx] + clades[aidx]
                  intersect = np.max(summed) > 1
                  subset_test0 = np.all(clades[idx] - clades[aidx] >= 0)
                  subset_test1 = np.all(clades[aidx] - clades[idx] >= 0)
                  invert_test = np.bool_(clades[aidx]) != np.bool_(clades[idx])
  
                  if np.all(invert_test):
                      counts[aidx] += counts[idx]
                      conflict = True
                  if intersect:
                      if (not subset_test0) and (not subset_test1):
                          conflict = True
  
          if conflict == False:
              passed.append(idx)
  
      ## rebuild the dict
      rclades = []#j for i, j in enumerate(clade_counts) if i in passed]
      ## set the counts to include mirrors
      for idx in passed:
          rclades.append((clades[idx], counts[idx]))
      return rclades
docs: A subfunc of consensus_tree(). Removes clades that occur 
      with freq < cutoff.