def __init__(self): ## create circuit instance # Py = Excitatory, additive self.N_Py = N_Py self.Py_rf = linspace(-180, 180, N_Py) # SOM = Inhibitory, additive self.N_SOM = N_SOM # PV = Inhibitory, multiplicative self.N_PV = N_PV ## Baseline rates -- light off self.bPy = 0 #1 self.bSOM = 0 #1 self.bPV = 0 #1 # Synaptic weights self.wInPy = 0.5 * utils.cos_weight(stim_rf, Py_rf, 1) self.wInSOM = 0. * ones((1, N_SOM)) self.wInPV = 0. * ones((1, N_PV)) self.wPyPy = 0. * ones((N_Py, N_Py)) self.wPySOM = 5. / N_Py * ones((N_Py, N_SOM)) self.wPyPV = 5. / N_Py * ones( (N_Py, N_PV)) #5. / N_Py * ones((N_Py, N_PV)) self.wSOMPy = -2. * ones((N_SOM, N_Py)) # -2. self.wSOMSOM = -0. * ones((N_SOM, N_SOM)) self.wSOMPV = -0.1 * ones((N_SOM, N_PV)) #-0.05 * ones((N_SOM, N_PV)) # default is for PV cells to be divisive self.additive = 0
N_Py = 25 Py_rf = linspace(-180, 180, N_Py) # SOM = Inhibitory, additive N_SOM = 1 # PV = Inhibitory, multiplicative N_PV = 1 # Baseline rates -- light off bPy = 0 #1 bSOM = 0 #1 bPV = 0 #1 # Synaptic weights -- light off wInPy = 0.5 * utils.cos_weight(stim_rf, Py_rf, 1) wInSOM = 0. * ones((1, N_SOM)) wInPV = 0. * ones((1, N_PV)) wPyPy = 0. * ones((N_Py, N_Py)) wPySOM = 5. / N_Py * ones((N_Py, N_SOM)) wPyPV = 5. / N_Py * ones((N_Py, N_PV)) #5. / N_Py * ones((N_Py, N_PV)) wSOMPy = -2. * ones((N_SOM, N_Py)) # -2. wSOMSOM = -0. * ones((N_SOM, N_SOM)) wSOMPV = -0.1 * ones((N_SOM, N_PV)) #-0.05 * ones((N_SOM, N_PV)) # multiplicative wPVPy = 0.1 * ones((N_PV, N_Py)) # additive wPVPyADD = -1.0 * ones((N_PV, N_Py))
#touch_angle = arange(0, 91, 15) touch_strength = arange(0, 101, 5) N_In = 4 In_rf = [-135, -45, 45, 135] N_Py = 25 #Py_rf = arange(-180.0, 180.0, 360.0/N_Py) Py_rf = linspace(-180, 180, N_Py) #N_SOM = 4 N_SOM = 1 N_PV = 1 InPy_weight = 15 wInPy = InPy_weight * utils.cos_weight(Py_rf, In_rf, 1) #wInI = InI_weight * utils.lin_weight(I_rf, In_rf, 1) InSOM_weight = 0 wInSOM = InSOM_weight * ones((N_In, N_SOM)) #wInSOM = InSOM_weight * eye(N_In, N_SOM) wPySOM = 0.2 * ones((N_Py, N_SOM)) # Uniform SOM I weight distribution wSOMPy = -1 * ones((N_SOM, N_Py)) # Uniform for mult gain #wSOMPy = 0 * ones((N_SOM, N_Py)) # Opposite cos distribution #wSOMPy = -0.7 * utils.cos_weight(Py_rf, Pyn_rf, 1) wInPV = 0 * ones((N_In, N_PV))
N_Py = 25 Py_rf = linspace(-180, 180, N_Py) # SOM = Inhibitory, additive N_SOM = 1 # PV = Inhibitory, multiplicative N_PV = 1 # Baseline rates -- light off bPy = 0 #1 bSOM = 0 #1 bPV = 0 #1 # Synaptic weights -- light off wInPy = 1. * utils.cos_weight(stim_rf, Py_rf, 1) wInSOM = 0. * ones((1, N_SOM)) wInPV = 0. * ones((1, N_PV)) wPyPy = 0. * ones((N_Py, N_Py)) wPySOM = 5. / N_Py * ones((N_Py, N_SOM)) wPyPV = 2 / N_Py * ones((N_Py, N_PV)) #5. / N_Py * ones((N_Py, N_PV)) wSOMPy = -2. * ones((N_SOM, N_Py)) wSOMSOM = -0. * ones((N_SOM, N_SOM)) wSOMPV = -2 * ones((N_SOM, N_PV)) #-0.05 * ones((N_SOM, N_PV)) wPVPy = 0.1 * ones((N_PV, N_Py)) wPVSOM = 0. * ones((N_PV, N_SOM)) wPVPV = 0. * ones((N_PV, N_PV))