def __init__(self):
<EOL>self.reason = '<STR_LIT>'<EOL><INDENT>SIMULATION PARAMETERS        <EOL><DEDENT>self.dt = <NUM_LIT:0.1><EOL>self.tstart = <NUM_LIT:0><EOL>self.tstop = <NUM_LIT><EOL>if os.path.isdir(os.path.join('<STR_LIT:/>', '<STR_LIT>', os.environ['<STR_LIT>'])):<EOL><INDENT>self.savefolder = os.path.join('<STR_LIT:/>', '<STR_LIT>', os.environ['<STR_LIT>'],<EOL>'<STR_LIT>',<EOL>'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>self.savefolder = '<STR_LIT>'<EOL><DEDENT>self.sim_scripts_path = os.path.join(self.savefolder, '<STR_LIT>')<EOL>self.cells_path = os.path.join(self.savefolder, '<STR_LIT>')<EOL>self.figures_path = os.path.join(self.savefolder, '<STR_LIT>')<EOL>self.populations_path = os.path.join(self.savefolder, '<STR_LIT>')<EOL>self.raw_nest_output_path = os.path.join(self.savefolder,<EOL>'<STR_LIT>')<EOL>self.spike_output_path = os.path.join(self.savefolder,<EOL>'<STR_LIT>')<EOL><INDENT>MODEL PARAMETERS          <EOL><DEDENT>self.Npops = <NUM_LIT:9><EOL>self.full_scale_num_neurons = [[<NUM_LIT>,   <EOL><NUM_LIT> ],  <EOL>[<NUM_LIT>,   <EOL><NUM_LIT> ],  <EOL>[<NUM_LIT>,    <EOL><NUM_LIT> ],  <EOL>[<NUM_LIT>,   <EOL><NUM_LIT> ]]  <EOL>self.n_thal = <NUM_LIT><EOL>self.X = ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>']<EOL>self.Y = self.X[<NUM_LIT:1>:]<EOL>self.N_X = np.array([self.n_thal]+flattenlist([self.full_scale_num_neurons]))<EOL>self.conn_probs = np.array([[<NUM_LIT>,<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT:0.>,     <NUM_LIT>,  <NUM_LIT:0.>    ],  <EOL>[<NUM_LIT>,<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT:0.>,     <NUM_LIT>,  <NUM_LIT:0.>    ],  <EOL>[<NUM_LIT>,<NUM_LIT>, <NUM_LIT>, <NUM_LIT>,  <NUM_LIT>, <NUM_LIT>, <NUM_LIT>,  <NUM_LIT:0.>    ],  <EOL>[<NUM_LIT>,<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT:0.>,     <NUM_LIT>,  <NUM_LIT:0.>    ],  <EOL>[<NUM_LIT>,<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>,  <NUM_LIT:0.>    ],  <EOL>[<NUM_LIT>,<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>,   <NUM_LIT>, <NUM_LIT>,  <NUM_LIT:0.>    ],  <EOL>[<NUM_LIT>,<NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>,  <NUM_LIT>],  <EOL>[<NUM_LIT>,<NUM_LIT>,  <NUM_LIT>, <NUM_LIT>, <NUM_LIT>, <NUM_LIT>,  <NUM_LIT>,  <NUM_LIT>]]) <EOL>self.C_th = [[<NUM_LIT:0.0>,       <EOL><NUM_LIT:0.0>   ],   <EOL>[<NUM_LIT>,    <EOL><NUM_LIT>],   <EOL>[<NUM_LIT:0.0>,       <EOL><NUM_LIT:0.0>   ],   <EOL>[<NUM_LIT>,    <EOL><NUM_LIT>]]   <EOL>self.C_YX = np.c_[flattenlist([self.C_th]), self.conn_probs]<EOL>self.PSP_e = <NUM_LIT><EOL>self.PSP_23e_4e = self.PSP_e*<NUM_LIT:2><EOL>self.PSC_rel_sd = <NUM_LIT:0.1><EOL>self.g = -<NUM_LIT>               <EOL>self.g_4e_4i = self.g<EOL>self.lognormal_weights = False <EOL>self.delays = [<NUM_LIT>, <NUM_LIT>] <EOL>self.delay_rel_sd = <NUM_LIT:0.5><EOL>self.connectivity_table = '<STR_LIT>'<EOL>self.y_in_Y = [<EOL>[['<STR_LIT>'],['<STR_LIT>','<STR_LIT>']],<EOL>[['<STR_LIT>','<STR_LIT>','<STR_LIT>'],['<STR_LIT>','<STR_LIT>']],<EOL>[['<STR_LIT>','<STR_LIT>'],['<STR_LIT>','<STR_LIT>']],<EOL>[['<STR_LIT>','<STR_LIT>'],['<STR_LIT>','<STR_LIT>']]]<EOL>self.y = flattenlist(self.y_in_Y)<EOL>self.x_in_X = [['<STR_LIT>', '<STR_LIT>']] + sum(self.y_in_Y, [])<EOL>self.mapping_Yy = list(zip(<EOL>['<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>',<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>'],<EOL>self.y))<EOL>self.F_y = get_F_y(fname=self.connectivity_table, y=self.y)<EOL>self.F_yY = [[get_F_y(fname=self.connectivity_table, y=y) for y in Y] for Y in self.y_in_Y]<EOL>self.N_y =  np.array([self.full_scale_num_neurons[layer][pop] * self.F_yY[layer][pop][k]for layer, array in enumerate(self.y_in_Y)for pop, cell_types in enumerate(array)for k, _ in enumerate(cell_types)]).astype(int)<EOL>K_YX = np.zeros(self.C_YX.shape)<EOL>for i in range(K_YX.shape[<NUM_LIT:1>]):<EOL><INDENT>K_YX[:, i] = (np.log(<NUM_LIT:1.> - self.C_YX[:, i]) /<EOL>np.log(<NUM_LIT:1.> - <NUM_LIT:1.>/(self.N_X[<NUM_LIT:1>:]*<EOL>self.N_X[i])))<EOL><DEDENT>self.L_yXL = get_L_yXL(fname = self.connectivity_table,<EOL>y = self.y,<EOL>x_in_X = self.x_in_X,<EOL>L = ['<STR_LIT:1>','<STR_LIT>','<STR_LIT:4>','<STR_LIT:5>','<STR_LIT>'])<EOL>self.T_yX = get_T_yX(fname=self.connectivity_table, y=self.y,<EOL>y_in_Y=self.y_in_Y, x_in_X=self.x_in_X,<EOL>F_y=self.F_y)<EOL>Y, y = list(zip(*self.mapping_Yy))<EOL>self.K_yXL = {}<EOL>for i, (Y, y) in enumerate(self.mapping_Yy):<EOL><INDENT>self.K_yXL[y] = (self.T_yX[i, ] * K_YX[np.array(self.Y)==Y, ] * self.L_yXL[y]).astype(int)<EOL><DEDENT>self.k_yXL = {}<EOL>for y, N_y in zip(self.y, self.N_y):<EOL><INDENT>self.k_yXL.update({y : (<NUM_LIT:1.> * self.K_yXL[y]).astype(int) / N_y})<EOL><DEDENT>self.C_yXL = {}<EOL>for y, N_y in zip(self.y, self.N_y):<EOL><INDENT>self.C_yXL.update({y : <NUM_LIT:1.> - (<NUM_LIT:1.>-<NUM_LIT:1.>/(N_y* self.N_X))**self.K_yXL[y] })<EOL><DEDENT>
class collecting general model parameters