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'}
Beispiel #2
0
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])
Beispiel #3
0
    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])
Beispiel #5
0
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])