Deconstruction of cortical evoked potentials generated by subthalamic DBS (Kumaravelu et al 2018)

 Download zip file 
Help downloading and running models
Accession:244262
"... High frequency deep brain stimulation (DBS) of the subthalamic nucleus (STN) suppresses parkinsonian motor symptoms and modulates cortical activity. ... Cortical evoked potentials (cEP) generated by STN DBS reflect the response of cortex to subcortical stimulation, and the goal was to determine the neural origin of cEP using a two-step approach. First, we recorded cEP over ipsilateral primary motor cortex during different frequencies of STN DBS in awake healthy and unilateral 6-OHDA lesioned parkinsonian rats. Second, we used a biophysically-based model of the thalamocortical network to deconstruct the neural origin of the cEP. The in vivo cEP included short (R1), intermediate (R2) and long-latency (R3) responses. Model-based cortical responses to simulated STN DBS matched remarkably well the in vivo responses. R1 was generated by antidromic activation of layer 5 pyramidal neurons, while recurrent activation of layer 5 pyramidal neurons via excitatory axon collaterals reproduced R2. R3 was generated by polysynaptic activation of layer 2/3 pyramidal neurons via the cortico-thalamic-cortical pathway. Antidromic activation of the hyperdirect pathway and subsequent intracortical and cortico-thalamo-cortical synaptic interactions were sufficient to generate cEP by STN DBS, and orthodromic activation through basal ganglia-thalamus-cortex pathways was not required. These results demonstrate the utility of cEP to determine the neural elements activated by STN DBS that might modulate cortical activity and contribute to the suppression of parkinsonian symptoms."
Reference:
1 . Kumaravelu K, Oza CS, Behrend CE, Grill WM (2018) Model-based deconstruction of cortical evoked potentials generated by subthalamic nucleus deep brain stimulation. J Neurophysiol 120:662-680 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex; Thalamus;
Cell Type(s): Neocortex M1 L6 pyramidal corticothalamic GLU cell; Neocortex M1 L5B pyramidal pyramidal tract GLU cell; Neocortex M1 L4 stellate GLU cell; Hodgkin-Huxley neuron; Neocortex layer 4 neuron; Neocortex fast spiking (FS) interneuron; Neocortex primary motor area pyramidal layer 5 corticospinal cell;
Channel(s): I Na,p; I K; I Sodium; I_KD; I Calcium; I T low threshold; I L high threshold; I_AHP;
Gap Junctions: Gap junctions;
Receptor(s): AMPA; Gaba; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Deep brain stimulation; Evoked LFP;
Implementer(s): Kumaravelu, Karthik [kk192 at duke.edu];
Search NeuronDB for information about:  Neocortex M1 L6 pyramidal corticothalamic GLU cell; Neocortex M1 L5B pyramidal pyramidal tract GLU cell; Neocortex M1 L4 stellate GLU cell; AMPA; NMDA; Gaba; I Na,p; I L high threshold; I T low threshold; I K; I Sodium; I Calcium; I_AHP; I_KD; Gaba; Glutamate;
 /* deepbask/deepbask_template.hoc
 automatically written from f2nrn/neuron_code_writer.f
 via subroutines that were inserted into the fortran
 code e.g., deepbask/integrate_deepbask.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 deepbask
	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  9 }

         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 = "deepbask"
         }
         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 "deepbask 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() {
 
    comp[1] {pt3dclear() pt3dadd(0.0, 0.0, 0.0, 15.0) pt3dadd(0.0, 10.0, 0.0, 15.0)}
    comp[1] {pt3dadd(-4.371139E-7, 20.0, 0.0, 15.0)}
    comp[54] {pt3dclear() pt3dadd(4.371139E-7, 0.0, 0.0, 1.4) pt3dadd(-3.7745E-7, -25.0, 0.0, 1.4)}
    comp[54] {pt3dadd(-1.1920139E-6, -50.0, 0.0, 1.4)}
    comp[41] {pt3dclear() pt3dadd(0.0, 20.0, 0.0, 2.12) pt3dadd(-16.0, 8.0, 0.0, 2.12)}
    comp[41] {pt3dadd(-32.0, -4.0, 0.0, 2.12)}
    comp[28] {pt3dclear() pt3dadd(0.0, 20.0, 0.0, 2.12) pt3dadd(16.0, 8.0, 0.0, 2.12)}
    comp[28] {pt3dadd(32.0, -4.0, 0.0, 2.12)}
    comp[15] {pt3dclear() pt3dadd(0.0, 20.0, 0.0, 2.12) pt3dadd(0.0, 32.0, -16.0, 2.12)}
    comp[15] {pt3dadd(0.0, 44.0, -32.0, 2.12)}
    comp[2] {pt3dclear() pt3dadd(0.0, 20.0, 0.0, 2.12) pt3dadd(0.0, 32.0, 16.0, 2.12)}
    comp[2] {pt3dadd(0.0, 44.0, 32.0, 2.12)}
    comp[55] {pt3dclear() pt3dadd(-1.1920139E-6, -50.0, 0.0, 1.2) pt3dadd(-3.9139263E-6, -75.0, 0.0, 1.2)}
    comp[55] {pt3dadd(-6.635839E-6, -100.0, 0.0, 1.2)}
    comp[43] {pt3dclear() pt3dadd(-32.0, -4.0, 0.0, 1.33333) pt3dadd(-32.0, -16.0, -16.0, 1.33333)}
    comp[43] {pt3dadd(-32.000004, -27.999973, -31.999964, 1.33333)}
    comp[42] {pt3dclear() pt3dadd(-32.0, -4.0, 0.0, 1.33333) pt3dadd(-48.0, -16.0, 0.0, 1.33333)}
    comp[42] {pt3dadd(-64.0, -28.0, 0.0, 1.33333)}
    comp[30] {pt3dclear() pt3dadd(32.0, -4.0, 0.0, 1.33333) pt3dadd(32.0, -16.0, 16.0, 1.33333)}
    comp[30] {pt3dadd(32.000084, -28.0, 32.00004, 1.33333)}
    comp[29] {pt3dclear() pt3dadd(32.0, -4.0, 0.0, 1.33333) pt3dadd(48.0, -16.0, 0.0, 1.33333)}
    comp[29] {pt3dadd(64.0, -28.0, 0.0, 1.33333)}
    comp[17] {pt3dclear() pt3dadd(0.0, 44.0, -32.0, 1.33333) pt3dadd(-16.0, 56.0, -32.0, 1.33333)}
    comp[17] {pt3dadd(-32.000008, 68.0, -32.000004, 1.33333)}
    comp[16] {pt3dclear() pt3dadd(0.0, 44.0, -32.0, 1.33333) pt3dadd(0.0, 56.0, -48.0, 1.33333)}
    comp[16] {pt3dadd(0.0, 68.0, -64.0, 1.33333)}
    comp[4] {pt3dclear() pt3dadd(0.0, 44.0, 32.0, 1.33333) pt3dadd(16.0, 56.0, 32.0, 1.33333)}
    comp[4] {pt3dadd(31.999998, 68.0, 32.0, 1.33333)}
    comp[3] {pt3dclear() pt3dadd(0.0, 44.0, 32.0, 1.33333) pt3dadd(0.0, 56.0, 48.0, 1.33333)}
    comp[3] {pt3dadd(0.0, 68.0, 64.0, 1.33333)}
    comp[58] {pt3dclear() pt3dadd(-6.635839E-6, -100.0, 0.0, 1.0) pt3dadd(-9.735475, -123.02701, 0.0, 1.0)}
    comp[58] {pt3dadd(-19.470892, -146.053, 0.0, 1.0)}
    comp[56] {pt3dclear() pt3dadd(-6.635839E-6, -100.0, 0.0, 1.0) pt3dadd(9.735456, -123.02701, 0.0, 1.0)}
    comp[56] {pt3dadd(19.47091, -146.053, 0.0, 1.0)}
    comp[46] {pt3dclear() pt3dadd(-32.000004, -27.999973, -31.999964, 1.33333) pt3dadd(-31.999994, -39.99996, -47.99993, 1.33333)}
    comp[46] {pt3dadd(-32.000057, -51.99994, -63.999985, 1.33333)}
    comp[45] {pt3dclear() pt3dadd(-64.0, -28.0, 0.0, 0.837945) pt3dadd(-64.0, -40.0, 16.0, 0.837945)}
    comp[45] {pt3dadd(-63.99984, -51.99975, 31.999928, 0.837945)}
    comp[44] {pt3dclear() pt3dadd(-64.0, -28.0, 0.0, 0.837945) pt3dadd(-76.0, -44.0, 0.0, 0.837945)}
    comp[44] {pt3dadd(-88.00005, -59.999695, -1.6570774E-4, 0.837945)}
    comp[33] {pt3dclear() pt3dadd(32.000084, -28.0, 32.00004, 1.33333) pt3dadd(32.000126, -39.999954, 47.999992, 1.33333)}
    comp[33] {pt3dadd(31.999937, -51.999847, 63.999756, 1.33333)}
    comp[32] {pt3dclear() pt3dadd(64.0, -28.0, 0.0, 0.837945) pt3dadd(64.0, -40.0, -16.0, 0.837945)}
    comp[32] {pt3dadd(63.99987, -51.99968, -31.999638, 0.837945)}
    comp[31] {pt3dclear() pt3dadd(64.0, -28.0, 0.0, 0.837945) pt3dadd(76.0, -44.0, 0.0, 0.837945)}
    comp[31] {pt3dadd(88.000046, -60.00023, 0.0, 0.837945)}
    comp[20] {pt3dclear() pt3dadd(-32.000008, 68.0, -32.000004, 1.33333) pt3dadd(-47.999744, 79.99989, -32.000023, 1.33333)}
    comp[20] {pt3dadd(-63.99968, 91.99982, -32.00002, 1.33333)}
    comp[19] {pt3dclear() pt3dadd(0.0, 68.0, -64.0, 0.837945) pt3dadd(12.0, 84.0, -64.0, 0.837945)}
    comp[19] {pt3dadd(24.00037, 100.00037, -63.999958, 0.837945)}
    comp[18] {pt3dclear() pt3dadd(0.0, 68.0, -64.0, 0.837945) pt3dadd(0.0, 84.0, -76.0, 0.837945)}
    comp[18] {pt3dadd(-1.7517991E-4, 99.99988, -87.99992, 0.837945)}
    comp[7] {pt3dclear() pt3dadd(31.999998, 68.0, 32.0, 1.33333) pt3dadd(47.99968, 79.99977, 31.999996, 1.33333)}
    comp[7] {pt3dadd(63.999664, 91.99977, 31.999992, 1.33333)}
    comp[6] {pt3dclear() pt3dadd(0.0, 68.0, 64.0, 0.837945) pt3dadd(-12.0, 84.0, 64.0, 0.837945)}
    comp[6] {pt3dadd(-24.00005, 99.999725, 64.00002, 0.837945)}
    comp[5] {pt3dclear() pt3dadd(0.0, 68.0, 64.0, 0.837945) pt3dadd(0.0, 84.0, 76.0, 0.837945)}
    comp[5] {pt3dadd(-5.235506E-5, 99.999916, 87.999954, 0.837945)}
    comp[59] {pt3dclear() pt3dadd(-19.470892, -146.053, 0.0, 1.0) pt3dadd(-29.206392, -169.08, 0.0, 1.0)}
    comp[59] {pt3dadd(-38.94189, -192.106, 0.0, 1.0)}
    comp[57] {pt3dclear() pt3dadd(19.47091, -146.053, 0.0, 1.0) pt3dadd(29.206406, -169.08, 0.0, 1.0)}
    comp[57] {pt3dadd(38.941807, -192.106, 0.0, 1.0)}
    comp[49] {pt3dclear() pt3dadd(-32.000057, -51.99994, -63.999985, 1.33333) pt3dadd(-31.999996, -63.99991, -79.99986, 1.33333)}
    comp[49] {pt3dadd(-32.000145, -75.99956, -95.99962, 1.33333)}
    comp[48] {pt3dclear() pt3dadd(-63.99984, -51.99975, 31.999928, 0.837945) pt3dadd(-63.99974, -63.999542, 47.99981, 0.837945)}
    comp[48] {pt3dadd(-63.999584, -75.99931, 63.99976, 0.837945)}
    comp[47] {pt3dclear() pt3dadd(-88.00005, -59.999695, -1.6570774E-4, 0.837945) pt3dadd(-100.00012, -75.99941, -3.2243066E-4, 0.837945)}
    comp[47] {pt3dadd(-112.000145, -91.999115, -4.6624226E-4, 0.837945)}
    comp[36] {pt3dclear() pt3dadd(31.999937, -51.999847, 63.999756, 1.33333) pt3dadd(32.000328, -64.00009, 80.00027, 1.33333)}
    comp[36] {pt3dadd(32.000214, -75.99994, 96.00001, 1.33333)}
    comp[35] {pt3dclear() pt3dadd(63.99987, -51.99968, -31.999638, 0.837945) pt3dadd(63.99988, -63.999992, -48.000046, 0.837945)}
    comp[35] {pt3dadd(63.999767, -75.999664, -63.999664, 0.837945)}
    comp[34] {pt3dclear() pt3dadd(88.000046, -60.00023, 0.0, 0.837945) pt3dadd(100.00014, -75.99946, 0.0, 0.837945)}
    comp[34] {pt3dadd(112.00018, -91.99966, 0.0, 0.837945)}
    comp[23] {pt3dclear() pt3dadd(-63.99968, 91.99982, -32.00002, 1.33333) pt3dadd(-79.99957, 103.99982, -32.000046, 1.33333)}
    comp[23] {pt3dadd(-96.000435, 116.00012, -31.999968, 1.33333)}
    comp[22] {pt3dclear() pt3dadd(24.00037, 100.00037, -63.999958, 0.837945) pt3dadd(36.000114, 115.99994, -63.999935, 0.837945)}
    comp[22] {pt3dadd(48.000484, 132.0003, -63.999893, 0.837945)}
    comp[21] {pt3dclear() pt3dadd(-1.7517991E-4, 99.99988, -87.99992, 0.837945) pt3dadd(-4.1945462E-4, 115.99981, -99.99989, 0.837945)}
    comp[21] {pt3dadd(-6.5721705E-4, 131.99974, -111.99985, 0.837945)}
    comp[10] {pt3dclear() pt3dadd(63.999664, 91.99977, 31.999992, 1.33333) pt3dadd(79.99965, 103.99977, 31.999992, 1.33333)}
    comp[10] {pt3dadd(95.999664, 115.99977, 31.999996, 1.33333)}
    comp[9] {pt3dclear() pt3dadd(-24.00005, 99.999725, 64.00002, 0.837945) pt3dadd(-36.00011, 115.999435, 64.00003, 0.837945)}
    comp[9] {pt3dadd(-48.000313, 132.00015, 64.00001, 0.837945)}
    comp[8] {pt3dclear() pt3dadd(-5.235506E-5, 99.999916, 87.999954, 0.837945) pt3dadd(-1.4170882E-4, 115.99965, 99.99978, 0.837945)}
    comp[8] {pt3dadd(-3.9500205E-4, 131.99973, 111.99991, 0.837945)}
    comp[50] {pt3dclear() pt3dadd(-112.000145, -91.999115, -4.6624226E-4, 0.837945) pt3dadd(-124.00055, -107.99976, -4.091831E-4, 0.837945)}
    comp[50] {pt3dadd(-136.00061, -123.99945, -5.919892E-4, 0.837945)}
    comp[37] {pt3dclear() pt3dadd(112.00018, -91.99966, 0.0, 0.837945) pt3dadd(124.00022, -107.99986, 0.0, 0.837945)}
    comp[37] {pt3dadd(136.00027, -124.00009, 0.0, 0.837945)}
    comp[24] {pt3dclear() pt3dadd(-6.5721705E-4, 131.99974, -111.99985, 0.837945) pt3dadd(-0.0010701425, 147.99988, -123.99997, 0.837945)}
    comp[24] {pt3dadd(-3.7628168E-4, 164.00018, -136.0002, 0.837945)}
    comp[11] {pt3dclear() pt3dadd(-3.9500205E-4, 131.99973, 111.99991, 0.837945) pt3dadd(-6.2802254E-4, 147.99982, 124.00003, 0.837945)}
    comp[11] {pt3dadd(3.6693433E-5, 164.00029, 136.00023, 0.837945)}
    comp[51] {pt3dclear() pt3dadd(-136.00061, -123.99945, -5.919892E-4, 0.837945) pt3dadd(-148.00061, -139.99915, -7.203825E-4, 0.837945)}
    comp[51] {pt3dadd(-160.0007, -155.99886, -8.9160044E-4, 0.837945)}
    comp[38] {pt3dclear() pt3dadd(136.00027, -124.00009, 0.0, 0.837945) pt3dadd(148.00035, -139.9993, 0.0, 0.837945)}
    comp[38] {pt3dadd(160.00012, -155.99953, 0.0, 0.837945)}
    comp[25] {pt3dclear() pt3dadd(-3.7628168E-4, 164.00018, -136.0002, 0.837945) pt3dadd(-4.955236E-4, 179.99997, -148.00005, 0.837945)}
    comp[25] {pt3dadd(-6.185023E-4, 195.9998, -159.99991, 0.837945)}

    comp[12] {pt3dclear() pt3dadd(3.6693433E-5, 164.00029, 136.00023, 0.837945) pt3dadd(1.4269038E-4, 179.99968, 147.99976, 0.837945)}
    comp[12] {pt3dadd(-1.15835806E-4, 195.99976, 159.99988, 0.837945)}
    comp[52] {pt3dclear() pt3dadd(-160.0007, -155.99886, -8.9160044E-4, 0.837945) pt3dadd(-172.0008, -171.99857, -0.0010713129, 0.837945)}
    comp[52] {pt3dadd(-184.00107, -187.99918, -9.6784125E-4, 0.837945)}
    comp[39] {pt3dclear() pt3dadd(160.00012, -155.99953, 0.0, 0.837945) pt3dadd(172.00076, -171.99973, 0.0, 0.837945)}
    comp[39] {pt3dadd(184.0004, -187.99992, 0.0, 0.837945)}
    comp[26] {pt3dclear() pt3dadd(-6.185023E-4, 195.9998, -159.99991, 0.837945) pt3dadd(-7.454591E-4, 211.99959, -171.99977, 0.837945)}
    comp[26] {pt3dadd(-8.9209125E-4, 227.99937, -183.99963, 0.837945)}
    comp[13] {pt3dclear() pt3dadd(-1.15835806E-4, 195.99976, 159.99988, 0.837945) pt3dadd(-3.677581E-4, 211.99985, 172.0, 0.837945)}
    comp[13] {pt3dadd(-6.1248185E-4, 227.99992, 184.00015, 0.837945)}
    comp[53] {pt3dclear() pt3dadd(-184.00107, -187.99918, -9.6784125E-4, 0.837945) pt3dadd(-196.00117, -203.99889, -0.0011438904, 0.837945)}
    comp[53] {pt3dadd(-208.00125, -219.99861, -0.0013205758, 0.837945)}
    comp[40] {pt3dclear() pt3dadd(184.0004, -187.99992, 0.0, 0.837945) pt3dadd(196.0011, -203.99918, 0.0, 0.837945)}
    comp[40] {pt3dadd(208.00076, -219.99939, 0.0, 0.837945)}
    comp[27] {pt3dclear() pt3dadd(-8.9209125E-4, 227.99937, -183.99963, 0.837945) pt3dadd(-8.054877E-4, 244.0003, -196.00034, 0.837945)}
    comp[27] {pt3dadd(-9.225024E-4, 260.00012, -208.00021, 0.837945)}
    comp[14] {pt3dclear() pt3dadd(-6.1248185E-4, 227.99992, 184.00015, 0.837945) pt3dadd(-8.7018224E-4, 244.00003, 196.00026, 0.837945)}
    comp[14] {pt3dadd(1.5117969E-4, 259.9998, 207.99985, 0.837945)}

 }
         proc biophys() {
 // 
 //       insert the mechanisms and assign max conductances
 // 
 forsec all { insert pas
insert extracellular
	xraxial=1e+09 
	xg=1e+09 
	xc=0 
	e_extracellular  }   // 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
         forsec all { 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 deepbask

Loading data, please wait...