def usearch61_fast_cluster(intermediate_fasta,
                           percent_id=0.97,
                           minlen=64,
                           output_dir=".",
                           remove_usearch_logs=False,
                           wordlength=8,
                           usearch61_maxrejects=8,
                           usearch61_maxaccepts=1,
                           HALT_EXEC=False,
                           output_uc_filepath=None,
                           log_name="fast_clustered.log",
                           threads=1.0):
    log_filepath = join(output_dir, log_name)
    params = {'--minseqlength': minlen,
              '--cluster_fast': intermediate_fasta,
              '--id': percent_id,
              '--uc': output_uc_filepath,
              '--wordlength': wordlength,
              '--maxrejects': usearch61_maxrejects,
              '--maxaccepts': usearch61_maxaccepts,
              '--usersort': True,
              '--threads': threads
              }
    if not remove_usearch_logs:
        params['--log'] = log_filepath
    clusters_fp = output_uc_filepath
    app = Usearch61(params, WorkingDir=output_dir, HALT_EXEC=HALT_EXEC)
    app_result = app()
    return clusters_fp, app_result