def _check_euk_contamination(self, hmm_hit_tables):
euk_hit_table = HMMreader(hmm_hit_tables.pop(-<NUM_LIT:1>))<EOL>other_hit_tables = [HMMreader(x) for x in hmm_hit_tables]<EOL>reads_unique_to_eukaryotes = []<EOL>reads_with_better_euk_hit = []<EOL>for hit in euk_hit_table.names():<EOL><INDENT>bits = []<EOL>for hit_table in other_hit_tables:<EOL><INDENT>if hit in hit_table.names():<EOL><INDENT>bits.append(hit_table.bit(hit))<EOL><DEDENT>else:<EOL><INDENT>reads_unique_to_eukaryotes.append(hit)<EOL><DEDENT><DEDENT>if bits:<EOL><INDENT>if any([x for x in bits if x > euk_hit_table.bit(hit)]):<EOL><INDENT>continue<EOL><DEDENT>else:<EOL><INDENT>reads_with_better_euk_hit.append(hit)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>continue<EOL><DEDENT><DEDENT>if len(reads_with_better_euk_hit) == <NUM_LIT:0>:<EOL><INDENT>logging.info("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>logging.info("<STR_LIT>" % len(reads_with_better_euk_hit + reads_unique_to_eukaryotes))<EOL><DEDENT>euk_reads = set(reads_with_better_euk_hit + reads_unique_to_eukaryotes)<EOL>return euk_reads<EOL>
check_euk_contamination - Check output HMM tables hits reads that hit
                          the 18S HMM with a higher bit score.

Parameters
----------
hmm_hit_tables : array
    Array of paths to the output files produced by hmmsearch or
    nhmmer.
run_stats : dict
    A dictionary to updatewith the number of unique 18S reads and reads
    detected by both 18S and non-18S HMMs

Returns
-------
euk_reads : set
    Non-redundant set of all read names deemed to be eukaryotic