2D model of olfactory bulb gamma oscillations (Li and Cleland 2017)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:232097
This is a biophysical model of the olfactory bulb (OB) that contains three types of neurons: mitral cells, granule cells and periglomerular cells. The model is used to study the cellular and synaptic mechanisms of OB gamma oscillations. We concluded that OB gamma oscillations can be best modeled by the coupled oscillator architecture termed pyramidal resonance inhibition network gamma (PRING).
Reference:
1 . Li G, Cleland TA (2017) A coupled-oscillator model of olfactory bulb gamma oscillations PLOS Computational Biology 13(11):e1005760 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Olfactory bulb main mitral cell; Olfactory bulb main interneuron granule MC cell; Olfactory bulb main interneuron periglomerular cell;
Channel(s):
Gap Junctions:
Receptor(s): AMPA; NMDA; GabaA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s):
Implementer(s): Li, Guoshi [guoshi_li at med.unc.edu];
Search NeuronDB for information about:  Olfactory bulb main mitral cell; Olfactory bulb main interneuron periglomerular cell; Olfactory bulb main interneuron granule MC cell; GabaA; AMPA; NMDA;
/
OBGAMMA
celldata
connection
data0
input
README
cadecay.mod *
cadecay2.mod *
Caint.mod *
Can.mod *
CaPN.mod *
CaT.mod *
GradeAMPA.mod *
GradeGABA.mod *
GradNMDA.mod *
hpg.mod *
kAmt.mod *
KCa.mod *
KDRmt.mod *
kfasttab.mod *
kM.mod *
KS.mod
kslowtab.mod *
LCa.mod *
nafast.mod *
NaP.mod *
Naxn.mod *
Nicotin.mod *
nmdanet.mod *
OdorInput.mod *
SineInput.mod
Background.hoc
Cal_Synch.hoc
Connect.hoc
Figure.hoc
GC_def.hoc
GC_save.hoc *
GC_Stim.hoc
Input.hoc
mathslib.hoc
MC_def.hoc
MC_save.hoc
MC_Stim.hoc
mosinit.hoc
OBNet.hoc
Parameter.hoc
PG_def.hoc
PG_save.hoc *
PG_Stim.hoc
SaveData.hoc
tabchannels.dat *
tabchannels.hoc
                            
begintemplate PGcell
public soma, dend, gemmshaft, gemmbody
public AMPAr, spiketimes, dendspike, spikecount

create soma, dend, gemmshaft, gemmbody		
objref AMPAr, spiketimes, dendspike, spikecount, dendcount

proc parameter() { 

    AMPAtau		= 5.5		// ms
    Erev		= 0		    // mV
	shell_depth = 0.2       // 
		
		RM	= 20e3  	// ohm.cm2; 20!!!   
        EL 	= -65		// -65 mV !!!
	    
		ENA =  45       // 50
        EK  = -80	    // -75/-80 !!!
	    ECA = 100
		
	    gNa_Soma = 50e-3  // 40  !!!
	    gNa_Dend = 20e-3  // 20
	       Sh_Na =   5    // 20  !!!    
		   
	    gKdr_Soma = 20e-3  // 20
	    gKdr_Dend = 5e-3   //  5 !!!	
	
	    gA_Soma = 10e-3    //  10 !!!
	    gA_Dend = 30e-3    //  30
	       Sha_A =     0   //  9.9 / 0  !!!
	       Shi_A =   -20   //  5.7 / 0  !!!
		   k_tauH  = 2.5   // 1/2.5
           sh_tauH =   0   // 0/-20

	    gH_Dend = 0.2e-3   // 0.2 !!!
		    
	    gM_Soma = 1.0e-3   // 1 !!!
	    gM_Dend = 0.0e-3   // 0		   
	   
	    gKCa_Soma  = 0.0e-3   // 
	    gKCa_Dend  = 2.0e-3   // 2.0!!! Change this will change the number of bursts!!!
	   
	    gCapn_Soma = 0.0e-3		   
	    gCapn_Dend = 1.0e-3	 //  1.0 !!!
	    
		gCaT_Soma = 0.0e-3
	    gCaT_Dend = 3.0e-3   //   5 |5 |5 |    5 / 3 /5
	       Sha_T  =  -15     //  -13|-8|-13|  -10/-13/0
		   Shi_T  =    0     //    3|0 |0     8/ 5 /5  % Posive shift makes burst firing !!!
	       K_tauH =  1.0
		   
		gcan_Dend = 0.0e-3   // 1.5 !!!	
	   
}


proc celldef() {
topol()
subsets()
segments()
geometry()
biophysics($1)
}

proc topol() {											
	connect dend(0), soma(1)
	connect gemmshaft(0), dend(1)
	connect gemmbody(0), gemmshaft(1)
}

// create subsets	
objref pg_all, pgdendgemm, spine
proc subsets() {
	// gemmules (body & shaft)
    spine = new SectionList()	 
	forsec "gemm" spine.append()
	
	// dendrites & gemmules (body & shaft)
	pgdendgemm = new SectionList()
	forsec "dend" pgdendgemm.append()
	forsec "gemm" pgdendgemm.append()	

	// all pg sections
	pg_all = new SectionList()
	forsec pgdendgemm pg_all.append()
	soma pg_all.append()
} 
proc segments() {
	soma.nseg = 1
	dend.nseg = 1
	gemmshaft.nseg = 1
	gemmbody.nseg = 1
}
proc geometry() {				
	soma { L=8  diam=8 }			
	dend { L=100 diam=1 }     // L = 50/100 !!!
	gemmshaft { L=1 diam=1 }
	gemmbody  { L=1 diam=1 }
	define_shape()					// Fill in empty pt3d info with est's using 'L' and 'diam' info
}

proc biophysics() {
    
    parameter()
	spiketimes = new Vector()
	dendspike  = new Vector()
	
	spike_threshold = -10  // !!!
	
	forsec pg_all { 				// insert passive current everywhere
		Ra = 80         // OLD: 173
		cm = 1.2        // 2 !!!
		
		insert pas
		  g_pas = 1/RM 	// OLD: 2.3e-4 (4.3 K ohm*cm^2)
		  e_pas = EL		
	}
	
	soma {	
	
	insert nax
        gbar_nax  = gNa_Soma
        sh_nax  = Sh_Na	
	insert kdrmt
	    gbar_kdrmt = gKdr_Soma  
        q10_kdrmt  = 3		
	insert kamt
        gbar_kamt = gA_Soma    // 
		sha_kamt  = Sha_A 
		shi_kamt  = Shi_A
		k_tauH_kamt = k_tauH
		sh_tauH_kamt = sh_tauH
    insert kM
        gkbar_kM  = gM_Soma    // 	
   	
	insert Icapn
        gbar_Icapn = gCapn_Soma		
	insert Ikca
        gkbar_Ikca = gKCa_Soma
		
	insert Icat
	    gbar_Icat = gCaT_Soma 
		sha_Icat  = Sha_T
		shi_Icat  = Shi_T
	insert cad2     
        depth_cad2  = shell_depth
			
	ena = ENA
	ek  = EK
    eca = ECA
	
	spikecount  = new APCount(0.5)
    spikecount.thresh = spike_threshold
    spikecount.record(spiketimes)
	}
	
	forsec pgdendgemm {		
	insert nax
        gbar_nax = gNa_Dend	
		sh_nax  = Sh_Na
    insert kdrmt
	    gbar_kdrmt = gKdr_Dend   
        q10_kdrmt  = 3		
	insert kamt
        gbar_kamt  = gA_Dend    // 
		sha_kamt = Sha_A 
		shi_kamt = Shi_A
		k_tauH_kamt = k_tauH
		sh_tauH_kamt = sh_tauH		
	insert kM
        gkbar_kM  = gM_Dend  // 
	
	insert hpg 			// PG cell h current from Cadetti and Belluzzi
	  eh_hpg = 0 
	  ghbar_hpg = gH_Dend
	  
	insert Ican
	    gbar_Ican = gcan_Dend 
	insert Ikca
        gkbar_Ikca = gKCa_Dend 
	insert Icapn
        gbar_Icapn = gCapn_Dend	
 	    
	insert Icat
	    gbar_Icat = gCaT_Dend 
		sha_Icat  = Sha_T
		shi_Icat  = Shi_T
		k_tauH_Icat = K_tauH
	insert cad2    
        depth_cad2 = shell_depth		
	
	ena = ENA
	ek  = EK
	eca = ECA
	}
	
	forsec spine {	
	
	insert Inic
	enic_Inic = 3.2
	gbar_Inic = $1   // S/cm2   
	
	}
	
		
   gemmbody{
   
	AMPAr = new ExpSyn(0.5)
    AMPAr.tau = AMPAtau
    AMPAr.e 	= Erev
	  
	dendcount = new APCount(0.5)
    dendcount.thresh = spike_threshold
    dendcount.record(dendspike)
    }
	

}


proc init() {
  celldef($1)
}

endtemplate PGcell

Loading data, please wait...