CA1 pyramidal neuron to study INaP properties and repetitive firing (Uebachs et al. 2010)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:125152
A model of a CA1 pyramidal neuron containing a biophysically realistic morphology and 15 distributed voltage and Ca2+-dependent conductances. Repetitive firing is modulated by maximal conductance and the voltage dependence of the persistent Na+ current (INaP).
Reference:
1 . Uebachs M, Opitz T, Royeck M, Dickhof G, Horstmann MT, Isom LL, Beck H (2010) Efficacy loss of the anticonvulsant carbamazepine in mice lacking sodium channel beta subunits via paradoxical effects on persistent sodium currents. J Neurosci 30:8489-501 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Na,p; I Na,t; I p,q; I A; I K,leak; I M; I K,Ca; I CAN; I Calcium; ATP-senstive potassium current;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Detailed Neuronal Models; Epilepsy;
Implementer(s): Horstmann, Marie-Therese [mhorstma at uni-bonn.de];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; I Na,p; I Na,t; I p,q; I A; I K,leak; I M; I K,Ca; I CAN; I Calcium; ATP-senstive potassium current;
load_file("stdlib.hoc")
load_file("stdrun.hoc")
load_file("nrngui.hoc") 

//load morphology
load_file("morphology.hoc")

//Some simulation parameters
stdrun=1
celsius=30 //simulation temperature, since some of the currents are temperature dependent
v_init=-75 //initialize membrane potential
cai0_ca_ion=5e-06 //initial calcium concentration
cao0_ca_ion=2
ca2i0_ca2_ion=5e-06
ca2o0_ca2_ion=2

//simulation step in ms
dt = 0.025 
//simulation time
tstop=1020

//inserting current clamp at soma
access soma
objectvar stim
stim = new IClamp(0.5)
stim.del = 500 //this model needs quite a long time to achieve an equilibrium state
stim.dur = 500

//set the stimulation amplitude, varied from 0.4 to 0.9 nA throughout the paper 
stim.amp = 0.8

//record data at soma, axon hillock and axon inital segment
objref somav, ahv, isav
somav = new Vector(52000)
somav.record(&soma.v(0.5), dt)

//file for saving data
objref all
all = new File()
strdef datei
sprint(datei, "outputdata.dat")

//save original values of Inap-density and initialize some variables
soma_ah_orig = soma.gbar_nap
isa_orig = isa.gbar_nap
factor = 1
sh = 0

strdef soma_gbar_nap
sprint(soma_gbar_nap, "%g", soma.gbar_nap)


//defining some functions

proc run_sim_graph() {
    dt = 0.025
    print "running simulation please wait"
    init()
    run()
    print "writing data file of membrane voltages at soma"
    write_file()
    print "data was written into the file outputdata.dat"
    print "done"
}

proc write_file() {
    sprint(datei, "outputdata.dat") 
    all.wopen(datei)

    for i=0, somav.size()-1 {
        all.printf("%g \r\n", somav.x(i))
    }

    all.close
}

proc update_shift(){
    shift = $1
    soma.sh_nap = shift
    AH.sh_nap = shift
    isa.sh_nap = shift
}

proc update_gbar(){
    inap_isa = $1
    fac = inap_isa/isa_orig
    soma.gbar_nap = soma_ah_orig*fac
    AH.gbar_nap = soma_ah_orig*fac
    isa.gbar_nap = inap_isa
    sprint(soma_gbar_nap, "%g mhO/cm^2", soma.gbar_nap)
}

//building gui controls for easy access to changed model parameters

objref vbox
vbox = new VBox()
vbox.intercept(1)
xpanel("")

xlabel("shift of Inap at Soma, AH and AIS varied from 0 to -16 mV in the publication")
xvalue("shift", "sh", 0, "update_shift(sh)") 
xlabel("INap density at axon initial segment, varied from 0.00016 to 0.00166 S/cm^2 in the publication.")
xlabel("INap density at soma and axon hillock (AH) will be changed accordingly.")
xvalue("INap density at AIS", "isa.gbar_nap", 0, "update_gbar(isa.gbar_nap)") 
xlabel("INap density at soma, AH")
xvarlabel(soma_gbar_nap) 


xpanel()
vbox.intercept(0)
vbox.map("adjust model parameters", 100, 150, -1, -1)


objref vbox4
vbox4 = new VBox()
vbox4.intercept(1)
xpanel("")
xlabel("stimulation current amplitude, varied from 0.4 nA to 0.9 nA in the publication")
xvalue("injection current amplitude", "stim.amp")
xpanel()
vbox4.intercept(0)
vbox4.map("adjust stimulation", 100, 400, -1, -1)


objref vbox3
vbox3 = new VBox()
vbox3.intercept(1)
xpanel("Uebachs et al. 2009")
xlabel("Recreate a voltage trace from figure 9A")
xlabel("Attention: This takes some time, since the model needs quite a long time to establish a steady state.")
xbutton("Run Simulation/graph then write file", "run_sim_graph()")
xlabel("")
xlabel("simulation time")
xvalue("t")
xbutton("Stop the simulation","stoprun=1")
xpanel()
vbox3.intercept(0)
vbox3.map("run the simulation", 100,550,-1,-1)


objref vbox2
vbox2 = new VBox()
vbox2.intercept(1)

newPlot(480,1020,-80,40)
graphItem.save_name("graphList[0].")
graphList[0].append(graphItem)
graphItem.addexpr("soma.v(0.5)")

vbox2.intercept(0)
vbox2.map("mebrane voltage at soma", 700,150,500,350)