// Trying to open ../diagnostic/tstop.dat
// new end time timtot = 150.
// Trying to open ../diagnostic/dt_F.dat
// new dt = 0.002
/* supLTS/supLTS_template.hoc
automatically written from f2nrn/neuron_code_writer.f
via subroutines that were inserted into the fortran
code e.g., supLTS/integrate_supLTS.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 supLTS
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 4 }
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 = "supLTS"
}
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 "supLTS 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 locat_aion 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
/* Conductance densities taken from Cunningham et al 2004 (TABLE 1, SUPPLEMENTARY MATERIAL), from which the conductance densities for this model were meant to be taken from (with FS firing properties)
Conductance type Axon Soma Dendrites
gNa - transient 400 60 60 proximal, 10 distal
gK - delayed rectifier 400 100 100 proximal, 10 distal
gK - transient ("A") 1 1 1
gK - Ca- and V-dependent ("C") 0 25 25
gK - AHP [FS] 0 0 0
gK - AHP [LTS] 0 0.1 0.1
gK - "K2" [FS] 0 0 0
gK - "K2" [LTS] 0.5 0.5 0.5
gK - "M" [FS] 0 0 0
gK - "M" [LTS] 0 0.5 0.5
gCa - low-threshold [FS] 0 0 0 #### This is meant to be gCa(T)
gCa - low-threshold [LTS] 0 0.05 0.05 proximal, 2.0 distal
gCa - high-threshold 0 0.1 0.1 proximal, 0.2 distal #### This is meant to be gCa(L)
*/
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_a
gbar_cat_a = 5.E-05
// 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_a
gbar_cat_a = 5.E-05
// 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_a
gbar_cat_a = 5.E-05
// 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_a
gbar_cat_a = 0.002
// 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[ 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_a
gbar_cat_a = 0.002
// 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_a
gbar_cat_a = 0.002
// 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_a
gbar_cat_a = 0.002
// 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_a
gbar_cat_a = 0.002
// 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_a
gbar_cat_a = 0.002
// 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_a")) { gbar_cat_a *= spine_area_multiplier }
if (ismembrane("cat_a_a")) { gbar_cat_a_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("ar")) {gbar_ar = 0.0}
}
}
endtemplate supLTS