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

 Download zip file   Auto-launch 
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]
Citations  Citation Browser
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
LongDendrite
cadecay.mod *
kA.mod *
kca.mod *
kfasttab.mod *
kM.mod *
kslowtab.mod *
lcafixed.mod *
nafast.mod *
nmdanet.mod *
shuntInhib.mod *
stim2.mod
bulb.hoc
experiment_fig1.hoc
experiment_fig2ace.hoc
fig1bde.dat
fig1bde.m
fig1bde.ses
fig1fg.m
fig1fg.ses
fig2ace.m
fig2ace.ses
granule.tem
init.hoc
input.hoc
mathslib.hoc *
mitral.tem
mosinit.hoc *
parameters_fig1.hoc
parameters_fig2ace.hoc
tabchannels.dat *
tabchannels.hoc
                            
// granule.tem
// Template for granule cell model
// Andrew Davison, The Babraham Institute, 2000


begintemplate Gran
  
  public soma, proxi, dist, gemm, ngemm, AMPAr, NMDAr, AMPArS, NMDArS, CaSyn, spiketimesS, spikecountS, spiketimes, spikecount//,r

  ndist = 5 
  //print "ndist=", ndist
  ngemm = 30              //valeur par defaut superieure a la realite.

  create soma, proxi, s2p, p2d[ndist], dist[ndist], d2g[ngemm], gemm[ngemm]
  objref AMPAr, NMDAr, AMPArS[ngemm], NMDArS[ngemm], CaSyn[ngemm], spiketimes, spikecount, spiketimesS[ngemm], spikecountS[ngemm], randspine, specspine

  proc init() { local Len, Erest, RM, p, q, Atotal, AMPAtau, NMDAalpha, NMDAbeta, Erev, k


    create soma, proxi, s2p, p2d[$1], dist[$1], d2g[$2], gemm[$2]

    ngemm = $2

    spiketimes = new Vector()
    lastspikecount = 0
  
    for i = 0, ngemm-1 {
	spiketimesS[i] = new Vector()
    }


// attribution d'une specificite a chaque epine
    randspine = new Random()
    specspine = new Vector(ngemm)
    for k=0, ngemm-1 {
	specspine.x[k] = randspine.discunif(0,5)
        //print specspine.x[k]
    }

    ndist = $1
    ngemm = $2
 
    Erest		= -65		// mV
    Atotal		= 8353		// um2

    RM			= 4000//100000  //4000	// ohm.cm2 //Davison versus anton Granger

    Ri			= 70 		//ohm.cm
    Len			= 50
    p			= 0.0136
    q			= 0.308

    NMDAalpha		= 0.0163	// ms-1
    NMDAbeta		= 0.00292	// ms-1
    AMPAtau		= 3		// ms
    Erev		= 0		// mV
 	//   r = 0.4

   soma {
      	L			= Len
      	diam		= p*Atotal/(PI*Len)
      	Ra		= 80 // ohm.cm Anton Granger 1993 
      	insert pas
      	e_pas		= Erest		// reversal potential mV
      	g_pas		= 1/RM 		// membrane conductance S/cm2
      	insert nagrantab
      	insert kslowtab
      	insert kM
      	insert kA
	//inserer Canaux T, canaux N and P/Q. Egger, Pinato's, Isaacson98
      	gnabar_nagrantab 	= 0.1611	// S/cm2
      	gkbar_kslowtab 	= 0.1313
      	gkbar_kM 		= 0.1334
      	gkbar_kA 		= 0.0088
    }

   s2p {
       diam 		= 1
       Ra 		= 80 // ohm.cm Anton Granger 1993 
       L 		= 1
   }

   proxi {
      L 		= 150
      diam 		= q*Atotal/(PI*Len)
      Ra 		= PI/(4*Len*Atotal)
      insert pas
      e_pas 		= Erest
      g_pas 		= 1/RM
      insert nagrantab
      insert kslowtab
      gnabar_nagrantab 	= 0.1355
      gkbar_kslowtab 	= 0.0243
    }

   for i = 0, ndist-1 {
       p2d[i] { 
           diam 	= 1
           Ra 		= 8000000//80  // ohm.cm Anton Granger 1993 
           L 		= 1
    }
   }

   for i = 0, ndist-1 {
	dist[i] {
      		L 		= 50  // um Anton Granger 1993
      		diam 		= 1   // um Anton Granger 1993
      		Ra 		= 80  // ohm.um Anton Granger 1993 
      		insert pas
      		e_pas 		= Erest
      		g_pas 		= 1/RM
//      		insert nagrantab
//      		insert kslowtab
//      		gnabar_nagrantab 	= 0.1355
//      		gkbar_kslowtab 	= 0.0243
     	}
    }

// spine neck
    for i = 0, ngemm-1 {
	d2g[i] {
	   diam 	= 0.2     // um Anton Granger 1993
           Ra 		= 150*10   // ohm.um Anton Granger 1993 
           L 		= 3       // um Anton Grnager 1993 
        }
    }

// spine
    for k = 0, ngemm-1 {
	gemm[k] {
		
	    r           = 0.4
	    L 		= 1.747 * r 		//conversion sphere/cylindre
            diam	= 2*r
	    Ra 		= 80 //  ohm.um Anton Grnager 1993 

            insert pas
            e_pas 		= Erest		// 
            g_pas 		= 1/RM 		// 1/specspine.x[k]   	// a rectifier

            insert nafast
            insert kfasttab
            insert kslowtab
     	    //insert lcafixed
    	    //insert cad
	    //depth_cad 	= 8

	    //insert itGHK
	    //insert N_Ca	 	// lire Kerry/Delaney CAN
	    //insert L_HVA_Ca	// Halabisky

	    // insert kA 	//relire Christie et Westbrook qui en parlent
	    // inserer canaux P/Q, cad. Isaacson98
	    // IA Schoppa W 1999.

            gnabar_nafast 	= 0     //0.1532
            gkbar_kfasttab 	= 0//0.1   //*specspine.x[k]//0.1956
            gkbar_kslowtab 	= 0//0.243

            //gcabar_lcafixed 	= 0     // 0.01         //0.0040
	    //pcabar_itGHK        = 0     // 0.2e-3 	//permeability cm/s
	    //gcabar_N_Ca		= 0     // 0.02  	//This is the original value(mho/cm2)   
	    //gcabar_L_HVA_Ca	= 0     // 0.0003 	//original = 7e-05(mho/cm2) 

            AMPArS[k] = new ExpSyn(0.5)    	//not taken into account but can be an option later
            AMPArS[k].tau 	= AMPAtau  	//idem
            AMPArS[k].e 	= Erev		//idem
            NMDArS[k] = new NMDA(0.5)		//idem
            NMDArS[k].Alpha	= NMDAalpha	//idem
            NMDArS[k].Beta	= NMDAbeta	//idem
            NMDArS[k].e		= Erev		//idem
            spikecountS[k] = new APCount(0.5)	
            spikecountS[k].thresh = -35		
            spikecountS[k].record(spiketimesS[k])
        }
    }
 
   // set reversal potentials, etc.
   forall if (ismembrane("na_ion")) {
             ena = 45	// mV
          }

   forall if (ismembrane("k_ion")) {
          ek  = -70	//  mV
   }

    forall if (ismembrane("ca_ion")) {
      eca = 70		// mV 
      cai = 0.00001	// mM 
      cao = 2		// mM
      ion_style("ca_ion",3,2,0,0,1)
    }

   // Connexion de toute la cellule

   connect s2p(0), soma(1)
   connect proxi(0), s2p(1)

   for i=0, ndist-1  connect p2d[i](0), proxi(1)
   for i=0, ndist-1  connect dist[i](0), p2d[i](1) 

 //  for i=0, ngemm-1 connect d2g[i](0), dist[int(i*ndist/ngemm)](1) //On peut choisir aussi de repartir les epines selon Woolf,G,S 1991
   for i=0, ngemm-1 connect d2g[i](0), dist[0](1) 
   for i=0, ngemm-1 connect gemm[i](0), d2g[i](1) 

}

endtemplate Gran