Ejemplo n.º 1
0
def calc_average_distance(genomes):
    genetic_distance_list = []
    for genome in genomes:
        chromosome = genome[0].sequence
        random_chromosome = random.choice(genomes)[0].sequence
        genetic_distance_list.append(analytics.hamming_distance(random_chromosome, chromosome))
    return analytics.average(genetic_distance_list)
Ejemplo n.º 2
0
def calc_average_distance(genomes):
    genetic_distance_list = []
    for genome in genomes:
        chromosome = genome[0].sequence
        random_chromosome = random.choice(genomes)[0].sequence
        genetic_distance_list.append(
            analytics.hamming_distance(random_chromosome, chromosome))
    return analytics.average(genetic_distance_list)
Ejemplo n.º 3
0
def get_chromosomes_by_location(starting_time, pop_name, generation):
    organisms = database_calls.db_reconstruct_organisms(cur, starting_time, pop_name, generation)
    organism_chromosomes = {}
    for location in locations:
        organism_chromosomes[location] = []
        for organism in organisms:
            if organism.status['location'] == location:
                organism_chromosomes[location].append(organism.genome[0].sequence)
    return organism_chromosomes

print('Starting main analysis...\n')
for generation in [1, 100, 200, 300, 400,500, 600, 700, 800, 900, 1000]:
    print('\rInitializing generation ' + str(generation) + '...')
    chromo_db = get_chromosomes_by_location(starting_time, 'pop_01', generation)
    results = [str(generation)]
    for location1 in locations:
        for location2 in locations:
            location_results = []
            if location1 != location2:
                print('\rAnalyzing ' + str(location1) + ' and ' + str(location2) + '...')
                for organism1 in chromo_db[location1]:
                    organism_results = []
                    for organism2 in chromo_db[location2]:
                        organism_results.append(analytics.hamming_distance(organism1, organism2))
                    location_results.append(analytics.average(organism_results))
                results.append(str(analytics.average(location_results)))
    outputfile.write(','.join(results) + '\n')
    print('\rGeneration ' + str(generation) + ' analysis complete...')

print('Simulation Anaysis Complete!')