def sort_by_abundance_usearch61(seq_path,
                                output_dir='.',
                                rev=False,
                                minlen=64,
                                remove_usearch_logs=False,
                                HALT_EXEC=False,
                                output_fna_filepath=None,
                                output_uc_filepath=None,
                                log_name="abundance_sorted.log",
                                threads=1.0):
    if not output_fna_filepath:
        _, output_fna_filepath = mkstemp(prefix='abundance_sorted',
                                         suffix='.fna')
    if not output_uc_filepath:
        _, output_uc_filepath = mkstemp(prefix='abundance_sorted',
                                        suffix='.uc')
    log_filepath = join(output_dir, log_name)
    params = {'--minseqlength': minlen,
              '--sizeout': True,
              '--derep_fulllength': seq_path,
              '--output': output_fna_filepath,
              '--uc': output_uc_filepath,
              '--threads': threads
              }
    if rev:
        params['--strand'] = 'both'
    if not remove_usearch_logs:
        params['--log'] = log_filepath
    app = Usearch61(params, WorkingDir=output_dir, HALT_EXEC=HALT_EXEC)
    app_result = app()
    return output_fna_filepath, output_uc_filepath, app_result