Parallel odor processing by mitral and middle tufted cells in the OB (Cavarretta et al 2016, 2018)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:240116
"[...] experimental findings suggest that MC and mTC may encode parallel and complementary odor representations. We have analyzed the functional roles of these pathways by using a morphologically and physiologically realistic three-dimensional model to explore the MC and mTC microcircuits in the glomerular layer and deeper plexiform layers. [...]"
Reference:
1 . Cavarretta F, Burton SD, Igarashi KM, Shepherd GM, Hines ML, Migliore M (2018) Parallel odor processing by mitral and middle tufted cells in the olfactory bulb. Sci Rep 8:7625 [PubMed]
2 . Cavarretta F, Marasco A, Hines ML, Shepherd GM, Migliore M (2016) Glomerular and Mitral-Granule Cell Microcircuits Coordinate Temporal and Spatial Information Processing in the Olfactory Bulb. Front Comput Neurosci 10:67 [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: Olfactory bulb;
Cell Type(s): Olfactory bulb main tufted middle GLU cell; Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main interneuron granule TC GABA cell; Olfactory bulb (accessory) mitral cell; Olfactory bulb main tufted cell external; Olfactory bulb short axon cell;
Channel(s): I A; I Na,t; I_Ks; I K;
Gap Junctions: Gap junctions;
Receptor(s): AMPA; GabaA; NMDA;
Gene(s):
Transmitter(s): Glutamate; Gaba;
Simulation Environment: NEURON;
Model Concept(s): Action Potentials; Action Potential Initiation; Active Dendrites; Long-term Synaptic Plasticity; Synaptic Integration; Synchronization; Pattern Recognition; Spatio-temporal Activity Patterns; Temporal Pattern Generation; Sensory coding; Sensory processing; Olfaction;
Implementer(s): Cavarretta, Francesco [francescocavarretta at hotmail.it]; Hines, Michael [Michael.Hines at Yale.edu];
Search NeuronDB for information about:  Olfactory bulb main interneuron granule MC GABA cell; Olfactory bulb main tufted middle GLU cell; Olfactory bulb main interneuron granule TC GABA cell; GabaA; AMPA; NMDA; I Na,t; I A; I K; I_Ks; Gaba; Glutamate;
/
modeldb-bulb3d
sim
ampanmda.mod
distrt.mod *
fi.mod
fi_stdp.mod *
gap.mod
Gfluct.mod
kamt.mod
kdrmt.mod
ks.mod
naxn.mod
orn.mod
ThreshDetect.mod *
all.py
all2all.py *
assembly.py
balance.py *
bindict.py
binsave.py
binspikes.py
blanes.hoc
blanes.py
blanes_exc_conn.txt
blanes6.dic
bulb3dtest.py
cancel.py
catfiles.sh
cellreader.py
cellwriter.py
cfg27.py
common.py
complexity.py *
convertdic.py
destroy_model.py
determine_connections.py
distribute.py *
dsac.py
Eta.txt *
fillgloms.py
fixnseg.hoc *
g_conn_stats.py
gapjunc.py
gen_weights.py
geodist.py
geodist.txt
getmitral.py
gidfunc.py
GJ.py
gj_nrn.hoc
Glom.py *
granule.hoc
granules.py
graphmeat.py
grow.py
growdef.py *
growout.py
job
Kod.txt *
lateral_connections.py
loadbalutil.py *
lpt.py *
mcgrow.py
MCrealSoma.py *
mgrs.py
misc.py
mitral.hoc
mkassembly.py
mkmitral.py
modeldata.py
mtgrow.py
MTrealSoma.py
MTrealSoma2.py
mtufted.hoc
multisplit_distrib.py
net_mitral_centric.py
Nod.txt *
odors.py
odorstim.py
odstim2.txt *
pad.txt *
params.py
parrun.py
pathdist.py
realgloms.txt *
runsim.py
spike2file.hoc *
spk2weight.py
split.py
subsetsim.py
test_complexity.py
txt2bin.py
util.py *
vrecord.py
weightsave.py
                            
begintemplate GranuleSpine
        public init, sup_deep_flag
        public head, neck
        create head, neck
        proc sup_deep_flag()    {
          if($1) {
            forall {gbar_kdrmt=0.004
                   gbar_nax=0.04}
          } else {
            forall {gbar_kdrmt=0.005
                    gbar_nax=0.027
                   }
          } 
	}


        proc init() {
                neck { L = 2  diam = .1 }
                head { L = 1  diam = 1 }
                connect head(0), neck(1)
                memb()
        }
        

        proc memb() { local taum
                taum = 27300
                forall {
                        insert pas

                        insert nax
                        insert kdrmt
                        insert kamt

                        Ra = 2.5
                        cm = 1.8
                        g_pas = 1/(taum/cm)
                        e_pas = -55
                        ek = -80
                        ena = 50

                        gbar_nax =0.04
                        sh_nax=5
                        gbar_kdrmt=0.004
                        gbar_kamt =0.008
                }
        }
endtemplate GranuleSpine

begintemplate Granule
        public segments, memb, init, setRN, sup_deep_flag
        public soma, priden, priden2, ns
        create soma, priden, priden2[1]
        objref rng[7], ns[7]

       	proc sup_deep_flag()	{
       	  if($1) {
       	    forall {gbar_kdrmt=0.004 
                   gbar_nax =0.04}
       	  } else {
       	    forall {gbar_kdrmt=0.005
                    gbar_nax=0.027
                   }
       	  } 
       	}


        proc default() {
                soma       { L = 8    diam=8   }
              priden     { L = 400  diam=1.2 }
                priden2[0] { L = 400  diam=0.6 }
                connect priden(0), soma(1)
                connect priden2[0](0), priden(1)
        }

        proc segments() {
                forsec "priden" nseg = 1 //int(L/20)+1
                forsec "soma" nseg = 1
        }


        proc memb() { local taum
                taum = 27300
                forall {
                        insert pas

                        insert nax
                        insert kdrmt
                        insert kamt

                        Ra = 2.5
                        cm = 1.8
                        g_pas = 1/(taum/cm)
                        e_pas = -55 
                        ek = -80
                        ena = 50

                        gbar_nax =0.04
                        sh_nax=5
                        gbar_kdrmt=0.004
                        gbar_kamt =0.008
                }
        }

        func setRN() { local rn, y0, a, b
           y0 = 38.8925
           a  = 579.4570

           rn = $1

                       
           if(rn < (603-3*37) || rn > (603+3*37)) return 0
           perc=1/((rn-y0)/a)
           priden.diam = perc * 1.2
           priden2[0].diam = perc * 0.6
           return 1
        }
        proc init() { local i
                default()
                segments()
                memb()

        }



endtemplate Granule