"""
Some configuration of neuronal properties so that we pick up
within this file
"""
from __future__ import print_function
import numpy as np
def get_connectivity_and_synapses_matrix(NAME, number=2, SI_units=False):
# creating empty arry of objects (future dictionnaries)
M = np.empty((number, number), dtype=object)
if NAME=='Vogels-Abbott':
exc_pop = {'p_conn':0.02, 'Q':7., 'Tsyn':5., 'Erev':0.}
inh_pop = {'p_conn':0.02, 'Q':67., 'Tsyn':10., 'Erev':-80.}
M[:,0] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : exc
M[:,1] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : inh
M[0,0]['name'], M[1,0]['name'] = 'ee', 'ie'
M[0,1]['name'], M[1,1]['name'] = 'ei', 'ii'
# in the first element we put the network number and connectivity information
M[0,0]['Ntot'], M[0,0]['gei'] = 5000, 0.2
elif NAME=='CONFIG1':
exc_pop = {'p_conn':0.05, 'Q':1.5, 'Tsyn':5., 'Erev':0.}
inh_pop = {'p_conn':0.05, 'Q':5., 'Tsyn':5., 'Erev':-80.}
M[:,0] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : exc
M[:,1] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : inh
M[0,0]['name'], M[1,0]['name'] = 'ee', 'ie'
M[0,1]['name'], M[1,1]['name'] = 'ei', 'ii'
# in the first element we put the network number and connectivity information
M[0,0]['Ntot'], M[0,0]['gei'] = 10000, 0.2
M[0,0]['ext_drive'] = 3. # we also store here the choosen excitatory drive
M[0,0]['afferent_exc_fraction'] = 1. # we also store here the choosen excitatory drive
elif NAME=='CONFIG1000':
exc_pop = {'p_conn':0.00005, 'Q':1.5, 'Tsyn':5., 'Erev':0.}
inh_pop = {'p_conn':0.00005, 'Q':5., 'Tsyn':5., 'Erev':-80.}
M[:,0] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : exc
M[:,1] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : inh
M[0,0]['name'], M[1,0]['name'] = 'ee', 'ie'
M[0,1]['name'], M[1,1]['name'] = 'ei', 'ii'
# in the first element we put the network number and connectivity information
M[0,0]['Ntot'], M[0,0]['gei'] = 10000000, 0.2
M[0,0]['ext_drive'] = 0. # we also store here the choosen excitatory drive
M[0,0]['afferent_exc_fraction'] = 1. # we also store here the choosen excitatory drive
#ext=0+ Qe=3...up and down
elif NAME=='CONFIG1_UD_N':
exc_pop = {'p_conn':0.0005, 'Q':1., 'Tsyn':5., 'Erev':0.}
inh_pop = {'p_conn':0.0005, 'Q':3., 'Tsyn':5., 'Erev':-80.}
M[:,0] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : exc
M[:,1] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : inh
M[0,0]['name'], M[1,0]['name'] = 'ee', 'ie'
M[0,1]['name'], M[1,1]['name'] = 'ei', 'ii'
# in the first element we put the network number and connectivity information
M[0,0]['Ntot'], M[0,0]['gei'] = 10000, 0.2
M[0,0]['ext_drive'] = 0. # we also store here the choosen excitatory drive
M[0,0]['afferent_exc_fraction'] = 1. # we also store here the choosen excitatory drive
elif NAME=='CONFIG1_UD':
exc_pop = {'p_conn':0.05, 'Q':1.5, 'Tsyn':5., 'Erev':0.}
inh_pop = {'p_conn':0.05, 'Q':5., 'Tsyn':5., 'Erev':-80.}
M[:,0] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : exc
M[:,1] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : inh
M[0,0]['name'], M[1,0]['name'] = 'ee', 'ie'
M[0,1]['name'], M[1,1]['name'] = 'ei', 'ii'
# in the first element we put the network number and connectivity information
M[0,0]['Ntot'], M[0,0]['gei'] = 10000, 0.2
M[0,0]['ext_drive'] = 0. # we also store here the choosen excitatory drive
M[0,0]['afferent_exc_fraction'] = 1. # we also store here the choosen excitatory drive
elif NAME=='CONFIG2':
exc_pop = {'p_conn':0.05, 'Q':2., 'Tsyn':5., 'Erev':0.}
inh_pop = {'p_conn':0.05, 'Q':6., 'Tsyn':5., 'Erev':-80.}
M[:,0] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : exc
M[:,1] = [exc_pop.copy(), inh_pop.copy()] # post-synaptic : inh
M[0,0]['name'], M[1,0]['name'] = 'ee', 'ie'
M[0,1]['name'], M[1,1]['name'] = 'ei', 'ii'
# in the first element we put the network number and connectivity information
M[0,0]['Ntot'], M[0,0]['gei'] = 10000, 0.2
M[0,0]['ext_drive'] = 0. # we also store here the choosen excitatory drive
M[0,0]['afferent_exc_fraction'] = 1. # we also store here the choosen excitatory drive
else:
print('====================================================')
print('------------ NETWORK NOT RECOGNIZED !! ---------------')
print('====================================================')
if SI_units:
#print('synaptic network parameters in SI units')
for m in M.flatten():
m['Q'] *= 1e-9
m['Erev'] *= 1e-3
m['Tsyn'] *= 1e-3
else:
print('synaptic network parameters --NOT-- in SI units')
return M
if __name__=='__main__':
#print(__doc__)
M = get_connectivity_and_synapses_matrix('Vogels-Abbott')
#print('synapses of the exc. pop. (pop. 0) : M[:,0]')
#print(M[:,0])
#print('synapses of the inh. pop. (pop. 1) : M[:,1]')
#print(M[:,1])