def usearch_chimera_filter_de_novo(
        fasta_filepath,
        output_chimera_filepath=None,
        output_non_chimera_filepath=None,
        abundance_skew=2.0,
        log_name="uchime_de_novo_chimera_filtering.log",
        usersort=False,
        HALT_EXEC=False,
        save_intermediate_files=False,
        remove_usearch_logs=False,
        working_dir=None):
    if not output_chimera_filepath:
        _, output_chimera_filepath = mkstemp(prefix='uchime_chimeras_',
                                             suffix='.fasta')
    if not output_non_chimera_filepath:
        _, output_non_chimera_filepath = mkstemp(prefix='uchime_non_chimeras_',
                                                 suffix='.fasta')
    log_filepath = join(working_dir, log_name)
    params = {'--abskew': abundance_skew}
    app = Usearch(params, WorkingDir=working_dir, HALT_EXEC=HALT_EXEC)
    if usersort:
        app.Parameters['--usersort'].on()
    data = {'--uchime': fasta_filepath,
            '--chimeras': output_chimera_filepath,
            '--nonchimeras': output_non_chimera_filepath
            }
    if not remove_usearch_logs:
        data['--log'] = log_filepath
    app_result = app(data)
    if not save_intermediate_files:
        remove_files([output_chimera_filepath])
    return app_result, output_non_chimera_filepath