def calculate_reference_sequences_hamming_distance(first_reference_sequence,
                                                   second_reference_sequence,
                                                   fragment):
    first_hamming_distance = base.calculate_hamming_distance(
        first_reference_sequence, fragment)
    second_hamming_distance = base.calculate_hamming_distance(
        second_reference_sequence, fragment)
    return min(first_hamming_distance, second_hamming_distance)
def search(experience_number):
    fragments = base.read_data_from_file(experience_number, 'fragment')
    increase_fragments_count(fragments)
    best_reference_seq = {
        'first': None,
        'second': None,
        'score': 0
    }
    for i in range(MAX_HILL_CLIMBS_COUNT):
        print('hill climb number ' + str(i) + '...')
        local_best_reference_seqs = climb_hill(fragments)
        if local_best_reference_seqs['score'] > best_reference_seq['score']:
            best_reference_seq = local_best_reference_seqs
    haplotypes = base.read_data_from_file(experience_number, 'haplotype')
    print('Accuracy 1: ' + str((base.HAPLOTYPE_LENGTH - base.calculate_hamming_distance(
        best_reference_seq['first'], haplotypes[0])) / base.HAPLOTYPE_LENGTH))
    print('Accuracy 2: ' + str((base.HAPLOTYPE_LENGTH - base.calculate_hamming_distance(
        best_reference_seq['second'], haplotypes[1])) / base.HAPLOTYPE_LENGTH))
def search(experience_number):
    fragments = base.read_data_from_file(experience_number, 'fragment')
    increase_fragments_count(fragments)
    init_edges_pheromones(fragments)
    best_sequences = {'score': 0}
    for i in range(ANTS_COUNT):
        print('Deploying ant number ' + str(i) + '...')
        sequences = deploy_ant(fragments)
        if sequences['score'] > best_sequences['score']:
            best_sequences['first'] = sequences['first']
            best_sequences['second'] = sequences['second']
            best_sequences['score'] = sequences['score']
    haplotypes = base.read_data_from_file(experience_number, 'haplotype')
    print('Accuracy 1: ' +
          str((base.HAPLOTYPE_LENGTH - base.calculate_hamming_distance(
              best_sequences['first'], haplotypes[0])) /
              base.HAPLOTYPE_LENGTH))
    print('Accuracy 2: ' +
          str((base.HAPLOTYPE_LENGTH - base.calculate_hamming_distance(
              best_sequences['second'], haplotypes[1])) /
              base.HAPLOTYPE_LENGTH))
def search(experience_number):
    fragments = base.read_data_from_file(experience_number, 'fragment')
    increase_fragments_count(fragments)
    best_sequence_pair = {'score': 0}
    population = generate_random_population()
    for i in range(10):
        print('Generation number ' + str(i) + '...')
        population = reproduce_new_population(population, fragments)
        best, score = get_fittest_in_population(population, fragments)
        if score > best_sequence_pair['score']:
            best_sequence_pair['first'] = best[0]
            best_sequence_pair['second'] = best[1]
            best_sequence_pair['score'] = score
    haplotypes = base.read_data_from_file(experience_number, 'haplotype')
    print('Accuracy 1: ' +
          str((base.HAPLOTYPE_LENGTH - base.calculate_hamming_distance(
              best_sequence_pair['first'], haplotypes[0])) /
              base.HAPLOTYPE_LENGTH))
    print('Accuracy 2: ' +
          str((base.HAPLOTYPE_LENGTH - base.calculate_hamming_distance(
              best_sequence_pair['second'], haplotypes[1])) /
              base.HAPLOTYPE_LENGTH))
def are_compatible(sequence1, sequence2):
    return base.calculate_hamming_distance(sequence1, sequence2) == 0
Пример #6
0
def are_compatible(reference_sequence, fragment):
    return base.calculate_hamming_distance(reference_sequence, fragment) == 0