Parametric computation and persistent gamma in a cortical model (Chambers et al. 2012)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144579
Using the Traub et al (2005) model of the cortex we determined how 33 synaptic strength parameters control gamma oscillations. We used fractional factorial design to reduce the number of runs required to 4096. We found an expected multiplicative interaction between parameters.
Reference:
1 . Chambers JD, Bethwaite B, Diamond NT, Peachey T, Abramson D, Petrou S, Thomas EA (2012) Parametric computation predicts a multiplicative interaction between synaptic strength parameters that control gamma oscillations. Front Comput Neurosci 6:53 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Axon; Synapse; Channel/Receptor; Dendrite;
Brain Region(s)/Organism:
Cell Type(s): Neocortex L5/6 pyramidal GLU cell; Neocortex L2/3 pyramidal GLU cell; Neocortex V1 interneuron basket PV GABA cell; Neocortex fast spiking (FS) interneuron; Neocortex spiny stellate cell; Neocortex spiking regular (RS) neuron; Neocortex spiking low threshold (LTS) neuron;
Channel(s): I A; I K; I K,leak; I K,Ca; I Calcium; I_K,Na;
Gap Junctions: Gap junctions;
Receptor(s): GabaA; AMPA; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Oscillations; Parameter sensitivity;
Implementer(s): Thomas, Evan [evan at evan-thomas.net]; Chambers, Jordan [jordandchambers at gmail.com];
Search NeuronDB for information about:  Neocortex L5/6 pyramidal GLU cell; Neocortex L2/3 pyramidal GLU cell; Neocortex V1 interneuron basket PV GABA cell; GabaA; AMPA; NMDA; I A; I K; I K,leak; I K,Ca; I Calcium; I_K,Na; Gaba; Glutamate;
 // Trying to open ../diagnostic/tstop.dat
 // new end time timtot =   150.
 // Trying to open ../diagnostic/dt_F.dat
 // new dt =  0.002
 /* supbask/supbask_template.hoc
 automatically written from f2nrn/neuron_code_writer.f
 via subroutines that were inserted into the fortran
 code e.g., supbask/integrate_supbask.hoc
 
 The template's form was derived by
 Tom Morse and Michael Hines
 from a template, pyr3_template created
 by Roger Traub and Maciej Lazarewicz when they ported
 
         Traub RD, Buhl EH, Gloveli T, Whittington MA.
 Fast Rhythmic Bursting Can Be Induced in Layer 2/3
 Cortical Neurons by Enhancing Persistent Na(+)
 Conductance or by Blocking BK Channels.J Neurophysiol.
 2003 Feb;89(2):909-21.
 
 to NEURON
 
 */
 
 begintemplate supbask
	public type
    	public name
    	strdef name
 
 // parts of the template were lifted from a default
 // cell writing from Network Builder NetGUI[0]
 
         public is_art
         public init, topol, basic_shape, subsets
         public geom, biophys 
         public synlist, x, y, z, position
         public connect2target
         public set_netcon_src_comp
         // the above function added to set neton
         // compartment source in the presyn cell
 
         public comp, level, Soma, Dendrites
         public Soma_Dendrites, Axon, all
         public presyn_comp, top_level
         // it is the responsibility of the calling
         // program to set the above presynaptic
         // compartment number
 
         external traub_connect
         objref this
  create  comp[ 59+1]
         objref level[ 9+1], Soma, Dendrites
         objref Soma_Dendrites, Axon
         objref synlist
func type() {return   2 }

         proc init() {
           doubler = 1
  comp[0] delete_section() // clean up for fortran code
            traub_connect( 59+1)
 
            titlePrint()
 
            presyn_comp = 59
            // in Traub model;changed by calling prog.
            objref Soma, Axon, Dendrites, Soma_Dendrites
            objref level
 
            topol()
            shape()
 
            geom()        // the geometry and
            subsets()        // subsets and
            biophys()  // active currents
            synlist = new List() // list of synapses
 // NetGUI[0] stores synapses in the cell object, in 
 // Traub model it is easier to store them outside
            set_doubler() // to double or not
            if (doubler) {double_dend_cond()}
                          /* for taking
  spine membrane area correction into account (the 
  method used doubles max cond's when spines present)
 */
             more_adjustments()
	name = "supbask"
         }
         proc double_dend_cond() {
         /* this function gets replaced later with 
 another one if double_dend_cond() is tacked on. */
         }
 
         proc titlePrint() {
 
 /*              print "
                 print "-----"
                 print "
             print "supbask Neuron Model based on "
             print "Traub RD et al (2005, 2003)"
                 print "
                 print "-----"
 Remove title printing with this comment for now.  
 Printing otherwise repeats (for each cell)
 -too voluminous for a network creation */
         }
 
         proc set_doubler() {doubler=0}
         // this function gets replaced with one that
         // sets doubler to 0 when there are no spines
         // in the cell (for no spines the additional
         // hoc code is written from integrate_cell.f
         // where cell is nRT, TCR.  Woops I just
         // found that deepaxax, deepbask, deepLTS,
         // supaxax, supbask, supLTS all use the script
         // cell/run_fortran.sh to replace the =1's with
         // =0's.  I will change the fortran code to
         // make it all run_fortran.sh replacements or
         // not for uniformity.
         proc topol() {
 // create comp[ 60] // note one greater than numcomp due to fortran indicies
  // last argument, parent location for connection
  // is overwritten to 1 for parents with connected children 
  // in below traub_connect proc calls
 traub_connect(this,  1,  54,   0.0611490233, 0)
 traub_connect(this,  1,  2,   0.0873746044, 1)
 traub_connect(this,  1,  15,   0.0873746044, 1)
 traub_connect(this,  1,  28,   0.0873746044, 1)
 traub_connect(this,  1,  41,   0.0873746044, 1)
 traub_connect(this,  2,  3,   0.0250126876, 1)
 traub_connect(this,  2,  4,   0.0250126876, 1)
 traub_connect(this,  3,  4,   0.0174532778, 1)
 traub_connect(this,  3,  5,   0.00988321907, 1)
 traub_connect(this,  3,  6,   0.00988321907, 1)
 traub_connect(this,  4,  7,   0.0174532778,  1.)
 traub_connect(this,  5,  6,   0.00689334805, 1)
 traub_connect(this,  5,  8,   0.00689334805,  1.)
 traub_connect(this,  6,  9,   0.00689334805,  1.)
 traub_connect(this,  7,  10,   0.0174532778,  1.)
 traub_connect(this,  8,  11,   0.00689334805,  1.)
 traub_connect(this,  11,  12,   0.00689334805,  1.)
 traub_connect(this,  12,  13,   0.00689334805,  1.)
 traub_connect(this,  13,  14,   0.00689334805,  1.)
 traub_connect(this,  15,  16,   0.0250126876, 1)
 traub_connect(this,  15,  17,   0.0250126876, 1)
 traub_connect(this,  16,  17,   0.0174532778, 1)
 traub_connect(this,  16,  18,   0.00988321907, 1)
 traub_connect(this,  16,  19,   0.00988321907, 1)
 traub_connect(this,  17,  20,   0.0174532778,  1.)
 traub_connect(this,  18,  19,   0.00689334805, 1)
 traub_connect(this,  18,  21,   0.00689334805,  1.)
 traub_connect(this,  19,  22,   0.00689334805,  1.)
 traub_connect(this,  20,  23,   0.0174532778,  1.)
 traub_connect(this,  21,  24,   0.00689334805,  1.)
 traub_connect(this,  24,  25,   0.00689334805,  1.)
 traub_connect(this,  25,  26,   0.00689334805,  1.)
 traub_connect(this,  26,  27,   0.00689334805,  1.)
 traub_connect(this,  28,  29,   0.0250126876, 1)
 traub_connect(this,  28,  30,   0.0250126876, 1)
 traub_connect(this,  29,  30,   0.0174532778, 1)
 traub_connect(this,  29,  31,   0.00988321907, 1)
 traub_connect(this,  29,  32,   0.00988321907, 1)
 traub_connect(this,  30,  33,   0.0174532778,  1.)
 traub_connect(this,  31,  32,   0.00689334805, 1)
 traub_connect(this,  31,  34,   0.00689334805,  1.)
 traub_connect(this,  32,  35,   0.00689334805,  1.)
 traub_connect(this,  33,  36,   0.0174532778,  1.)
 traub_connect(this,  34,  37,   0.00689334805,  1.)
 traub_connect(this,  37,  38,   0.00689334805,  1.)
 traub_connect(this,  38,  39,   0.00689334805,  1.)
 traub_connect(this,  39,  40,   0.00689334805,  1.)
 traub_connect(this,  41,  42,   0.0250126876, 1)
 traub_connect(this,  41,  43,   0.0250126876, 1)
 traub_connect(this,  42,  43,   0.0174532778, 1)
 traub_connect(this,  42,  44,   0.00988321907, 1)
 traub_connect(this,  42,  45,   0.00988321907, 1)
 traub_connect(this,  43,  46,   0.0174532778,  1.)
 traub_connect(this,  44,  45,   0.00689334805, 1)
 traub_connect(this,  44,  47,   0.00689334805,  1.)
 traub_connect(this,  45,  48,   0.00689334805,  1.)
 traub_connect(this,  46,  49,   0.0174532778,  1.)
 traub_connect(this,  47,  50,   0.00689334805,  1.)
 traub_connect(this,  50,  51,   0.00689334805,  1.)
 traub_connect(this,  51,  52,   0.00689334805,  1.)
 traub_connect(this,  52,  53,   0.00689334805,  1.)
 traub_connect(this,  54,  55,   0.026078893,  1.)
 traub_connect(this,  55,  56,   0.0185405311, 1)
 traub_connect(this,  55,  58,   0.0185405311, 1)
 traub_connect(this,  56,  57,   0.01570795,  1.)
 traub_connect(this,  56,  58,   0.01570795, 1)
 traub_connect(this,  58,  59,   0.01570795,  1.)
 access comp[1] // handy statement if want to start gui's from nrnmainmenu
 }
         proc geom() {
 // the "traub level" subsets are created and defined below
 top_level =  9
 objref level[top_level+1]
 for i=0,top_level { level[i] = new SectionList() }
  
 comp[ 1] { level[ 1].append() L=  20. diam = 2*  7.5 }
 comp[ 2] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 3] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 4] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 5] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 6] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 7] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 8] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 9] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 10] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 11] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 12] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 13] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 14] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 15] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 16] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 17] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 18] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 19] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 20] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 21] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 22] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 23] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 24] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 25] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 26] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 27] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 28] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 29] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 30] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 31] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 32] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 33] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 34] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 35] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 36] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 37] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 38] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 39] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 40] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 41] { level[ 2].append() L=  40. diam = 2*  1.06 }
 comp[ 42] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 43] { level[ 3].append() L=  40. diam = 2*  0.666666667 }
 comp[ 44] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 45] { level[ 4].append() L=  40. diam = 2*  0.418972332 }
 comp[ 46] { level[ 4].append() L=  40. diam = 2*  0.666666667 }
 comp[ 47] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 48] { level[ 5].append() L=  40. diam = 2*  0.418972332 }
 comp[ 49] { level[ 5].append() L=  40. diam = 2*  0.666666667 }
 comp[ 50] { level[ 6].append() L=  40. diam = 2*  0.418972332 }
 comp[ 51] { level[ 7].append() L=  40. diam = 2*  0.418972332 }
 comp[ 52] { level[ 8].append() L=  40. diam = 2*  0.418972332 }
 comp[ 53] { level[ 9].append() L=  40. diam = 2*  0.418972332 }
 comp[ 54] { level[ 0].append() L=  50. diam = 2*  0.7 }
 comp[ 55] { level[ 0].append() L=  50. diam = 2*  0.6 }
 comp[ 56] { level[ 0].append() L=  50. diam = 2*  0.5 }
 comp[ 57] { level[ 0].append() L=  50. diam = 2*  0.5 }
 comp[ 58] { level[ 0].append() L=  50. diam = 2*  0.5 }
 comp[ 59] { level[ 0].append() L=  50. diam = 2*  0.5 }
 } 
 // Here are some commonly used subsets of sections
         objref all
         proc subsets() { local i
           objref Soma, Dendrites, Soma_Dendrites, Axon
           objref all
           Soma = new SectionList()
           Dendrites = new SectionList()
           Soma_Dendrites = new SectionList()
           Axon = new SectionList()
           for i=1,top_level {
             forsec level[i] { // recall level 0 is axon, 1 is soma, higher are dends
               Soma_Dendrites.append()
                 if (i>1) {Dendrites.append()}
             }
           }
           forsec level[1] {
             Soma.append()
           }
           forsec level[0] { Axon.append() }
           all = new SectionList()
           for i=1, 59 comp[i] all.append()
          }
 
        proc shape() {
 
 /*      This section could contain statements like
 {pt3dclear() pt3dadd(-1,-1,0,1) pt3dadd(-1,-2,0,1)}
 These visual settings do not effect the electrical
 and chemical systems of equations.              */
 }
         proc biophys() {
 // 
 //       insert the mechanisms and assign max conductances
 // 
 forsec all { insert pas }   // g_pas has two values; soma-dend,axon
 forsec level[ 0] {
       insert naf2
       gbar_naf2 =   0.4
       insert kdr_fs
       gbar_kdr_fs =   0.4
       insert ka
       gbar_ka =   0.001
       insert k2
       gbar_k2 =   0.0005
 }
 forsec level[ 1] {
       insert naf2
       gbar_naf2 =   0.06
       insert nap
       gbar_nap =   0.0006
       insert kdr_fs
       gbar_kdr_fs =   0.1
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0001
//       insert cat
//       gbar_cat =   0.0001
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.02
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   260000.
 }
 forsec level[ 2] {
       insert naf2
       gbar_naf2 =   0.06
       insert nap
       gbar_nap =   0.0006
       insert kdr_fs
       gbar_kdr_fs =   0.1
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0001
//       insert cat
//       gbar_cat =   0.0001
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 3] {
       insert naf2
       gbar_naf2 =   0.06
       insert nap
       gbar_nap =   0.0006
       insert kdr_fs
       gbar_kdr_fs =   0.1
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0001
//       insert cat
//       gbar_cat =   0.0001
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 4] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   0.0001
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 5] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 6] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 7] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 8] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec level[ 9] {
       insert naf2
       gbar_naf2 =   0.01
       insert nap
       gbar_nap =   0.0001
       insert kdr_fs
       gbar_kdr_fs =   0.01
       insert kc_fast
       gbar_kc_fast =   0.025
       insert ka
       gbar_ka =   0.001
//       insert km
//       gbar_km =   0.0005
//       insert k2
//       gbar_k2 =   0.0005
//       insert kahp_slower
//       gbar_kahp_slower =   0.0001
       insert cal
       gbar_cal =   0.0002
//       insert cat
//       gbar_cat =   0.0002
//       insert ar
//       gbar_ar =   2.5E-05
       insert cad
       // *** ca diffusion: beta=1/tau
       beta_cad  =   0.05
       // cafor(I) (FORTRAN) converted to phi (NEURON)
       phi_cad =   520000.
 }
 forsec all {
    cm =   1.  // assign global specific capac.
 }
 // 
 //  passive membrane resistance (leak) and axial resistance
 // 
 forsec Soma_Dendrites {
    g_pas =   4.E-05
    Ra =   200.
 }
 forsec Axon {
    g_pas =   0.001
    Ra =   100.
 }
 ceiling_cad = 1e6 //  nearly unlimited Ca concentration
 // print "made it to end of initialization from SCORTMAJ_FRB()"
 }  // end of biophys
 
 // Compartment Area: Dendritic.spines double area of
 // dend. membrane, which in Traubs method is equivalent to
 // only multiplying all dend. max conductances by two
 // (the area is doubled but the volume is const.)
 proc double_dend_cond() {
   spine_area_multiplier = 2
   forsec Dendrites {
        if (ismembrane("nap")) { gbar_nap *= spine_area_multiplier }
        if (ismembrane("napf")) { gbar_napf *= spine_area_multiplier }
        if (ismembrane("napf_tcr")) { gbar_napf_tcr *= spine_area_multiplier }
        if (ismembrane("naf2")) { gbar_naf2 *= spine_area_multiplier }
        if (ismembrane("naf2_tcr")) { gbar_naf2_tcr *= spine_area_multiplier }
        if (ismembrane("naf22")) { gbar_naf22 *= spine_area_multiplier }
        if (ismembrane("kc_fast")) { gbar_kc_fast *= spine_area_multiplier }
        if (ismembrane("kc_fast_fast")) { gbar_kc_fast_fast *= spine_area_multiplier }
        if (ismembrane("kahp")) { gbar_kahp *= spine_area_multiplier }
        if (ismembrane("kahp_slower")) { gbar_kahp_slower *= spine_area_multiplier }
        if (ismembrane("km")) { gbar_km *= spine_area_multiplier }
        if (ismembrane("kdr_fs")) { gbar_kdr_fs *= spine_area_multiplier }
        if (ismembrane("kdr_fs_fs")) { gbar_kdr_fs_fs *= spine_area_multiplier }
        if (ismembrane("ka")) { gbar_ka *= spine_area_multiplier }
        if (ismembrane("ka_ib")) { gbar_ka_ib *= spine_area_multiplier }
        if (ismembrane("k2")) { gbar_k2 *= spine_area_multiplier }
        if (ismembrane("cal")) { gbar_cal *= spine_area_multiplier }
        if (ismembrane("cat")) { gbar_cat *= spine_area_multiplier }
        if (ismembrane("cat_a")) { gbar_cat_a *= spine_area_multiplier }
        if (ismembrane("ar")) { gbar_ar *= spine_area_multiplier }
        if (ismembrane("pas")) { g_pas *= spine_area_multiplier }
        cm = cm * spine_area_multiplier
   }
 }
 // double_dend_cond()  // run for cells w/ spines
 
        proc position() { local i
 // comp switched to comp[1] since 0 deleted
         comp[1] for i = 0, n3d()-1 {
     pt3dchange(i, $1-x+x3d(i), \
      $2-y+y3d(i), $3-z+z3d(i),diam3d(i))
        }
         x=$1 y=$2 z=$3
        }
         proc connect2target() { 
  // $o1 targ point process, $o2 returned NetCon
           comp[presyn_comp] $o2 = new NetCon(&v(1),$o1)
	$o2.threshold = 0
         }
         objref syn_
         proc synapses() {
         // place for each compartment that has input
         // statements like 
 //comp[3] syn_=new AlphaSynKinT(1) synlist.append(syn_)
 //comp[4] syn_=new NMDA(1) synlist.append(syn_)
         }
 
 // is not an artificial cell:
      func is_art() { return 0 }
 
 
 
         proc more_adjustments() {
 forsec all {
        if (ismembrane("naf2")) {fastNa_shift_naf2=-3.5}
    // global reversal potentials
    ek =  -100.
    e_pas =  -65.
    ena =   50.
    vca =   125.
    forsec all if (ismembrane("ar")) erev_ar =  -40.
    e_gaba_a =  -75.
 }
     // more extended initializations
     // Note: the following currents are not
     // present in fast spiking and LTS interneurons
 // Would be slightly more efficient to not include them
     forsec all {
         if (ismembrane("nap")) {gbar_nap = 0.0}
         if (ismembrane("k2")) {gbar_k2 = 0.0}
         if (ismembrane("km")) {gbar_km = 0.0}
         if (ismembrane("kahp")) {gbar_kahp = 0.0}
         if (ismembrane("kahp_slower")) {gbar_kahp_slower = 0.0}
         if (ismembrane("cat")) {gbar_cat = 0.0}
         if (ismembrane("ar")) {gbar_ar = 0.0}
    }
 }
  endtemplate supbask

Loading data, please wait...