A two-layer biophysical olfactory bulb model of cholinergic neuromodulation (Li and Cleland 2013)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:149739
This is a two-layer biophysical olfactory bulb (OB) network model to study cholinergic neuromodulation. Simulations show that nicotinic receptor activation sharpens mitral cell receptive field, while muscarinic receptor activation enhances network synchrony and gamma oscillations. This general model suggests that the roles of nicotinic and muscarinic receptors in OB are both distinct and complementary to one another, together regulating the effects of ascending cholinergic inputs on olfactory bulb transformations.
Reference:
1 . Li G, Cleland TA (2013) A two-layer biophysical model of cholinergic neuromodulation in olfactory bulb. J Neurosci 33:3037-58 [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 periglomerular GABA cell; Olfactory bulb main interneuron granule MC GABA cell;
Channel(s): I Na,p; I L high threshold; I T low threshold; I A; I M; I h; I K,Ca; I CAN; I Sodium; I Calcium; I Potassium; I_Ks; I Cl, leak; I Ca,p;
Gap Junctions:
Receptor(s): Nicotinic; GabaA; Muscarinic; AMPA; NMDA;
Gene(s):
Transmitter(s): Acetylcholine;
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Sensory processing; Sensory coding; Neuromodulation; 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; Nicotinic; GabaA; Muscarinic; AMPA; NMDA; I Na,p; I L high threshold; I T low threshold; I A; I M; I h; I K,Ca; I CAN; I Sodium; I Calcium; I Potassium; I_Ks; I Cl, leak; I Ca,p; Acetylcholine;
/
ACh_ModelDB
data
Input
Readme.txt
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 *
Background.hoc
Connect.hoc
GC_def.hoc
GC_save.hoc *
GC_Stim.hoc
Input.hoc
MC_def.hoc
MC_save.hoc
MC_Stim.hoc
mod_func.c
mosinit.hoc
nrniv.exe.stackdump
OB.hoc
Parameter.hoc
PG_def.hoc
PG_save.hoc *
PG_Stim.hoc
SaveData.hoc
tabchannels.dat *
tabchannels.hoc
                            
//===================================================================================
//              Provide afferent odor inputs to the network
//===================================================================================

objref MCinput[nMit], PGinput[nPG] 
double pre_odor[nMit], odor[nMit] 
double IM[nMit] 

//Pre-odor and steady-state odor values are pre-generated and read in from data files under the "Input" folder

outfile.ropen("Input/OdorA0.dat")  // Read pre-odor values from data file OdorA0.dat
for i = 0, nMit-1 { 
    pre_odor[i] = outfile.scanvar()
}
outfile.close()

outfile.ropen("Input/OdorA1.dat")  // Read steady-state odor values from data file OdorA1.dat
for i = 0, nMit-1 { 
    odor[i] = outfile.scanvar()
}
outfile.close()

outfile.wopen("data/OdorValue")
//outfile.printf("Odor input is delivered to the following MC:\n")

for i = 0, nMit-1 {  
   
    mit[i].tuft MCinput[i] = new OdorInput(0.0)
	MCinput[i].torn = Todor
	MCinput[i].r    = 100
    MCinput[i].del  = 0
    MCinput[i].dur  = tstop 
 	
	u0 = pre_odor[i]
	u1 = odor[i]
	
	MCinput[i].f1 = u1	
	MCinput[i].f0 = u0
	
   // Store the pre-odor and steady-state odor values in a file "OdorValue"	
	outfile.printf("Glom%d ",i)
    outfile.printf("%5.4f ", u0)
	outfile.printf(" %5.4f ",u1)
    outfile.printf("\n")
	
    // FOR PG 
	pg[i].gemmbody  PGinput[i] = new OdorInput(0.0)
	PGinput[i].torn = Todor
	PGinput[i].r    = 100
    PGinput[i].del  = 0
    PGinput[i].dur  = tstop 
  
    PGinput[i].f0  = Km2p*u0 	
	PGinput[i].f1  = Km2p*u1
	
}

outfile.close()