Repository navigation
Expand file tree
/
Copy pathbenchmark_optimization.py
More file actions
52 lines (40 loc) · 1.91 KB
/
Copy pathbenchmark_optimization.py
File metadata and controls
52 lines (40 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import model_builder
import copy
import random
from joblib import Parallel, delayed
def main():
datasets = []
datasets.append((['../raw_connectome/FIB-25/annotations-body.json'], ['../raw_connectome/FIB-25/annotations-synapse.json'], False))
datasets.append((['../raw_connectome/FIB-19/body.txt'], ['../raw_connectome/FIB-19/export-fib19.json'], False))
dataset_bodies, dataset_synapses = model_builder.parse_datasets_to_model(datasets)
dataset_bodies_reduced = []
removable_indices = []
total_position_count = 0
known_position_count = 0
for i in range(0, len(dataset_bodies)):
bodies = dataset_bodies[i]
for body_key in list(bodies.keys()):
body = bodies[body_key]
if not body[1] == None:
known_position_count += 1
removable_indices.append((i, body_key))
total_position_count += 1
print(known_position_count)
print(total_position_count)
dataset_bodies_reduced.append(copy.deepcopy(dataset_bodies))
for i in range(0, 10):
# Remove 10%
select = random.sample(range(len(removable_indices)), int(known_position_count/10))
choices = [removable_indices[j] for j in select]
print(select)
for choice in choices:
body = dataset_bodies[choice[0]][choice[1]]
dataset_bodies[choice[0]][choice[1]] = (body[0], None)
print(choice)
removable_indices.remove(choice)
dataset_bodies_reduced.append(copy.deepcopy(dataset_bodies))
with Parallel(n_jobs=len(dataset_bodies_reduced)) as parallel:
parallel(delayed(model_builder.optimize_neuron_positions)(dataset_bodies_reduced[i], dataset_synapses, 'output/optimized_cell_positions_benchmark_'+str(i)+'.pickle')\
for i in range(0, len(dataset_bodies_reduced)))
if __name__ == "__main__":
main()