CA1 pyramidal neuron: nonlinear a5-GABAAR controls synaptic NMDAR activation (Schulz et al 2018)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:258867
The study shows that IPSCs mediated by a5-subunit containing GABAA receptors are strongly outward-rectifying generating 4-fold larger conductances above -50?mV than at rest. Experiments and modeling show that synaptic activation of these receptors can very effectively control voltage-dependent NMDA-receptor activation in a spatiotemporally controlled manner in fine dendrites of CA1 pyramidal cells. The files contain the NEURON code for Fig.8, Fig.S8 and Fig.S9 of the paper. The model is based on the model published by Bloss et al., 2017. Physiological properties of GABA synapses were modified as determined by optogenetic activation of inputs during voltage-clamp recordings in Schulz et al. 2018. Other changes include stochastic synaptic release and short-term synaptic plasticity. All changes of mechanisms and parameters are detailed in the Methods of the paper. Simulation can be run by starting start_simulation.hoc after running mknrndll. The files that model the individual figures have to be uncommented in start_simulation.hoc beforehand.
Reference:
1 . Schulz JM, Knoflach F, Hernandez MC, Bischofberger J (2018) Dendrite-targeting interneurons control synaptic NMDA-receptor activation via nonlinear a5-GABAA receptors. Nat Commun 9:3576 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Dendrite; Synapse;
Brain Region(s)/Organism: Hippocampus; Mouse;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I h; I A;
Gap Junctions:
Receptor(s): GabaA; GabaB; AMPA; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s):
Implementer(s): Schulz, Jan M [j.schulz at unibas.ch];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; GabaA; GabaB; AMPA; NMDA; I A; I h; Gaba; Glutamate;
/
Alpha5_NMDA_CA1_pyr
README.html
dists.mod *
eff.mod *
exc.mod *
gabab.mod
h.mod
id.mod *
inh.mod
kad.mod *
kap.mod *
kdr.mod *
na3.mod *
nmdaSyn.mod
syns.mod *
tonic.mod
activateExcitation.hoc
activateInhibition_JMS.hoc
addChannels_JMS.hoc
addExcitation_JMS.hoc
addVgatInhibition_JMS.hoc
channelParameters.hoc
Connect_Stimulator2ExcSyn.hoc
Connect_Stimulator2InhSyn.hoc
Fig8_tuft_NMDA_spike.hoc
FigS8_SR_SLM_burst_stim.hoc
FigS9_test_TI.hoc
flagVgatInhibition_JMS.hoc
Generate_Stimulator.hoc
getBranchOrder.hoc *
idMorph.hoc
inhibitionBiophysics_JMS.hoc
initializationAndRun.hoc *
loadMorph.hoc *
mosinit.hoc
naceaxon.nrn *
Print-to-File.hoc
processMorph.hoc *
proofreadMorph.hoc *
resetNSeg.hoc *
screenshot.png
start_simulation.hoc
synHelperScripts.hoc
SynStim_SR_SLM_control.hoc
SynStim_SR_SLM_noInh.hoc
SynStim_SR_SLM_redInh.hoc
SynStim_SR_SLM_TI.hoc
tuft_NMDA_spike_fast.hoc
tuft_NMDA_spike_noRect.hoc
twinApical.swc *
update_Synapses.hoc
                            
// This function turns on a given number of excitatory synapses contained within a 
// given SectionList.  This function is analogous to the activateInhibition()
// proc but does not do anything genotype-specific.
//
// !!NOTE!!: this function does not attempt to turn off
// all synapses before activating the desired synapses.  It merely sets a 
// subset of synapses to "on", agnostic to whether they were previously on
// or not.  Note, however, that this function can be called twice to first
// turn all synapses off, and then turn on only the desired synapses.  See
// notes below.
//
// This function can also be used to toggle off synapses in the following way:
// A) to shut off all synapses in a given SectionList, set $2<0.
// B) to shut off all synapses in all sections, set $2<0 and set $o2 to be
//	the whole tree.
//
// Also, to activate all synapses in a given region, just set $2 to be a huge
//	number; this will activate all of the synapses in the desired region.
//
// INPUT:
// $o1: SectionList instance.  Sections to draw from.
// $2: variable.  Number of synapses to activeate.
// $3: variable.  The seed to assign.
//
// OUTPUT:
// the .isOn flag is toggled as desired for the synapses selected.
//

strdef curGenStr
obfunc activateExcitation() {local ii localobj allSyns,theSec,finalSyns
	allSyns = new Vector() // all (potential) synapses that qualify for activation	
	finalSyns = new Vector() // vector of synapse indices that will be activated
	
	
	// interate over all synapses, adding those that are in the right
	// domain.
	for ii=0,nExc-1{
		synAmpa[ii].get_loc()
		theSec = new SectionRef()
		if(sectionRefInList(theSec,$o1)){
			allSyns.append(ii)
		}
		pop_section()
	}
	
	if($2<0){
		// Want to shut off all synapses in the provided region.
		for ii=0,allSyns.size()-1{
			synAmpa[allSyns.x[ii]].isOn = 0
			synNmda[allSyns.x[ii]].isOn = 0
		}
		return finalSyns
	}else{		
		// Choose random indices from desired subset.
		finalSyns = sampleNoReplace(allSyns,$2,$3)  // supply non-random seed
		
		// Activate these synapses.
		for ii=0,finalSyns.size()-1{
			synAmpa[finalSyns.x[ii]].isOn=1
			synNmda[finalSyns.x[ii]].isOn=1
		}
		// Give a final printout.
		print "Activated ",finalSyns.size,"excitatory inputs"
		return finalSyns
	}
}
		
		

Loading data, please wait...