def execute(self, context): mapping_id = bpy.context.scene.pam_mapping.active_set pre = model.MODEL.connections[mapping_id].pre_layer.obj post = model.MODEL.connections[mapping_id].post_layer.obj #neuron = bpy.data.objects['Neuron_Sphere'] distances_pre = CL.getDistancesPerParticle( model.CONNECTION_RESULTS[mapping_id]['d']) pre_indices = CL.getParticleIndicesForVertices(pre, 0) for i, p_ind in enumerate(pre_indices): if distances_pre[p_ind] == 0: pv.visualizePoint( pre.particle_systems[0].particles[p_ind].location) distances_post = [] post_indices = CL.getParticleIndicesForVertices(post, 0) valid_post_indices = [ ] # list of post indices with valid distance values for i, p in enumerate(post.particle_systems[0].particles): pre_neurons, synapses = model.getPreIndicesOfPostIndex( mapping_id, i) distance = [] for j in range(len(pre_neurons)): distance.append(model.CONNECTION_RESULTS[mapping_id]['d'][ pre_neurons[j]][synapses[j]]) mean = np.mean(distance) if np.isnan(mean): distances_post.append(0) else: distances_post.append(mean) valid_post_indices.append(i) for i, p_ind in enumerate(post_indices): if distances_post[p_ind] == 0: pv.visualizePoint( post.particle_systems[0].particles[p_ind].location) print(distances_post) print(type(distances_pre)) print(type(distances_post)) distances_post_valid = list(np.take(distances_post, valid_post_indices)) mean_d = np.mean(list(distances_pre) + distances_post_valid) min_percent = np.min(list(distances_pre) + distances_post_valid) / mean_d max_percent = np.max(list(distances_pre) + distances_post_valid) / mean_d distances_pre = distances_pre / mean_d distances_post = np.array(distances_post) / mean_d CL.colorizeLayer(pre, np.take(distances_pre, pre_indices), [min_percent, max_percent]) CL.colorizeLayer(post, np.take(distances_post, post_indices), [min_percent, max_percent]) return {'FINISHED'}
def colorizeMapping(mapping_id): """ Colorizes pre layer for a given mapping """ pre = model.CONNECTIONS[mapping_id][0][0] post = model.CONNECTIONS[mapping_id][0][-1] #neuron = bpy.data.objects['Neuron_Sphere'] distances_pre = getDistancesPerParticle( model.CONNECTION_RESULTS[mapping_id]['d']) pre_indices = getParticleIndicesForVertices(pre, 0) for i, p_ind in enumerate(pre_indices): if distances_pre[p_ind] == 0: pv.visualizePoint( pre.particle_systems[0].particles[p_ind].location) distances_post = [] post_indices = getParticleIndicesForVertices(post, 0) for i, p in enumerate(post.particle_systems[0].particles): pre_neurons, synapses = model.getPreIndicesOfPostIndex(mapping_id, i) distance = [] for j in range(len(pre_neurons)): distance.append(model.CONNECTION_RESULTS[mapping_id]['d'][ pre_neurons[j]][synapses[j]]) mean = np.mean(distance) if np.isnan(mean): distances_post.append(0) else: distances_post.append(mean) for i, p_ind in enumerate(post_indices): if distances_post[p_ind] == 0: pv.visualizePoint( post.particle_systems[0].particles[p_ind].location) print(distances_post) print(type(distances_pre)) print(type(distances_post)) mean_d = np.mean(list(distances_pre) + distances_post) min_percent = np.min(list(distances_pre) + distances_post) / mean_d max_percent = np.max(list(distances_pre) + distances_post) / mean_d distances_pre = distances_pre / mean_d distances_post = np.array(distances_post) / mean_d colorizeLayer(pre, np.take(distances_pre, pre_indices), [min_percent, max_percent]) colorizeLayer(post, np.take(distances_post, post_indices), [min_percent, max_percent])
def execute(self, context): mapping_id = bpy.context.scene.pam_mapping.active_set pre = model.MODEL.connections[mapping_id].pre_layer.obj post = model.MODEL.connections[mapping_id].post_layer.obj #neuron = bpy.data.objects['Neuron_Sphere'] distances_pre = CL.getDistancesPerParticle(model.CONNECTION_RESULTS[mapping_id]['d']) pre_indices = CL.getParticleIndicesForVertices(pre, 0) for i, p_ind in enumerate(pre_indices): if distances_pre[p_ind] == 0: pv.visualizePoint(pre.particle_systems[0].particles[p_ind].location) distances_post = [] post_indices = CL.getParticleIndicesForVertices(post, 0) valid_post_indices = [] # list of post indices with valid distance values for i, p in enumerate(post.particle_systems[0].particles): pre_neurons, synapses = model.getPreIndicesOfPostIndex(mapping_id, i) distance = [] for j in range(len(pre_neurons)): distance.append(model.CONNECTION_RESULTS[mapping_id]['d'][pre_neurons[j]][synapses[j]]) mean = np.mean(distance) if np.isnan(mean): distances_post.append(0) else: distances_post.append(mean) valid_post_indices.append(i) for i, p_ind in enumerate(post_indices): if distances_post[p_ind] == 0: pv.visualizePoint(post.particle_systems[0].particles[p_ind].location) print(distances_post) print(type(distances_pre)) print(type(distances_post)) distances_post_valid = list(np.take(distances_post, valid_post_indices)) mean_d = np.mean(list(distances_pre) + distances_post_valid) min_percent = np.min(list(distances_pre) + distances_post_valid) / mean_d max_percent = np.max(list(distances_pre) + distances_post_valid) / mean_d distances_pre = distances_pre / mean_d distances_post = np.array(distances_post) / mean_d CL.colorizeLayer(pre, np.take(distances_pre, pre_indices), [min_percent, max_percent]) CL.colorizeLayer(post, np.take(distances_post, post_indices), [min_percent, max_percent]) return {'FINISHED'}
def colorizeMapping(mapping_id): """ Colorizes pre layer for a given mapping """ pre = model.CONNECTIONS[mapping_id][0][0] post = model.CONNECTIONS[mapping_id][0][-1] #neuron = bpy.data.objects['Neuron_Sphere'] distances_pre = getDistancesPerParticle(model.CONNECTION_RESULTS[mapping_id]['d']) pre_indices = getParticleIndicesForVertices(pre, 0) for i, p_ind in enumerate(pre_indices): if distances_pre[p_ind] == 0: pv.visualizePoint(pre.particle_systems[0].particles[p_ind].location) distances_post = [] post_indices = getParticleIndicesForVertices(post, 0) for i, p in enumerate(post.particle_systems[0].particles): pre_neurons, synapses = model.getPreIndicesOfPostIndex(mapping_id, i) distance = [] for j in range(len(pre_neurons)): distance.append(model.CONNECTION_RESULTS[mapping_id]['d'][pre_neurons[j]][synapses[j]]) mean = np.mean(distance) if np.isnan(mean): distances_post.append(0) else: distances_post.append(mean) for i, p_ind in enumerate(post_indices): if distances_post[p_ind] == 0: pv.visualizePoint(post.particle_systems[0].particles[p_ind].location) print(distances_post) print(type(distances_pre)) print(type(distances_post)) mean_d = np.mean(list(distances_pre) + distances_post) min_percent = np.min(list(distances_pre) + distances_post) / mean_d max_percent = np.max(list(distances_pre) + distances_post) / mean_d distances_pre = distances_pre / mean_d distances_post = np.array(distances_post) / mean_d colorizeLayer(pre, np.take(distances_pre, pre_indices), [min_percent, max_percent]) colorizeLayer(post, np.take(distances_post, post_indices), [min_percent, max_percent])
def plotArray(grid, fac=1.): for x, row in enumerate(grid): for y, cell in enumerate(row): pv.visualizePoint([x / 4, y / 4, cell * fac])
def plotArray(grid,fac=1.): for x, row in enumerate(grid): for y, cell in enumerate(row): pv.visualizePoint([x/4, y/4, cell*fac])