Ejemplo n.º 1
0
def genMaxOpti(nb):
    res = []
    for i in xrange(0, nb):
        a = brian.rand()
        b = brian.rand()
        c = brian.rand()
        if max(a,b,c) == a:
            res.append('a')
            if max(b,c) == b:
                res.append('b')
                res.append('c')
            else:
                res.append('c')
                res.append('b')
        elif max(a,b,c) == b:
            res.append('b')
            if max(a,c) == a:
                res.append('a')
                res.append('c')
            else:
                res.append('c')
                res.append('a')
        else:
            res.append('c')
            if max(a,b) == a:
                res.append('a')
                res.append('b')
            else:
                res.append('b')
                res.append('a')
    return res
    def _build_model(self, traj, brian_list, network_dict):
        """Builds the neuron groups from `traj`.

        Adds the neuron groups to `brian_list` and `network_dict`.

        """

        model = traj.parameters.model

        # Create the equations for both models
        eqs_dict = self._build_model_eqs(traj)

        # Create inhibitory neurons
        eqs_i = eqs_dict['i']
        neurons_i = NeuronGroup(N=model.N_i,
                                model=eqs_i,
                                threshold=model.V_th,
                                reset=model.reset_func,
                                refractory=model.refractory,
                                freeze=True,
                                compile=True,
                                method='Euler')

        # Create excitatory neurons
        eqs_e = eqs_dict['e']
        neurons_e = NeuronGroup(N=model.N_e,
                                model=eqs_e,
                                threshold=model.V_th,
                                reset=model.reset_func,
                                refractory=model.refractory,
                                freeze=True,
                                compile=True,
                                method='Euler')

        # Set the bias terms
        neurons_e.mu = rand(
            model.N_e) * (model.mu_e_max - model.mu_e_min) + model.mu_e_min
        neurons_i.mu = rand(
            model.N_i) * (model.mu_i_max - model.mu_i_min) + model.mu_i_min

        # Set initial membrane potentials
        neurons_e.V = rand(model.N_e)
        neurons_i.V = rand(model.N_i)

        # Add both groups to the `brian_list` and the `network_dict`
        brian_list.append(neurons_i)
        brian_list.append(neurons_e)
        network_dict['neurons_e'] = neurons_e
        network_dict['neurons_i'] = neurons_i
Ejemplo n.º 3
0
    def _build_model(self, traj, brian_list, network_dict):
        """Builds the neuron groups from `traj`.

        Adds the neuron groups to `brian_list` and `network_dict`.

        """
        assert(isinstance(traj,SingleRun))

        model = traj.parameters.model

        # Create the equations for both models
        eqs_dict = self._build_model_eqs(traj)

        # Create inhibitory neurons
        eqs_i = eqs_dict['i']
        neurons_i = NeuronGroup(N=model.N_i,
                              model = eqs_i,
                              threshold=model.V_th,
                              reset=model.reset_func,
                              refractory=model.refractory,
                              freeze=True,
                              compile=True,
                              method='Euler')

        # Create excitatory neurons
        eqs_e = eqs_dict['e']
        neurons_e = NeuronGroup(N=model.N_e,
                              model = eqs_e,
                              threshold=model.V_th,
                              reset=model.reset_func,
                              refractory=model.refractory,
                              freeze=True,
                              compile=True,
                              method='Euler')


        # Set the bias terms
        neurons_e.mu =rand(model.N_e) * (model.mu_e_max - model.mu_e_min) + model.mu_e_min
        neurons_i.mu =rand(model.N_i) * (model.mu_i_max - model.mu_i_min) + model.mu_i_min

        # Set initial membrane potentials
        neurons_e.V = rand(model.N_e)
        neurons_i.V = rand(model.N_i)

        # Add both groups to the `brian_list` and the `network_dict`
        brian_list.append(neurons_i)
        brian_list.append(neurons_e)
        network_dict['neurons_e']=neurons_e
        network_dict['neurons_i']=neurons_i
Ejemplo n.º 4
0
def genTabFreq(maxi):
    res = []
    if maxi == 'a':
        if brian.rand() > 0.5:
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
            res.append(2*brian.Hz)
            res.append(50*brian.Hz)
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
        else:
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
            res.append(50*brian.Hz)
    elif maxi == 'b':
        if brian.rand() > 0.5:
            res.append(2*brian.Hz)
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
        else:
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
            res.append(2*brian.Hz)
    else:
        if brian.rand() > 0.5:
            res.append(50*brian.Hz)
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
        else:
            res.append(2*brian.Hz)
            res.append(2*brian.Hz)
            res.append(50*brian.Hz)
            res.append(2*brian.Hz)
            res.append(50*brian.Hz)
            res.append(50*brian.Hz)
    return res
#! /usr/bin/python
# -*- coding: utf-8 -*-

import brian

tau = 20 * brian.msecond 
Vt = -50 * brian.mvolt
Vr = -60 * brian.mvolt
El = -60 * brian.mvolt

N = 40

G = brian.NeuronGroup(N=N, model='dV/dt = -(V-El)/tau : volt' , threshold=Vt, reset=Vr)
M = brian.SpikeMonitor(G)

G.V = Vr + 2*(Vt-Vr)*brian.rand(N)

brian.run(1 * brian.second)

print M.nspikes