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

 Download zip file 
Help downloading and running models
"[...] 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. [...]"
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]
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;
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]; Hines, Michael [Michael.Hines at];
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;
Eta.txt *
granules.txt *
Kod.txt *
Nod.txt *
odstim2.txt *
pad.txt *
realgloms.txt *
from struct import pack
from os import system

class CellWriter:
  def __init__(self, filename):
    ''' sequential writer for cells ''' = filename+'.car'
    self.__fname = ['%s.ncell'%filename,'%s.header'%filename,''%filename]
    self.__fo_ncell = open(self.__fname[0], 'wb')
    self.__fo_header = open(self.__fname[1], 'wb')
    self.__fo_data = open(self.__fname[2], 'wb')
    self.__ncell = 0

  def close(self):
    self.__fo_ncell.write(pack('>I', self.__ncell))

    # merging
    with open(, 'wb') as fo:
      for fname in self.__fname:
        with open(fname, 'rb') as fi:
          b =
          while b:
            b =
    system('rm %s %s %s' % \

  def write(self, cell):
    ''' write a cell '''
    def writesections(sections):
      self.__fo_data.write(pack('>H', len(sections))) #n sections
      for s in sections:
        self.__fo_data.write(pack('>I', len(s.points))) #n points
        for p in s.points:
          self.__fo_data.write(pack('>ffff', *p)) #point

    def writeconnectivity(cell):
      # number of connections
      nconn = 0
      for s in cell.soma+cell.apic+cell.tuft+cell.dend:
        if s.parent:
          nconn += 1
      self.__fo_data.write(pack('>I', nconn))
      def write_conn(secid1, sections):
        for isec1, s in enumerate(sections):
          if s.parent:
              isec2 = cell.soma.index(s.parent); secid2 = 0
            except ValueError: pass
              isec2 = cell.apic.index(s.parent); secid2 = 1
            except ValueError: pass
              isec2 = cell.tuft.index(s.parent); secid2 = 2
            except ValueError: pass   
              isec2 = cell.dend.index(s.parent); secid2 = 3
            except ValueError: pass          
            self.__fo_data.write(pack('>BHBH', secid1, isec1, secid2, isec2))
      write_conn(0, cell.soma)
      write_conn(1, cell.apic)
      write_conn(2, cell.tuft)
      write_conn(3, cell.dend)

    # write everything
    self.__fo_header.write(pack('>I', self.__fo_data.tell()))
    self.__ncell += 1

if __name__ == '__main__':
  from grow import genMitral,genMTufted
  from params import Nmitral as nmc, Nmtufted as nmtc
  ncell = nmc
  cw = CellWriter('../bulbvis/mccells')
  for gid in range(635):
    print 'cell', gid, 'generated and stored'
  for gid in range(635,635+10*127):
    print 'cell', gid, 'generated and stored'

Loading data, please wait...