Lateral dendrodenditic inhibition in the Olfactory Bulb (David et al. 2008)

 Download zip file 
Help downloading and running models
Accession:116094
Mitral cells, the principal output neurons of the olfactory bulb, receive direct synaptic activation from primary sensory neurons. Shunting inhibitory inputs delivered by granule cell interneurons onto mitral cell lateral dendrites are believed to influence spike timing and underlie coordinated field potential oscillations. Lateral dendritic shunt conductances delayed spiking to a degree dependent on both their electrotonic distance and phase of onset. Recurrent inhibition significantly narrowed the distribution of mitral cell spike times, illustrating a tendency towards coordinated synchronous activity. This result suggests an essential role for early mechanisms of temporal coordination in olfaction. The model was adapted from Davison et al, 2003, but include additional noise mechanisms, long lateral dendrite, and specific synaptic point processes.
Reference:
1 . David F, Linster C, Cleland TA (2008) Lateral dendritic shunt inhibition can regularize mitral cell spike patterning. J Comput Neurosci 25:25-38 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Olfactory bulb;
Cell Type(s): Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron granule MC GABA cell;
Channel(s): I Na,t; I L high threshold; I A; I K; I K,Ca;
Gap Junctions:
Receptor(s): GabaA; AMPA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Temporal Pattern Generation; Synchronization; Simplified Models; Active Dendrites; Olfaction;
Implementer(s):
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron granule MC GABA cell; GabaA; AMPA; I Na,t; I L high threshold; I A; I K; I K,Ca;
/
DendroDendriticInhibition
ShortDendrite
cadecay.mod *
currentGauss.mod
flushf.mod *
GradGABAa.mod
ipscGauss.mod
kA.mod *
kca.mod *
kfasttab.mod *
kM.mod *
kslowtab.mod *
lcafixed.mod *
nafast.mod *
nagran.mod *
shuntInhib.mod *
stim2.mod
bulb.hoc
experiment_fig1cde.hoc
experiment_fig1fg.hoc
experiment_fig2bdf.hoc
experiment_fig3.hoc
experiment_fig4.hoc
experiment_fig5.hoc
experiment_fig6.hoc
fig1cde.ses
fig1fg.ses
fig2bdf.ses
fig3.ses
fig4.ses
fig5.ses
fig6.ses
figure1cde.m
figure1fg.m
figure2bdf.m
figure3.m
figure4abcd.m
figure4ef.m
figure5.m
figure6.asv
figure6.m
fit_ML_normal.m
granule.tem
init.hoc
mathslib.hoc *
mitral.tem
mosinit.hoc *
parameters_fig1cde.hoc
parameters_fig1fg.hoc
parameters_fig2bdf.hoc
parameters_fig3.hoc
parameters_fig4.hoc
parameters_fig5.hoc
parameters_fig6.hoc
plot_normal.m
tabchannels.dat *
tabchannels.hoc
                            
//March 29th 2006.

// *** Set-up recording
objref igabaa, i_soma_br[nmitx], repere, cdIvec

i_soma_br = new Vector(nmitx)
repere = new Vector(10)
cdIvec = new Vector(5)

insert_iclamps_reg(tstop) // injection of the current
insert_iclamp_ipsc(tstop) // injection of the ipsc

mit[0][0].soma	i_soma_br[0] = new current_gauss(0.5)
i_soma_br[0].dur   = 700
i_soma_br[0].std0  = 0.9
i_soma_br[0].f0    = 4000
i_soma_br[0].tau_f = 1

xopen("fig4.ses")

input_ipsc[0][0].del = 4000
input_ipsc[0][0].tau = 5

a = startsw() // seed generator

// BOUCLE SUR L'INTENSITE DE STIMULATION //pour 3 ca marchait bien
input_reg[0][0].amp = 0.8
cdI = -0.5 	//default
nbnoise = 200

// button parameters cdI, amp ...
xpanel("Choose parameters")
xvalue("gGABAa only for abcd","cdI", 1,"change_ggaba()", 0, 1)
xvalue("Noise realizations number","nbnoise",1,"change_nbnoise()",0,1)
xvalue("Tau gGABAa","input_ipsc[0][0].tau", 1,"change_taugaba()", 0, 1)
xbutton("Run fig 4abcd", "run_fig4abcd()")
xbutton("Run fig 4ef", "run_fig4ef()")
xpanel(930,200)


xpanel("Hint")
    xlabel("To run the simulation, click on Run fig 4abcd or Run fig 4ef.")
    xlabel("Choose the number of noise realizations, 200 is a minimum")
    xlabel("200 may take few hours for fig4abcd, and a day for fig4ef")
xpanel()

proc change_ggaba() {
	cdI=cdI
}
proc change_nbnoise() {
	nbnoise = nbnoise
}
proc change_taugaba() {
	input_ipsc[0][0].tau = input_ipsc[0][0].tau
}

proc run_fig4abcd() {
	sprint(filename,"%s%f.dat","fig4_",cdI)
	outfile.wopen(filename)
	// Loop on the noise
	for w = 0, nbnoise-1 {
		//  1st simu without ipsc
		i_soma_br[0].seed(a+w)		//noise seed
		input_ipsc[0][0].amp = 0
		input_ipsc[0][0].del = 0
		run()
		mit[0][0].spiketimes.printf(outfile,"%10.3f")
		outfile.printf("\n")
		repere.x[0] = mit[0][0].spiketimes.x[9]
		print mit[0][0].spiketimes.x[9],mit[0][0].spiketimes.x[10],mit[0][0].spiketimes.x[10]-mit[0][0].spiketimes.x[9]

		//   with ipsc 
		for idel = 1, 6 {
			i_soma_br[0].seed(a+w)	//noise seed
			input_ipsc[0][0].amp = cdI
			input_ipsc[0][0].del = repere.x[0] + 5*idel
			run()
			mit[0][0].spiketimes.printf(outfile,"%10.3f")
			outfile.printf("\n")
			print mit[0][0].spiketimes.x[9],mit[0][0].spiketimes.x[10],mit[0][0].spiketimes.x[10]-mit[0][0].spiketimes.x[9]
		}
	print "w=", w
	}
	outfile.close()

	xpanel("Matlab analysis")
  	xlabel("In a matlab window, type figure4abcd(X)")
  	xlabel("X is the number of noise realizations you chose")
	xpanel()
}

proc run_fig4ef() {
	cdIvec.x[0] = -0.1
	cdIvec.x[1] = -0.2
	cdIvec.x[2] = -0.5
	cdIvec.x[3] = -1
	cdIvec.x[4] = -2
	for ncdI = 0, 4 {
		cdI = cdIvec.x[ncdI]
		sprint(filename,"%s%f.dat","fig4_",cdIvec.x[ncdI])
		outfile.wopen(filename)
		// Loop on the noise
		for w = 0, nbnoise-1 {
			//  1st simu without ipsc
			i_soma_br[0].seed(a+w)		//noise seed
			input_ipsc[0][0].amp = 0
			input_ipsc[0][0].del = 0
			run()
			mit[0][0].spiketimes.printf(outfile,"%10.3f")
			outfile.printf("\n")
			repere.x[0] = mit[0][0].spiketimes.x[9]
			print mit[0][0].spiketimes.x[9],mit[0][0].spiketimes.x[10],mit[0][0].spiketimes.x[10]-mit[0][0].spiketimes.x[9]

			//   with ipsc
			for idel = 1, 6 {
				i_soma_br[0].seed(a+w)	//noise seed
				input_ipsc[0][0].amp = cdI
				input_ipsc[0][0].del = repere.x[0] + 5*idel
				run()
				mit[0][0].spiketimes.printf(outfile,"%10.3f")
				outfile.printf("\n")
				print mit[0][0].spiketimes.x[9],mit[0][0].spiketimes.x[10],mit[0][0].spiketimes.x[10]-mit[0][0].spiketimes.x[9]
			}
			print "w=", w
		}
		outfile.close()
	}
	xpanel("Matlab analysis")
  	xlabel("In a matlab window, type figure4ef(X)")
  	xlabel("X is the number of noise realizations you chose")
	xpanel()
}

Loading data, please wait...