CA1 pyr cell: Inhibitory modulation of spatial selectivity+phase precession (Grienberger et al 2017)

 Download zip file 
Help downloading and running models
Accession:225080
Spatially uniform synaptic inhibition enhances spatial selectivity and temporal coding in CA1 place cells by suppressing broad out-of-field excitation.
Reference:
1 . Grienberger C, Milstein AD, Bittner KC, Romani S, Magee JC (2017) Inhibitory suppression of heterogeneously tuned excitation enhances spatial coding in CA1 place cells. Nat Neurosci [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; Realistic Network;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal cell;
Channel(s):
Gap Junctions:
Receptor(s): NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; Python;
Model Concept(s): Active Dendrites; Detailed Neuronal Models; Place cell/field; Synaptic Integration; Short-term Synaptic Plasticity; Spatial Navigation; Feature selectivity;
Implementer(s): Milstein, Aaron D. [aaronmil at stanford.edu];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal cell; NMDA;
/
GrienbergerEtAl2017
morphologies
readme.txt
ampa_kin.mod *
exp2EPSC.mod
exp2EPSG.mod
exp2EPSG_NMDA.mod
gaba_a_kin.mod *
h.mod
kad.mod *
kap.mod *
kdr.mod *
km2.mod
nas.mod
nax.mod
nmda_kin2.mod
nmda_kin3.mod
nmda_kin5.mod *
pr.mod *
vecevent.mod *
batch_EPSP_attenuation.sh
batch_place_cell_r_inp.sh
batch_place_cell_record_i_syn.sh
batch_place_cell_single_compartment.sh
batch_place_cell_subtr_inh.sh
batch_place_cell_subtr_inh_shifted.sh
batch_place_cell_subtr_inh_vclamp.sh
batch_process_i_syn_files.sh
batch_rinp.sh
batch_spine_attenuation_ratio.sh
build_expected_EPSP_reference.sh
build_expected_EPSP_reference_controller.py
build_expected_EPSP_reference_engine.py
consolidate_i_syn_files.py
consolidate_tracked_spine_data.py
fit_parameter_exponential_distribution.py
function_lib.py
optimize_AMPA_KIN.py
optimize_dendritic_excitability_020416.py
optimize_GABA_A_KIN.py
optimize_NMDA_KIN2.py
parallel_branch_cooperativity.sh
parallel_branch_cooperativity_no_nmda.sh
parallel_clustered_branch_cooperativity_nmda_controller_110315.py
parallel_clustered_branch_cooperativity_nmda_engine_110315.py
parallel_EPSP_attenuation_controller.py
parallel_EPSP_attenuation_engine.py
parallel_EPSP_i_attenuation_controller.py
parallel_EPSP_i_attenuation_engine.py
parallel_expected_EPSP_controller.py
parallel_expected_EPSP_engine.py
parallel_optimize_branch_cooperativity.sh
parallel_optimize_branch_cooperativity_nmda_kin3_controller.py
parallel_optimize_branch_cooperativity_nmda_kin3_engine.py
parallel_optimize_EPSP_amp_controller.py
parallel_optimize_EPSP_amp_engine.py
parallel_optimize_pr.sh
parallel_optimize_pr_controller_020116.py
parallel_optimize_pr_engine_020116.py
parallel_rinp_controller.py
parallel_rinp_engine.py
parallel_spine_attenuation_ratio_controller.py
parallel_spine_attenuation_ratio_engine.py
plot_channel_distributions.py
plot_NMDAR_kinetics.py
plot_results.py
plot_spine_traces.py
plot_synaptic_conductance_facilitation.py
process_i_syn_files.py
record_bAP_attenuation.py
simulate_place_cell_no_precession.py
simulate_place_cell_single_compartment.py
simulate_place_cell_single_compartment_no_nmda.py
simulate_place_cell_subtr_inh.py
simulate_place_cell_subtr_inh_add_noise.py
simulate_place_cell_subtr_inh_add_noise_no_na.py
simulate_place_cell_subtr_inh_no_na.py
simulate_place_cell_subtr_inh_no_nmda_no_na.py
simulate_place_cell_subtr_inh_r_inp.py
simulate_place_cell_subtr_inh_rec_i_syn.py
simulate_place_cell_subtr_inh_shifted.py
simulate_place_cell_subtr_inh_silent.py
simulate_place_cell_subtr_inh_vclamp.py
specify_cells.py
                            
TITLE nas
: Na current 
: modified from Jeff Magee. M.Migliore may97
: added sh to account for higher threshold M.Migliore, Apr.2002
: Aaron Milstein modified October 2015, added additional sha that applies only to activation threshold

NEURON {
	THREADSAFE
    SUFFIX nas
	USEION na READ ena WRITE ina
	RANGE gbar, ar, sh, sha
	RANGE minf, hinf, mtau, htau, sinf, taus
    GLOBAL qinf, thinf
}

PARAMETER {
	sh   = 0	    (mV)
    sha  = 0        (mV)
	gbar = 0.010   	(mho/cm2)	
								
	tha  =  -30	    (mV)		: v 1/2 for act
	qa   = 7.2	    (mV)		: act slope (4.5)
	Ra   = 0.4	    (/ms)		: open (v)
	Rb   = 0.124 	(/ms)		: close (v)		

	thi1  = -45	    (mV)		: v 1/2 for inact
	thi2  = -45 	(mV)		: v 1/2 for inact 	
	qd   = 1.5	    (mV)	    : inact tau slope
	qg   = 1.5      (mV)
	mmin=0.02	
	hmin=0.5			
	q10=2
	Rg   = 0.01 	(/ms)		: inact recov (v) 	
	Rd   = .03 	    (/ms)		: inact (v)

	thinf  = -50 	(mV)		: inact inf slope
	qinf  = 4 	    (mV)		: inact inf slope

    vhalfs=-60	    (mV)		: slow inact.
    a0s=0.0003	    (ms)		: a0s=b0s
    zetas=12	    (1)
    gms=0.2		    (1)
    smax=10		    (ms)
    vvh=-58		    (mV)
    vvs=2		    (mV)
    ar=1		    (1)		    : 1=no inact., 0=max inact.
}


UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
	(pS) = (picosiemens)
	(um) = (micron)
} 

ASSIGNED {
	ena		    (mV)
    celsius     (degC)
	v 		    (mV)
    ina 		(mA/cm2)
	thegna		(mho/cm2)
	minf
    hinf
	mtau        (ms)
    htau        (ms)
	sinf
    taus        (ms)
}
 
STATE { m h s }

BREAKPOINT {
    SOLVE states METHOD cnexp
    thegna = gbar*m*m*m*h*s
	ina = thegna * (v - ena)
} 

INITIAL {
	trates(v,ar,sh,sha)
	m=minf  
	h=hinf
	s=sinf
    thegna = gbar*m*m*m*h*s
	ina = thegna * (v - ena)
}


FUNCTION alpv(v(mV)) {
    alpv = 1/(1+exp((v-vvh-sh)/vvs))
    :alpv = 1/(1+exp((v-vvh)/vvs))
}
        
FUNCTION alps(v(mV)) {  
    alps = exp(1.e-3*zetas*(v-vhalfs-sh)*9.648e4/(8.315*(273.16+celsius)))
    :alps = exp(1.e-3*zetas*(v-vhalfs)*9.648e4/(8.315*(273.16+celsius)))
}

FUNCTION bets(v(mV)) {
    bets = exp(1.e-3*zetas*gms*(v-vhalfs-sh)*9.648e4/(8.315*(273.16+celsius)))
    :bets = exp(1.e-3*zetas*gms*(v-vhalfs)*9.648e4/(8.315*(273.16+celsius)))
}

DERIVATIVE states {   
    trates(v,ar,sh,sha)
    m' = (minf-m)/mtau
    h' = (hinf-h)/htau
    s' = (sinf-s)/taus
}

PROCEDURE trates(vm,a2,sh2,sha2) {
    LOCAL  a, b, c, qt
    qt=q10^((celsius-24)/10)
	a = trap0(vm,tha+sh2+sha2,Ra,qa)
	b = trap0(-vm,-tha-sh2-sha2,Rb,qa)
	mtau = 1/(a+b)/qt
    if (mtau<mmin) {mtau=mmin}
	minf = a/(a+b)

	a = trap0(vm,thi1+sh2,Rd,qd)
	b = trap0(-vm,-thi2-sh2,Rg,qg)
    :a = trap0(vm,thi1,Rd,qd)
	:b = trap0(-vm,-thi2,Rg,qg)
	htau =  1/(a+b)/qt
    if (htau<hmin) {htau=hmin}
	hinf = 1/(1+exp((vm-thinf-sh2)/qinf))
    :hinf = 1/(1+exp((vm-thinf)/qinf))
	c=alpv(vm)
    sinf = c+a2*(1-c)
    taus = bets(vm)/(a0s*(1+alps(vm)))
    if (taus<smax) {taus=smax}
}

FUNCTION trap0(v,th,a,q) {
	if (fabs(v-th) > 1e-6) {
	    trap0 = a * (v - th) / (1 - exp(-(v - th)/q))
	} else {
	    trap0 = a * q
 	}
}