<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def self_compare(fastas, id2desc, algorithm):
 """ compare genome to self to get the best possible bit score for each ORF """

    for fasta in fastas:
        blast = open(search(fasta, fasta, method = algorithm, alignment = 'local'))
        for hit in best_blast(blast, 1):
            id, bit = hit[0].split()[0], float(hit[-1])
            id2desc[id].append(bit)
    return id2desc