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
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
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