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 Comput Biol 13:e1005760 [PubMed]
Citations  Citation Browser
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 GLU cell; Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron periglomerular GABA cell;
Channel(s):
Gap Junctions:
Receptor(s): AMPA; NMDA; GabaA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Olfaction;
Implementer(s): Li, Guoshi [guoshi_li at med.unc.edu];
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell; GabaA; AMPA; NMDA;
/
OBGAMMA
data0
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
                            
// Background inputs to the 2D OB network

Tb_Start = 0     // Start time of background inputs

Tb_ISI  = 10     // spike interval in background input
N_SPIKE = 1000   // number of spike in background input

Thresh = 0
Wb_MC  = 1.0e-3  // Synaptic weight of background inputs to MCs
Wb_PG  = 0.5e-3  // Synaptic weight of background inputs to PGs
Wb_GC  = 0.3e-3  // Synaptic weight of background inputs to GCs 

objref MCbinput[nmitx][nmity], PGbinput[npgx][npgy], GCbinput[ngranx][ngrany]  
objref MCb[nmitx][nmity], PGb[npgx][npgy], GCb[ngranx][ngrany]
objref RSP[nmitx][nmity]

//==============================================================================  
//                    Spike-trigered random background inputs
//==============================================================================  
   
  // For MCs
   for i = 0, nmitx-1 {
     for j = 0, nmity-1 {
        RSP[i][j] =  new Vector()
	 
        MCb[i][j] = new NetStim(.5)
        MCb[i][j].number   = N_SPIKE
        MCb[i][j].start    = Tb_Start
        MCb[i][j].interval = Tb_ISI
        MCb[i][j].noise    = 1
        MCb[i][j].seed(NSSEED)
	
        MCbinput[i][j] = new NetCon(MCb[i][j], mit[i][j].AMPA)
        MCbinput[i][j].threshold = Thresh
        MCbinput[i][j].delay     = 0
        MCbinput[i][j].weight    = Wb_MC  	
	   
        MCbinput[i][j].record(RSP[i][j])
     }
    }

  // For PGs
   for i = 0, npgx-1 {
     for j = 0, npgy-1 {
        PGb[i][j] = new NetStim(.5)
        PGb[i][j].number   = N_SPIKE
        PGb[i][j].start    = Tb_Start
        PGb[i][j].interval = Tb_ISI
        PGb[i][j].noise    = 1
        PGb[i][j].seed(NSSEED)
	
        PGbinput[i][j] = new NetCon(PGb[i][j], pg[i][j].AMPAr)
        PGbinput[i][j].threshold = Thresh
        PGbinput[i][j].delay     = 0
        PGbinput[i][j].weight    = Wb_PG  	
     }
    }	
	
	
  // For GCs
   for i = 0, ngranx-1 {
     for j = 0, ngrany-1 {
        GCb[i][j] = new NetStim(.5)
        GCb[i][j].number   = N_SPIKE
        GCb[i][j].start    = Tb_Start
        GCb[i][j].interval = Tb_ISI
        GCb[i][j].noise    = 1
        GCb[i][j].seed(NSSEED)
	
        GCbinput[i][j] = new NetCon(GCb[i][j], gran[i][j].AMPAr)
        GCbinput[i][j].threshold = Thresh
        GCbinput[i][j].delay     = 0
        GCbinput[i][j].weight    = Wb_GC    	
     }
    }