Skip to content

Commit 5ee17c8

Browse files
committed
A few uncommitted commits
1 parent 2d24fa2 commit 5ee17c8

File tree

3 files changed

+175
-40
lines changed

3 files changed

+175
-40
lines changed

exploration.ipynb

Lines changed: 113 additions & 14 deletions
Large diffs are not rendered by default.

plotting.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,36 @@ def plot_comparison(dataset_1, dataset_2, title, legend_1, legend_2, output_file
2525
plt.grid(linestyle=':', linewidth=0.5)
2626
plt.title(title)
2727

28+
plt.savefig(output_file)
29+
30+
31+
32+
def metapopulation_plot_comparison(dataset_1, dataset_2, title, legend_1, legend_2, output_file, dataset_3 = None, legend_3 = None):
33+
dataset_1_global = pd.read_csv(f"{dataset_1}_metapop_set_counts.csv", index_col=0)
34+
dataset_2_global = pd.read_csv(f"{dataset_2}_metapop_set_counts.csv", index_col=0)
35+
36+
plt.plot(dataset_1_global.mean(axis=1), color = 'xkcd:blue')
37+
plt.plot(dataset_2_global.mean(axis=1), color = 'xkcd:puce')
38+
39+
plt.fill_between(dataset_1_global.index, dataset_1_global.mean(axis=1) - dataset_1_global.std(axis=1), dataset_1_global.mean(axis=1) + dataset_1_global.std(axis=1), color='xkcd:blue', alpha=0.3)
40+
plt.fill_between(dataset_2_global.index, dataset_2_global.mean(axis=1) - dataset_2_global.std(axis=1), dataset_2_global.mean(axis=1) + dataset_2_global.std(axis=1), color='xkcd:puce', alpha=0.3)
41+
42+
plt.axvline(500, color="black", linestyle='--', ymax=1)
43+
44+
if dataset_3 is not None:
45+
dataset_3_global = pd.read_csv(f"{dataset_3}_metapop_set_counts.csv", index_col=0)
46+
plt.plot(dataset_3_global.mean(axis=1), color = 'xkcd:light purple')
47+
plt.fill_between(dataset_3_global.index, dataset_3_global.mean(axis=1) - dataset_3_global.std(axis=1), dataset_3_global.mean(axis=1) + dataset_3_global.std(axis=1), color='xkcd:light purple', alpha=0.3)
48+
49+
50+
if dataset_3 is not None:
51+
plt.legend([f"{legend_1}", f"{legend_2}", f"{legend_3}"])
52+
else:
53+
plt.legend([f"{legend_1}", f"{legend_2}"])
54+
55+
plt.ylabel("Number of feature sets")
56+
plt.xlabel("Generations (x100)")
57+
plt.grid(linestyle=':', linewidth=0.5)
58+
plt.title(title)
59+
2860
plt.savefig(output_file)

script.py

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,43 @@
44

55
from metapypulation.simulation import Simulation
66

7-
total_population = 800
8-
replicates = 1
9-
migrations = ['island', 'stepping_stone']
10-
interactions = ['neutral_interaction', 'axelrod_interaction']
7+
total_population = 200
8+
replicates = 25
9+
migrations = ['island'] # 'stepping_stone'
10+
interactions = ['neutral_interaction'] # 'axelrod_interaction'
11+
#number_of_subpopulations = [4]
12+
subpopulations = 4
13+
population_sizes = [[50, 50, 50, 50]]
1114

1215
start_time = time.time()
1316

17+
count = 0
18+
1419
for migration in migrations:
1520
for interaction in interactions:
16-
17-
subpopulations = 8
18-
rate_of_migration = 0.001
19-
20-
carrying_capacity = int(np.ceil(total_population / subpopulations)) # [283, 39, 39, 39]#
21-
generations = 200000
22-
burn_in = 50000
23-
24-
simulation = Simulation(generations,
25-
subpopulations,
26-
migration,
27-
interaction,
28-
carrying_capacity,
29-
replicates,
30-
f"./Outputs/TAG2024/01-neutral-axelrod/{subpopulations}subpop_{migration}_{interaction}",
31-
burn_in = burn_in,
32-
migration_rate = rate_of_migration)
33-
34-
simulation.run_simulation()
35-
21+
for rate_of_migration in [0.001, 0.1]:
22+
# rate_of_migration = 0.001
23+
24+
carrying_capacity = int(np.ceil(total_population / subpopulations)) # [283, 39, 39, 39]#
25+
generations = 200000 #350000
26+
burn_in = 0
27+
28+
simulation = Simulation(generations = generations,
29+
number_of_subpopulations=subpopulations,
30+
migration_matrix = migration,
31+
interaction = interaction,
32+
carrying_capacities = carrying_capacity,
33+
replicates = replicates,
34+
output_path = f"./Outputs/{subpopulations}subpop_popsize{population_sizes[0]}_{migration}_{interaction}_{rate_of_migration}_noburnin", #TAG2024/04-migration-rates/{subpopulations}subpop_{migration}_{interaction}_m{rate_of_migration}",
35+
burn_in = burn_in,
36+
migration_rate = rate_of_migration)
37+
38+
simulation.run_simulation()
39+
count = count + 1
3640
#f"./Outputs/SourceSink/pop{total_population}/{migrations}/{subpopulations}subpop_m1e-3_burnin_{carrying_capacity[0]}",
3741

3842
end_time = time.time() - start_time
3943
hours = round(end_time//3600)
40-
minutes = round(end_time//60)
44+
minutes = round(end_time//60) - hours*60
4145
seconds = round(end_time) - hours*3600 - minutes*60
42-
print(f"Simulation of {replicates} replicates finished in {hours}h, {minutes}m and {seconds}s")
46+
print(f"Simulation of {count} sets of parameters, {replicates} replicates each, finished in {hours}h, {minutes}m and {seconds}s")

0 commit comments

Comments
 (0)