ModelDB is moving. Check out our new site at The corresponding page is

3D olfactory bulb: operators (Migliore et al, 2015)

 Download zip file 
Help downloading and running models
"... Using a 3D model of mitral and granule cell interactions supported by experimental findings, combined with a matrix-based representation of glomerular operations, we identify the mechanisms for forming one or more glomerular units in response to a given odor, how and to what extent the glomerular units interfere or interact with each other during learning, their computational role within the olfactory bulb microcircuit, and how their actions can be formalized into a theoretical framework in which the olfactory bulb can be considered to contain "odor operators" unique to each individual. ..."
1 . Migliore M, Cavarretta F, Marasco A, Tulumello E, Hines ML, Shepherd GM (2015) Synaptic clusters function as odor operators in the olfactory bulb. Proc Natl Acad Sci U S A 112:8499-504 [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 GLU cell; Olfactory bulb main interneuron granule MC GABA cell;
Channel(s): I Na,t; I A; I K;
Gap Junctions:
Receptor(s): AMPA; NMDA; Gaba;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON; Python;
Model Concept(s): Activity Patterns; Dendritic Action Potentials; Active Dendrites; Synaptic Plasticity; Action Potentials; Synaptic Integration; Unsupervised Learning; Sensory processing; Olfaction;
Implementer(s): Migliore, Michele [Michele.Migliore at]; Cavarretta, Francesco [francescocavarretta at];
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron granule MC GABA cell; AMPA; NMDA; Gaba; I Na,t; I A; I K; Gaba; Glutamate;
ampanmda.mod *
distrt.mod *
fi.mod *
fi_stdp.mod *
kamt.mod *
kdrmt.mod *
naxn.mod *
ThreshDetect.mod *
.hg_archival.txt * * * * * * *
fixnseg.hoc * * *
granule.hoc *
input-odors.txt * * *
mitral.hoc * * * * *
realgloms.txt * *
spike2file.hoc * * * *
from util import *

import fileinput
from common import getmodel

def weight_load(filename):
  model = getmodel()
  for l in fileinput.input(filename):
    tk = l.split()
    gid = int(tk[0])
    s = int(tk[1])
    # inhib check    
    if gid % 2 != 0:
      gid += 1
      inhib = True
      inhib = False

    # has key
    if model.mgrss.has_key(gid):
      rsyn = model.mgrss[gid]
      if inhib and rsyn.gd2fi:
        rsyn.gd2fi.weight[1] = s
      elif not inhib and rsyn.md2ampanmda:
        rsyn.md2ampanmda.weight[1] = s

#mg_dict_filename = 'mg_dict.txt'
def weight_file(prefix):
  wtime = h.startsw()
  mingroupsize = max(nhost/64, 1)
  ng = nhost/mingroupsize
  for r in group_serialize(ng):
    name = prefix + '.' + str(r[0])
    if r[1]:
      f = open(name, 'a')
      #fdic = open(mg_dict_filename + '.' + str(r[0]), 'a')
      f = open(name, 'w')
      #fdic = open(mg_dict_filename + '.' + str(r[0]), 'w')
    vs = getmodel().mgrss.values
    for rs in vs():
      s = rs.wstr()
      #sdic = rs.mg_dic_str()
  if rank == 0 : print "weight_files %s.[0:%d] write time %g s" % (prefix, ng, h.startsw()-wtime)

Loading data, please wait...