code: def usearch61_smallmem_cluster(intermediate_fasta,
                                 percent_id=0.97,
                                 minlen=64,
                                 rev=False,
                                 output_dir=".",
                                 remove_usearch_logs=False,
                                 wordlength=8,
                                 usearch61_maxrejects=32,
                                 usearch61_maxaccepts=1,
                                 sizeorder=False,
                                 HALT_EXEC=False,
                                 output_uc_filepath=None,
                                 log_name="smallmem_clustered.log",
                                 sizeout=False,
                                 consout_filepath=None):
      log_filepath = join(output_dir, log_name)
      params = {'--minseqlength': minlen,
                '--cluster_smallmem': intermediate_fasta,
                '--id': percent_id,
                '--uc': output_uc_filepath,
                '--wordlength': wordlength,
                '--maxrejects': usearch61_maxrejects,
                '--maxaccepts': usearch61_maxaccepts,
                '--usersort': True
                }
      if sizeorder:
          params['--sizeorder'] = True
      if not remove_usearch_logs:
          params['--log'] = log_filepath
      if rev:
          params['--strand'] = 'both'
      else:
          params['--strand'] = 'plus'
      if sizeout:
          params['--sizeout'] = True
      if consout_filepath:
          params['--consout'] = consout_filepath
      clusters_fp = output_uc_filepath
      app = Usearch61(params, WorkingDir=output_dir, HALT_EXEC=HALT_EXEC)
      app_result = app()
      return clusters_fp, app_result