CA1 pyramidal neuron: Persistent Na current mediates steep synaptic amplification (Hsu et al 2018)

 Download zip file 
Help downloading and running models
This paper shows that persistent sodium current critically contributes to the subthreshold nonlinear dynamics of CA1 pyramidal neurons and promotes rapidly reversible conversion between place-cell and silent-cell in the hippocampus. A simple model built with realistic axo-somatic voltage-gated sodium channels in CA1 (Carter et al., 2012; Neuron 75, 1081–1093) demonstrates that the biophysics of persistent sodium current is sufficient to explain the synaptic amplification effects. A full model built previously (Grienberger et al., 2017; Nature Neuroscience, 20(3): 417–426) with detailed morphology, ion channel types and biophysical properties of CA1 place cells naturally reproduces the steep voltage dependence of synaptic responses.
1 . Hsu CL, Zhao X, Milstein AD, Spruston N (2018) Persistent sodium current mediates the steep voltage dependence of spatial coding in hippocampal pyramidal neurons Neuron 99:1-16
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Synapse; Channel/Receptor; Neuron or other electrically excitable cell; Axon; Dendrite;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal cell; Abstract single compartment conductance based cell;
Channel(s): I Sodium; I A; I M; I h; I K;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Transmitter(s): Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Ion Channel Kinetics; Membrane Properties; Synaptic Integration; Synaptic Amplification; Place cell/field; Active Dendrites; Conductance distributions; Detailed Neuronal Models; Electrotonus; Markov-type model;
Implementer(s): Hsu, Ching-Lung [hsuc at]; Milstein, Aaron D. [aaronmil at];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal cell; AMPA; NMDA; I A; I K; I M; I h; I Sodium; Glutamate;
ampa_kin.mod *
gaba_a_kin.mod *
kad.mod *
kap.mod *
kdr.mod *
nmda_kin5.mod *
pr.mod *
vecevent.mod *
install notes.txt
TITLE stochastic release probability


Milstein 2015. When this point process receives a spike, it requests a random number from a random number generator and
compares it to an internal release probability variable 'P' to decide if a single vesicle should be released at this
synapse. The release probability is then updated to follow specified dynamics of facilitation and depression. In order
to make use of this event, additional synaptic mechanisms must be connected to this point process via a NetCon object.

Dynamics based on:

Implementation of the model of short-term facilitation and depression described in
  Varela, J.A., Sen, K., Gibson, J., Fost, J., Abbott, L.R., and Nelson, S.B.
  A quantitative description of short-term plasticity at excitatory synapses
  in layer 2/3 of rat primary visual cortex
  Journal of Neuroscience 17:7926-7940, 1997


	RANGE P, P0, random, f, tau_F, d1, tau_D1, F, D1, tlast
    POINTER randObjPtr

    : the (1) is needed for the range limits to be effective
    P0 = 0.200          (1)     < 0, 1 >        : basal release probability
    f = 1.769           (1)     < 0, 1e9 >      : additive facilitation per spike
    tau_F = 67.351      (ms)    < 1e-9, 1e9 >   : rate of decay back to baseline following facilitation
    d1 = 0.878          (1)     < 0, 1 >        : multiplicative fast depression per spike
    tau_D1 = 92.918     (ms)    < 1e-9, 1e9 >   : rate of decay back to baseline following fast depression
    :d2 = 0.975         (1)     < 0, 1 >        : multiplicative slow depression per spike
    :tau_D2 = 9200      (ms)    < 1e-9, 1e9 >   : rate of decay back to baseline following slow depression

	P				        : instantaneous release probability
    randObjPtr              : pointer to a hoc random number generator Random.uniform(0,1)
    random                  : individual instance of random number
    F                       : current level of facilitation
    D1                      : current level of fast depression
    :D2                      : current level of slow depression
    tlast (ms)              : time of last spike

	P = P0
    random = 1
    F = 1
    D1 = 1
    :D2 = 1

NET_RECEIVE(weight) {
        tlast = t
    F = 1 + (F-1)*exp(-(t - tlast)/tau_F)
    D1 = 1 - (1-D1)*exp(-(t - tlast)/tau_D1)
:    D2 = 1 - (1-D2)*exp(-(t - tlast)/tau_D2)
:    if (P0*F*D1*D2 > 1) {
    if (P0*F*D1 > 1) {
        P = 1
    } else {
:        P = P0*F*D1*D2
        P = P0*F*D1
    random = randGen()
    if (random <= P) {
    tlast = t
    F = F + f
    D1 = D1 * d1
:    D2 = D2 * d2

double nrn_random_pick(void* r);
void* nrn_random_arg(int argpos);

FUNCTION randGen() {
   if (_p_randObjPtr) {
      :Supports separate independent but reproducible streams for
      : each instance. However, the corresponding hoc Random
      : distribution MUST be set to Random.uniform(0,1)
      _lrandGen = nrn_random_pick(_p_randObjPtr);
      hoc_execerror("Random object ref not set correctly for randObjPtr"," only via hoc Random");

PROCEDURE setRandObjRef() {
   void** pv4 = (void**)(&_p_randObjPtr);
   if (ifarg(1)) {
      *pv4 = nrn_random_arg(1);
      *pv4 = (void*)0;