Distance-dependent synaptic strength in CA1 pyramidal neurons (Menon et al. 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:222726
Menon et al. (2013) describes the experimentally-observed variation in synaptic AMPA and NMDA conductance as a function of distance from the soma. This model explores the effect of this variation on somatic EPSPs and dendritic spike initiation, as compared to the case of uniform AMPA and NMDA conductance.
Reference:
1 . Menon V, Musial TF, Liu A, Katz Y, Kath WL, Spruston N, Nicholson DA (2013) Balanced synaptic impact via distance-dependent synapse distribution and complementary expression of AMPARs and NMDARs in hippocampal dendrites. Neuron 80:1451-63 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Synapse;
Brain Region(s)/Organism: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I A; I K; I Na, slow inactivation;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Synaptic Integration;
Implementer(s): Menon, Vilas [vilasmenon2008 at u dot northwestern dot edu];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; AMPA; NMDA; I A; I K; I Na, slow inactivation;
/
MenonEtAl2013
README.txt
dv.mod
ih_new.mod
kadist.mod *
kaprox.mod *
kdrca1.mod *
leakcond.mod *
nafast2.mod
naslowcond2.mod
nmda.mod
spines.mod *
synampa.mod *
vmax.mod
vmax2.mod
vmaxlast.mod
vms.mod
code_membrane.hoc
code_objects.hoc
code_point_processes.hoc
code_routine_for_runs.hoc
code_run_multiple_spines_on_branch.hoc
code_run_single_spine.hoc
code_synapse_array_setup.hoc
code_synapse_setup.hoc
mosinit.hoc
ri06.nrn *
simulated_axon.nrn *
spinearraygeom.nrn
spinegeom.nrn
                            
objref cvode
cvode = new CVode()

proc run() {
	
	
	stdinit()
	print Vrestsoma
	continuerun(tstop)
	
}

proc adjust_h() {

	init_h5(0.7)
	init()
	
}

proc init() { local dtsav

	dtsav = dt
	
	cvode.active(0)
	reinit_props()
	
	v_init = Vrest		// v_init is the value displayed in the run control panel
	finitialize(v_init)
	
	if (init_routine == 1) {
		
		dtsav = dt
		dt = 10
		t = 1e6
			
		printf("\n")
		print "Initializing"
			
		for i = 0,60 {
			fadvance()
			printf(".")
		}	
		
		
		finitialize()
		printf("\n")
		
	}		
	
		dt = dtsav
		t = 0
	
		if (usecvode == 1) {
			print "Turn on cvode after complete initialization"
			cvode.active(1)
			cvode.atol(1e-4)
			cvode.re_init()
			//cvode.maxstep(5)

		} 
	
		ss_save()
		ss_subtract()
}

proc advance() {
	
	fadvance()
	ss_subtract()
	
}


proc ss_save() {

	Vrestsoma = soma.sec.vrest_dv(0.5)
	Vrestdend = dend.sec.vrest_dv(0.15625)
	Vrestdendprox = dendprox.sec.vrest_dv(0.75)

	
	i = 0
	forall {
		for (x) {
			if (x != 0 && x != 1) {
				vrest[i] = v(x)
				vss[i] = v(x)
				i+=1
			}
		}
	}
	

}

proc ss_subtract() {

	vsoma = soma.sec.v(0.5) - Vrestsoma
	vdend = dend.sec.v(0.15625) - Vrestdend
	vdendprox = dendprox.sec.v(0.75) - Vrestdendprox
	
}

proc clamp_cc() {

	somaA {
		elecstim.del = $1
		elecstim.dur = $2
		elecstim.amp = $3
	}
}

/*
proc holding_cc() {

	somaA {
		elecstim2.del = $1
		elecstim2.dur = $2
		elecstim2.amp = $3
	}
	
	 somaA {
		elecstim3.del = 730
		elecstim3.dur = 400
		elecstim3.amp = -0.025
	}
}


proc syn_cc() {	

	
	dendA5_01111111110 {
		
		nosyns = $1
		for nn = 0, nosyns - 1 {
			
			ampasyn[nn].loc($2)
			ampasyn[nn].gmax = $3
			ampasyn[nn].tau0 = $4
			ampasyn[nn].tau1 = $5
			ampasyn[nn].e = $6
			ampasyn[nn].onset = $7
			
		}
	}
	
	
}

*/

Loading data, please wait...