//==================================================================== // simulation parameter //==================================================================== //***** Integration time (at least for interneurons)*/ float dt = 1e-5 setclock 0 {dt} //*****Data collection time*/ float dt2 = 5e-4 setclock 1 {dt2} float dt3 = 1e-4 // Clock used for extracellular field object setclock 2 {dt3} //float sim_time=0.2 // Total simulation runtime // Injection currents (From Neymotin / Traub) //float pyr_inject = 50.0e-12 // Value used in Neymotin paper float pyr_inject = 200.0e-12 // Value used in Traub91.g float bc_inject = 0.0 // From Neymotin 2011 float olm_inject = -25.0e-12 // From Neymotin 2011 float msg_inject = 1.885e-11 // From Hajos 2004 // Injection currents (From Hajos / Traub) float pyr_inject = 200.0e-12 // From Traub 1991 float bc_inject = 1.7592904e-11 // From Hajos 2004 float olm_inject = 0.0 // From Hajos 2004 float msg_inject = 1.885e-11 // From Hajos 2004 //==================================================================== // Dataset paths //==================================================================== str gp, pp, sp gp = "./dataset_temp/" pp = "0_def/" sp = "t0/" gp = "./dataset_temp/" pp = "" sp = "" gp = {{dataoutput_path} @ "/"} // Davedit pp = {{expname_path} @ "/"} // Davedit sp = {{circtime_path} @ "/"} // Davedit //============================================================ // network dimensions //========================================================== if (small_net) int pyr_nx = 2 // number of pyramidal cells along x-axis int pyr_ny = 1 // number of pyramidal cells along y-axis int olm_nx = 2 // number of feedback interneurons along x-axis int olm_ny = 1 // number of feedback interneurons along y-axis int bc_nx = 2 // number of feedforward interneurons along x-axis int bc_ny = 1 // number of feedforward interneurons along y-axis int msg_nx = 2 // number of feedforward interneurons along x-axis int msg_ny = 1 // number of feedforward interneurons along y-axis if (include_msg_aff_input) msg_nx = 25 msg_ny = 1 end else int pyr_nx = 200 // number of pyramidal cells along x-axis int pyr_ny = 1 // number of pyramidal cells along y-axis int olm_nx = 25 // number of feedback interneurons along x-axis int olm_ny = 1 // number of feedback interneurons along y-axis int bc_nx = 25 // number of feedforward interneurons along x-axis int bc_ny = 1 // number of feedforward interneurons along y-axis int msg_nx = 25 // number of feedforward interneurons along x-axis int msg_ny = 1 // number of feedforward interneurons along y-axis end int n_of_pyr // number of pyramidal cells in array n_of_pyr = {pyr_nx}*{pyr_ny} float pyr_dx = 10e-6 // distance between pyramidal cells in x-dimension float pyr_dy = 10e-6 // distance between pyramidal cells in y-dimension float pyr_origin_x = 0 // x-coordinate for first element in network float pyr_origin_y = 0 // y-coordinate for first element in network int n_of_olm // number of feedback interneurons in array n_of_olm = {olm_nx}*{olm_ny} float olm_dx = 20e-6 // distance between olm interneurons in x-dimension float olm_dy = 40e-6 // distance between olm interneurons in y-dimension float olm_origin_x = 5e-6 // x-coordinate for first element in network float olm_origin_y = 5e-6 // y-coordinate for first element in network int n_of_bc // number of feedforward interneurons in array n_of_bc = {bc_nx}*{bc_ny} float bc_dx = 20e-6 // distance between bc interneurons in x-dimension float bc_dy = 40e-6 // distance between bc interneurons in y-dimension float bc_origin_x = 5e-6 // x-coordinate for first element in network float bc_origin_y = 25e-6 // y-coordinate for first element in network int n_of_msg // number of feedforward interneurons in array n_of_msg = {msg_nx}*{msg_ny} float msg_dx = 20e-6 // distance between msg interneurons in x-dimension float msg_dy = 40e-6 // distance between msg interneurons in y-dimension float msg_origin_x = 5e-6 // x-coordinate for first element in network float msg_origin_y = 50e-6 // y-coordinate for first element in network //Biophysical constants for HN network float E_AMPA = 0.0 float E_NMDA = 0.0 float E_GABA_A = -0.080 // Frequencies for background synaptic activity float freq_bkgnd = 1000 float freq_bkgnd_pyr = 1000 float freq_bkgnd_olm = 1000 float freq_bkgnd_nmda = 10 float freq_bkgnd_nmda_pyr = 10 if (noise_off) float freq_bkgnd = 0 float freq_bkgnd_pyr = 0 float freq_bkgnd_olm = 0 float freq_bkgnd_nmda = 0 float freq_bkgnd_nmda_pyr = 0 end // Gmaxes for background synaptic activity float Gmax_pyr_soma_AMPA = 0.05e-9 float Gmax_pyr_dend_AMPA = 0.05e-9 float Gmax_bc_soma_AMPA = 0.02e-9 float Gmax_olm_soma_AMPA = 0.0625e-9 float Gmax_pyr_soma_GABA_A = 0.012e-9 float Gmax_pyr_dend_GABA_A = 0.012e-9 float Gmax_bc_soma_GABA_A = 0.2e-9 float Gmax_olm_soma_GABA_A = 0.2e-9 float Gmax_pyr_dend_NMDA = 6.5e-9 // Gmaxes for CA3 network float pyr2pyr_AMPA = 0.02e-9 float pyr2bc_AMPA = 0.36e-9 float pyr2olm_AMPA = 0.36e-9 float bc2pyr_GABA_A = 0.72e-9 float bc2bc_GABA_A = 4.5e-9 float olm2pyr_GABA_A = 72e-9 //float msg2bc_GABA_A = 1.6e-9 // From Neymotin 2011 //float msg2olm_GABA_A = 1.6e-9 // From Neymotin 2011 float msg2bc_GABA_A = 0.5e-9 // From Hajos 2004 float msg2olm_GABA_A = 0.5e-9 // From Hajos 2004 float msg2msg_GABA_A = 0.25e-9 // From Hajos 2004 float olm2bc_GABA_A = 0.88e-9 // From Hajos 2004 float olm2msg_GABA_A = 0.5e-9 // From Hajos 2004 float pyr2pyr_NMDA = 0.004e-9 float pyr2bc_NMDA = 1.38e-9 float pyr2olm_NMDA = 0.7e-9 // Synaptic time constants float AMPA_tau1 = 0.05e-3 float AMPA_tau2 = 5.3e-3 float NMDA_tau1 = 15e-3 float NMDA_tau2 = 150e-3 float GABAA_tau1=0.07e-3 // Neymotin 2011 float GABAA_tau2=9.1e-3 // Neymotin 2011 float GABAA_OLM_tau1 = 0.2e-3 // Neymotin 2011 float GABAA_OLM_tau2 = 20e-3 // Neymotin 2011 float GABAA_MS_tau1 = 20e-3 // Neymotin 2011 float GABAA_MS_tau2 = 40e-3 // Neymotin 2011 float GABAA_MS_tau1 = 0.07e-3 // Davedit (follow same pattern as Hajos, using default GABA const here) float GABAA_MS_tau2 = 9.1e-3 // Davedit (follow same pattern as Hajos, using default GABA const here) float Q10_synapse = 1.0 // Destination compartments str pyr2pyr_compt = "basal_5" str olm2pyr_compt = "apical_18" // Connectivity convergences int pyr2pyr_conv = 25 int pyr2bc_conv = 100 int pyr2olm_conv = 10 int bc2pyr_conv = 50 int bc2bc_conv = 60 int olm2pyr_conv = 20 //int msg2bc_conv = 1 //Neymotin 2011 //int msg2olm_conv = 1 //Neymotin 2011 int msg2bc_conv = 10 //Hajos 2004 int msg2olm_conv = 10 //Hajos 2004 int msg2msg_conv = 10 //Hajos 2004 int olm2bc_conv = 5 //Hajos 2004 int olm2msg_conv = 2 //Hajos 2004 //Traub connectivities int pyr2pyr_conv = 10 int pyr2bc_conv = 20 int pyr2olm_conv = 10 int bc2pyr_conv = 15 int bc2bc_conv = 25 int olm2pyr_conv = 10 //int msg2bc_conv = 1 //Neymotin 2011 //int msg2olm_conv = 1 //Neymotin 2011 int msg2bc_conv = 5 //Hajos 2004 int msg2olm_conv = 5 //Hajos 2004 int msg2msg_conv = 10 //Hajos 2004 int olm2bc_conv = 5 //Hajos 2004 int olm2msg_conv = 2 //Hajos 2004 if (test_synapses) pyr2bc_conv = 1 pyr2pyr_conv = 1 pyr2pyr_conv = 1 pyr2bc_conv = 1 pyr2olm_conv = 1 bc2pyr_conv = 1 bc2bc_conv = 1 olm2pyr_conv = 1 msg2bc_conv = 1 msg2olm_conv = 1 msg2msg_conv = 1 end //============================================================== // spike generator and randomspike parameters //============================================================== float int_refract_HN = 0.001 // sec; refractory-period float pyr_refract_HN = 0.001 // sec; allows discrimination of single action float AFF_min_amp = 1 // parameters for randomspike float AFF_max_amp = 1 // all spikes have unit amplitude float AFF_rate = 40 // 50 spikes per second; Reinouds suggestion float AFF_abs_refract = 0.001 // 0.005 consecutive events cannot occur in an // interval shorter than abs_refract //================================================================= // randomization of variables //================================================================= float rand_Vinit=-0.010 float rand_VEm=-0.002 //rand_inj= //================================================================= // elektrode information //================================================================= str e_recsite1 = "/rec_site" float e_z1_min = -55e-6 // -50e-6; -60e-6; -130e-6 level of lowest recording site for one electrode float e_z1_max = 96e-6 // 200e-6; 160e-6; 150; 151e-6; 221e-6 since 150 was not used correctly level of highest recording site float e_dz1 = 12.5e-6 // distance between recording sites of electrode float e_scale1 = -15 // -50; -10; -15; -30 scale factor used in efield-object int n_of_e90 = { {{e_z1_max} - {e_z1_min}} / {e_dz1} + 1} //================================================================= // conduction velocities and percentage of randomization for delay //================================================================= float cond_vel_pyr_ax = 0.5 // m*s^-1; pyramidal cell axons are myelinated float cond_vel_int_ax = 0.1 // unmyelinated //float pyr_refract_HN = 0.1 // sec; allows discrimination of single action float pyr2pyr_NMDA = 0.008e-9 float pyr2bc_NMDA = 0.0034e-9 //davedit float pyr2olm_NMDA = 0.0034e-9 //davedit // Tune EPSPs and IPSPs to literature values! float pyr2pyr_AMPA = 2.6e-9 //Tuned to EPSP value based on Traub - Fast Oscillations (1999). EPSP of 1.0mV @ -65mV float pyr2bc_AMPA = 0.05e-9 //Tuned to EPSP value based on Traub - Fast Oscillations (1999); Taxidis 2011. EPSP of ~1.5mV @ -65mV float pyr2olm_AMPA = 0.05e-9 //Tuned to EPSP value based on Traub - Fast Oscillations (1999); Taxidis 2011. EPSP of ~1.4mV @ -65mV float bc2pyr_GABA_A = 9.2e-9 //Tuned to IPSP value based on Traub - Fast Oscillations (1999). IPSP of ~1.2mV @ -62mV float olm2pyr_GABA_A = 8.3e-9 //Tuned to IPSP value based on Traub - Fast Oscillations (1999). IPSP of ~1.0mV @ -62mV float bc2bc_GABA_A = 0.125e-9 //From Hajos et al, 2004; This approximates that used by Taxidis et al (2011). (~0.6mV IPSP) // //// Alter afferent input ratio adjustment ////float Gmax_pyr_soma_AMPA = 0.8e-9 //Davedit ////float Gmax_pyr_dend_AMPA = 0.8e-9 //Davedit //float Gmax_bc_soma_AMPA = 0.00278e-9 //float Gmax_olm_soma_AMPA = 0.00868e-9 //float Gmax_pyr_soma_GABA_A = 0.153e-9 //float Gmax_pyr_dend_GABA_A = 0.153e-9 //float Gmax_bc_soma_GABA_A = 0.00556e-9 //float Gmax_olm_soma_GABA_A = 0.00556e-9 //float Gmax_pyr_dend_NMDA = 6.5e-9 // Adjust afferent input to produce Vm fluctuations at -65mV of approximately 1.5mV standard deviation float Gmax_olm_soma_AMPA = 0.03e-9 float Gmax_olm_soma_GABA_A = 0.01e-9 float Gmax_bc_soma_AMPA = 0.03e-9 float Gmax_bc_soma_GABA_A = 0.01e-9 float Gmax_pyr_soma_GABA_A = 2.5e-9 float Gmax_pyr_dend_GABA_A = 2.5e-9 // Gmaxes for background synaptic activity //float Gmax_pyr_soma_AMPA = 0.05e-9 //float Gmax_pyr_dend_AMPA = 0.05e-9 //float Gmax_pyr_soma_GABA_A = 0.012e-9 //float Gmax_pyr_dend_GABA_A = 0.012e-9 // Adjust input currents for new afferent input //float pyr_inject = 320.0e-12 // From Traub 1991 //float bc_inject = 0.8592904e-11 // From Hajos 2004 //float olm_inject = -0.20e-11 // From Hajos 2004 //float msg_inject = 1.885e-11 // From Hajos 2004 //float msg_inject = 2.00e-11 // From Hajos 2004 // Increased to compensate for olm->msg connectivity //float bc_inject = 1.3592904e-11 // Increase this again to get back gamma rhythms float pyr_inject = {pyr_inject0} // From Traub 1991 float bc_inject = 3.8592904e-11 // From Hajos 2004 float olm_inject = 1.0592904e-11 // From Hajos 2004 float msg_inject = 1.885e-11 // From Hajos 2004 float bc_inject = 1.1592904e-11 // From Hajos 2004 float olm_inject = -0.25e-11 // From Neymotin 2010 float msg_inject = 1.885e-11 // From Hajos 2004 float bc_inject = 0.40e-11 // From Hajos 2004 float bc_inject = {bc_inject0} // From Hajos 2004 float olm_inject = {olm_inject0} // From Neymotin 2010 float msg_inject = {msg_inject0} // From Hajos 2004 // ////Tuning Adjustments //int pyr2pyr_conv = 25 //int pyr2bc_conv = 100 ////int pyr2olm_conv = 10 //float bc2pyr_GABA_A = 4.6e-9 //Tuned to IPSP value based on Traub - Fast Oscillations (1999). IPSP of ~1.2mV @ -62mV ////float pyr2pyr_AMPA = 5.2e-9 //Tuned to EPSP value based on Traub - Fast Oscillations (1999). EPSP of 1.0mV @ -65mV //float Gmax_pyr_soma_AMPA = 0.05e-9 //Neymotin original //float Gmax_pyr_dend_AMPA = 0.05e-9 // float bc2pyr_GABA_A = {bc2pyr_GABA_A0} //Tuned to IPSP value based on Traub - Fast Oscillations (1999). IPSP of ~1.2mV @ -62mV float pyr2pyr_AMPA = {pyr2pyr_AMPA0} //Tuned to EPSP value based on Traub - Fast Oscillations (1999). EPSP of 1.0mV @ -65mV float Gmax_pyr_soma_AMPA = {Gmax_pyr_bkgnd0} //Neymotin original float Gmax_pyr_dend_AMPA = {Gmax_pyr_bkgnd0} if (enable_olm2bc_synapse) bc_inject = bc_inject + 0.5e-11 // From Hajos 2004 // Should be around this: bc_inject = 1.5592904e-11 // From Hajos 2004 end if (bc_gammanet) bc2pyr_conv = 10 bc_inject = 1.0592904e-11 // bc_inject = 1.3592904e-11 // Increase this again to get back gamma rhythms bc2bc_conv = 20 // Gmax_pyr_soma_GABA_A = 0.0e-9 // Gmax_pyr_dend_GABA_A = 0.0e-9 pyr_inject = 220.0e-12 // From Traub 1991 // pyr2bc_conv = 100 // Set to 100 to reduce bursting, get sporadic behaviour end //Disable connections //float pyr2pyr_AMPA = 0.0 //float pyr2bc_AMPA = 0.0 //float pyr2olm_AMPA = 0.0 //float bc2pyr_GABA_A = 0.0 //float bc2bc_GABA_A = 0.025e-9 //float olm2pyr_GABA_A = 0.0 //float msg2bc_GABA_A = 0.0 // From Hajos 2004 //float msg2olm_GABA_A = 0.0 // From Hajos 2004 //float msg2msg_GABA_A = 0.0 // From Hajos 2004 //float pyr2pyr_NMDA = 0.0 //float pyr2bc_NMDA = 0.0 //float pyr2olm_NMDA = 0.0 if (test_synapses) float bc_inject = 0.22904e-11 float olm_inject = 0.0 end //int msg2bc_conv = 20 //Davedit -- increased septal influence (maybe not necessary) //int msg2olm_conv = 20 //Davedit -- increased septal influence (maybe not necessary) int msg2bc_div = msg2bc_conv * n_of_bc / n_of_msg int msg2olm_div = msg2olm_conv * n_of_olm / n_of_msg //============================================================ // network dimensions //========================================================== int AFF_nx = 4 // number of randomspike elements along x-axis int AFF_ny = 4 // number of randomspike elements along y-axis int n_of_AFF // number of randomspike elements in array n_of_AFF = {AFF_nx}*{AFF_ny} float AFF_dx = 15e-6 // distance between randomspike elements in x-dimension float AFF_dy = 15e-6 // distance between randomspike elements in y-dimension float AFF_origin_x_1 = 0 // x-coordinate for first element in network float AFF_origin_y_1 = 0 // y-coordinate for first element in network float AFF_origin_x_2 = 0 // x-coordinate for first element in network float AFF_origin_y_2 = 60e-6 // y-coordinate for first element in network //=================================================================== // x1,y1,z1, x2,y2,z2 for destination mask of volumeconnect //================================================================== float AFF2ca3_x1 = -1 // meter float AFF2ca3_y1 = -1 // employment of this huge number ensures, that float AFF2ca3_z1 = -1 // connections are made from each element in the float AFF2ca3_x2 = 1 // source region to each element in the destination float AFF2ca3_y2 = 1 // region; AFFerents can have contacts to float AFF2ca3_z2 = 1 // ca3amidal cells everywhere in the network float AFF2bc_x1 = -1 // meter float AFF2bc_y1 = -1 // AFFerents can have contacts to bc interneurons float AFF2bc_z1 = -1 // everywhere in the network float AFF2bc_x2 = 1 // float AFF2bc_y2 = 1 // float AFF2bc_z2 = 1 // float ca32ca3_x1 = -1 // meter float ca32ca3_y1 = -1 // employment of this huge number ensures, that float ca32ca3_z1 = -1 // connections are made from each element in the float ca32ca3_x2 = 1 // source region to each element in the destination float ca32ca3_y2 = 1 // region; ca3amidal cells can have contacts to other float ca32ca3_z2 = 1 // ca3amidal cell everywhere in the network float ca32olm_x1 = -1 // ca3amidal cells contact olm interneurons everywhere float ca32olm_y1 = -1 // in the network float ca32olm_z1 = -1 float ca32olm_x2 = 1 float ca32olm_y2 = 1 float ca32olm_z2 = 1 float olm2ca3_x1 = 0 // interneurons are only allowed to contact ca3amidal float olm2ca3_y1 = 0 // cells within a distance of 500microns from the float olm2ca3_z1 = 0 // respective interneuron; since relative positions float olm2ca3_x2 = 1000e-6 // and elipsoidal sourcemask are used, 0,0,0 gives float olm2ca3_y2 = 1000e-6 // the position of the interneuron(center of ellipse) float olm2ca3_z2 = 1000e-6 // x2,y2,z2 specify lengthes of the axis float bc2ca3_x1 = 0 float bc2ca3_y1 = 0 float bc2ca3_z1 = 0 float bc2ca3_x2 = 1000e-6 float bc2ca3_y2 = 1000e-6 float bc2ca3_z2 = 1000e-6 //================================================================= // conduction velocities and percentage of randomization for delay //================================================================= float cond_vel_ca3_ax = 0.5 // m*s^-1; ca3amidal cell axons are supposed to be // myelinated float cond_vel_olm_ax = 0.2 // unmyelinated float cond_vel_bc_ax = 0.2 // unmyelinated float cond_vel_AFF_ax = 0.2 // mossy fibers are unmyelinated (Shepherd) float rand_delay_ca3_ax = 0.15 // calculated delay +/- upto 15% (connections.g) float rand_delay_olm_ax = 0.15 float rand_delay_bc_ax = 0.15 float rand_delay_AFF_ax = 0.15 //================================================ // synaptic weights used in volumeweight-function //=============================================== float from_AFF_weight = 1 // gmax defined by values in cell descriptor files // AMPA 100.0 in cell descriptor file of bc-interneurons float from_ca3_weight = 1 // ca3amidal cell on presynaptic site // AMPA 1.0 in cell descriptor file of olm-interneurons float from_olm_weight = 1 // olm interneuron on presynaptic site float from_bc_weight = 1 // bc interneuron on presynaptic site float rand_from_AFF_weight = 0.15 // calculated weight +/- up to 15% float rand_from_ca3_weight = 0.15 float rand_from_olm_weight = 0.15 float rand_from_bc_weight = 0.15 float injcurr = 0 // default injection float bc_hold_cur = -0.03e-9 // Traub II: -0.045 nA current suppreses spontaneo // us firing float olm_hold_cur = -0.03e-9 // holding currents not employed float ca3_hold_cur = -0.07e-9 //==================================================================== // hines solver //==================================================================== int chanmode = 1 // 3 /* chanmodes 0 and 3 allow outgoing messages to non-hsolved elements. chanmode 3 is fastest. */