alcohol = 0 // IF THIS IS SET TO 1 THEN WE IMPLEMENT THE ALCOHOL PUMP DECLINE // Note that for alcohol experiments you need to set km of pump.mod to be 12 instead of 40 multiple = 1 // this is a single parameter that can affect the rate of decline. But is more complicated than this though, so take a look at code below. create soma create Couple soma {nseg=1 L=22 diam=22 } length = 529.29 diamax = 4311.37/(3.14*length) diamax_2 = sqrt(diamax) diamax_3 = diamax_2 * 2 Couple {nseg=1 L= length diam= diamax_3 } // rallbranch=1} access soma soma connect Couple(0),1 // length = 529.29, DIAMETER = 3.22 // DO NOT GET CONFUSEd WITH RADIUS AND DIAMETER a=0 forall for (x) a += area(x) corrD = 42310/a // global_ra = 250 // set_ra() access soma soma { cm = 0.8 insert narsg // Na current. Resurgent. Markov model insert hpkj // Ih hyperpolarisation activated cation current insert bkpkj // BK ca2+ dependent K+ current insert cadiff // calcium diffusion insert kpkj insert kpkj2 insert kpkjslow insert captain // P type ca. P type calcium current gbar_narsg = 0.156 ghbar_hpkj = 0.00104 gkbar_bkpkj = 0.0728 gkbar_kpkj = 0.0416 gkbar_kpkj2 = 0.0208 gkbar_kpkjslow = 0.0416 pcabar_captain = 0.00052 // 0.00005 insert lkpkj // leak current e_lkpkj = -70 g_lkpkj = 0.0001 ena = 60 ek = -88 // ------------------- insert pump km_pump = 40 // Michaelis-Menten n_pump = 1 decline_pump = alcohol // If this is set to 1 then we switch on the oubain/alcohol pump decline system initialdensity_pump = 1 // this is the density before the decline or the fixed density if no decline is chosen red_pump = 0 // this is the lag before the decline takes place lex_pump = 70 * multiple // this sets the speed of the decline // ------------------- insert nadifl D_nadifl = 0.60 tau_nadifl = 5000 insert myexchangersoma //---------------------- insert mypumpsoma decline_mypumpsoma = alcohol // If this is set to 1 then we switch on the oubain/alcohol pump decline system initialdensity_mypumpsoma = 0.5 // this is the density before the decline or the fixed density if no decline is chosen red_mypumpsoma = 50000 // this is the lag before the decline takes place lex_mypumpsoma = 200 * multiple // this sets the speed of the decline green_mypumpsoma = 50000 // this is the lag before the second rate of decline takes place lux_mypumpsoma = 200 * multiple // this sets the speed of the second set of decline //---------------------- insert gkca gkbar_gkca = 0.01 } Couple { cm=0.8 * corrD insert cha gkhbar_cha = 0.00028914405 * corrD // Ih hyperpolarisation activated cation current. CHANGED NAME insert leak gl_leak = (7.93319415*10^-5) * corrD el_leak = -80 nab = 0.036 // KD ruti = 0.032 // KA tt = 0.001 // Whalter Kv1.1 (or maybe kv1.2) insert cap2 cai = 4e-5 cao = 2.4 gcabar_cap2 = 0.0016 * corrD insert cat cai = 4e-5 cao = 2.4 gcabar_cat = 0.0006 * corrD insert cae cai = 4e-5 cao = 2.4 gcabar_cae = 0.0032 * corrD insert khh gkbar_khh = 0.00024 * corrD insert km gkbar_km = 0.000004 * corrD insert ka gkbar_ka = ruti * corrD insert kd gkbar_kd = nab * corrD insert kc3 gkbar_kc3 = 0.06 * corrD insert k23 gkbar_k23 = 0.000156 * corrD insert cad taur_cad = 2 cainf_cad = 4e-5 kt_cad = 4e-5 kd_cad = 4e-5 depth_cad = 0.1 * corrD insert kv1 gbar_kv1 = tt * corrD insert kdyn KAF_kdyn = 0.0119 // bursts at 5,149 // 0.01 - no bursts // 0.012 - bursts at 5000 // 0.013 bursts at around 3,500 // 0.015 bursts at around 2,500 // 0.02 - bursts at around 1000 // OLD: 0.1428571428571 // 0.008 // 0.011 // (~50:50) // OLD: IN FULL MODEL IS 0.143, IN 40 COMPARTMENT IS 0.033, IN 5 COMPARTMENT IS 0.02. IN 2 COMPARTMENT IS 0.008 (BUT if Ra = 250+length = 240, it is 0.0055) dep_kdyn = 70e-3 // Have not applied corrD to the depth peak_kdyn = 3.03 // peak value of extracellular K concentration (because of buffering system) insert myexchanger ImaxNax_myexchanger = 0.00208768267 * corrD //---------------------- insert mypump decline_mypump = alcohol // If this is set to 1 then we switch on the oubain/alcohol pump decline system initialdensity_mypump = 0.00208768267 * corrD // this is the density before the decline or the fixed density if no decline is chosen red_mypump = 50000 // this is the lag before the decline takes place lex_mypump = 200 * multiple // this sets the speed of the decline //---------------------- insert newnew km_newnew = 2.245 n_newnew = 1 decline_newnew = alcohol // If this is set to 1 then we switch on the oubain/alcohol pump decline system initialdensity_newnew = 0.0010438413 * corrD // this is the density before the decline or the fixed density if no decline is chosen red_newnew = 50000 // this is the lag before the decline takes place lex_newnew = 200 * multiple // this sets the speed of the decline //---------------------- // YOUR OWN ERG CURRENT (sequential, Hodgkin-Huxley) insert erg gbar_erg = 0 * corrD // 0.01, 0.03 too small 0.1 does it, 0.05 does it. (with vhalf = -5) vhalf_erg = -5 // - 35 is the default, but you could legitimately change this to -5 because it is -5 with physiological levels of external calcium // (external calcium allosterically effects the channel) } // ------------------------------------ // Some global stuff. // ------------------------------------ celsius = 36 // ------------------------------------ // Synapses // ------------------------------------ // inix = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 inix = 0 // enux = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 enux = 0 // paranux = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 paranux = 0 // basket_nux = 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 basket_nux = 0 // ----------- // CLIMBING FIBER // ----------- objref Exciteconn objref Esynapse objref Espikesource // A spike source for our inhibitory synapse objref ecit_synapses,excit_synapses, ec_list ecit_synapses = new List() excit_synapses = new List() ec_list = new List() Couple { ecit_synapses.append(Espikesource = new NetStim(0.5)) // arbitrary location Espikesource.interval = 1000 /* inter-spike interval of the input (in ms) 1Hz = 1000ms inter-spike interval 100Hz = 10ms interspike interval */ Espikesource.number = enux Espikesource.start = 0 Espikesource.noise = 0 // =0 periodic input, = 1 Poisson // for j=0,336 { // have taken this out. so now only have a single CF synapse on this compartment Couple excit_synapses.append(Esynapse = new Exp2Syn(0.5)) /* the location of synapse on the compartment */ Esynapse.tau1 = 0.5 // synaptic time constant (ms) Esynapse.tau2 = 1.2 // synaptic time constant (ms) Esynapse.e = 0 // synaptic reversal potential (mV) /* opening time constant of 0.5 ms, a closing time constant of 1.2 ms and a reversal potential of 0 mV. */ thresh = 10 // not important when connection is from NetStim delay = 0 // 54000 Eweight = 0.1 // 0.0062 connection strength in S 0.0000000062 = 6.2nS Exciteconn = new NetCon(Espikesource, Esynapse, thresh, delay, Eweight) ec_list.append(Exciteconn) // setpointer mix_nip(0.5), Esynapse.i // setpointer mix_cadifl(0.5), Esynapse.i // } } // ------------------------------------ // Synapses // j=0,19 adds 20 synapses to each dendritic compartment // j=0,1000 adds 1001 synapses to each dendritic compartment // PS you can use the synapse lists to double check things like: // print icit_synapses.count // print inhib_synapses.count // If there is j=0,19 then there will be 20 synapses to each dendritic compartment. There will be 20*(85+1002) synapses. // print 20*(85+1002) // ------------------------------------ // ----------- // BASKET // ----------- objref Econn objref Isynapse objref Ispikesource // A spike source for our inhibitory synapse objref icit_synapses,inhib_synapses, nc_list inhib_synapses = new List() icit_synapses = new List() nc_list = new List() //--- //Soma // 50 basket cells terminate on Purkinje cell on the soma // Ispikesource.noise set to 0 because firing synchronously //--- soma icit_synapses.append(Ispikesource = new NetStim(0.5)) // arbitrary location Ispikesource.interval = 1000 /* inter-spike interval of the input (in ms) 1Hz = 1000ms inter-spike interval */ Ispikesource.number = basket_nux Ispikesource.start = 0 Ispikesource.noise = 0 // =0 periodic input, = 1 Poisson for j=0,49 { soma inhib_synapses.append(Isynapse = new Exp2Syn(0.5)) /* the location of synapse on the compartment */ Isynapse.tau1 = 0.9 // synaptic time constant (ms) Isynapse.tau2 = 26.5 // synaptic time constant (ms) Isynapse.e = -80 // synaptic reversal potential (mV) /* opening time constant of 0.9 ms, a closing time constant of 26.5 ms and a reversal potential of -80 mV. */ thresh = 10 // not important when connection is from NetStim delay = 0.0 Iweight = 0 //3.72 connection strength in S Econn = new NetCon(Ispikesource, Isynapse, thresh, delay, Iweight) nc_list.append(Econn) } // ----------- // STELLATE // ----------- //--- // 2 stellate cell synaptic contacts on every smooth dendritic compartment // Ispikesource.noise set to 1 because firing asynchronously // 1 on each SpinyDendrite (1002 synapses); 2 on every SmoothDendrite (2*85 = 190 synapses); total = 1,192 synapses //--- // What you've done now - instead of having 1192 synaptic contacts onto this single comparment: you have just a single connection but you increase the // frequency of this connect by 1192 times (i.e. decrease the interspike interval by 1192 times). This greatly speeds up the simulation. Couple { Couple icit_synapses.append(Ispikesource = new NetStim(0.5)) // arbitrary location Ispikesource.interval = 1000/1192 /* inter-spike interval of the input (in ms) 1Hz = 1000ms inter-spike interval 100Hz = 10ms interspike interval */ Ispikesource.number = inix Ispikesource.start = 0 Ispikesource.noise = 1 // =0 periodic input, = 1 Poisson // for j=0,1191 { Couple inhib_synapses.append(Isynapse = new Exp2Syn(0.5)) /* the location of synapse on the compartment */ Isynapse.tau1 = 0.9 // synaptic time constant (ms) Isynapse.tau2 = 26.5 // synaptic time constant (ms) Isynapse.e = -80 // synaptic reversal potential (mV) /* opening time constant of 0.9 ms, a closing time constant of 26.5 ms and a reversal potential of -80 mV. */ thresh = 10 // not important when connection is from NetStim delay = 0.0 Iweight = 0.001 // 0.09604 // 0.2 // 0.002604 // 0.02604 // 52.08 connection strength in S Econn = new NetCon(Ispikesource, Isynapse, thresh, delay, Iweight) nc_list.append(Econn) // } } // ----------- // PARALLEL FIBER // ----------- //--- //SpinyDendrites // Parralel fiber synaptic inputs //1 contact on every spiny dendritic compartment // Espikesource.noise set to 1 because firing asynchronously // j=0,199 is 200 synapses per spinydendrite // 200,000 synapses at 0.01 Hz // replace with just 1 synapse; frequency = 2000 Hz // interspike inteval = 0.5 //--- Couple { Couple ecit_synapses.append(Espikesource = new NetStim(0.5)) // arbitrary location Espikesource.interval = 0.5 /* inter-spike interval of the input (in ms) 1Hz = 1000ms inter-spike interval 100Hz = 10ms interspike interval 1000 Hz = 1ms interspike interval 2000 Hz = 0.5 ms interspike interval 10,000 Hz = 0.1 ms interspike interval */ Espikesource.number = paranux Espikesource.start = 0 Espikesource.noise = 1 // =0 periodic input, = 1 Poisson Couple excit_synapses.append(Esynapse = new Exp2Syn(0.5)) /* the location of synapse on the compartment */ Esynapse.tau1 = 0.5 // synaptic time constant (ms) Esynapse.tau2 = 1.2 // synaptic time constant (ms) Esynapse.e = 0 // synaptic reversal potential (mV) /* opening time constant of 0.5 ms, a closing time constant of 1.2 ms and a reversal potential of 0 mV. */ thresh = 10 // not important when connection is from NetStim delay = 0.0 Eweight = 0.00007 // 0.007 // 0.0007 // connection strength in S 0.0000000007 = 0.7nS Exciteconn = new NetCon(Espikesource, Esynapse, thresh, delay, Eweight) ec_list.append(Exciteconn) }