3D model of the olfactory bulb (Migliore et al. 2014)

 Download zip file 
Help downloading and running models
Accession:151681
This entry contains a link to a full HD version of movie 1 and the NEURON code of the paper: "Distributed organization of a brain microcircuit analysed by three-dimensional modeling: the olfactory bulb" by M Migliore, F Cavarretta, ML Hines, and GM Shepherd.
Reference:
1 . Migliore M, Cavarretta F, Hines ML, Shepherd GM (2014) Distributed organization of a brain microcircuit analyzed by three-dimensional modeling: the olfactory bulb. Front Comput Neurosci 8:50 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Channel/Receptor; Dendrite;
Brain Region(s)/Organism: Olfactory bulb;
Cell Type(s): Olfactory bulb main mitral cell; Olfactory bulb main interneuron granule MC cell;
Channel(s): I Na,t; I A; I K;
Gap Junctions:
Receptor(s): NMDA; Glutamate; Gaba;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Pattern Recognition; Activity Patterns; Bursting; Temporal Pattern Generation; Oscillations; Synchronization; Active Dendrites; Detailed Neuronal Models; Synaptic Plasticity; Action Potentials; Synaptic Integration; Unsupervised Learning; Olfaction;
Implementer(s): Hines, Michael [Michael.Hines at Yale.edu]; Migliore, Michele [Michele.Migliore at Yale.edu]; Cavarretta, Francesco [francescocavarretta at hotmail.it];
Search NeuronDB for information about:  Olfactory bulb main mitral cell; Olfactory bulb main interneuron granule MC cell; NMDA; Glutamate; Gaba; I Na,t; I A; I K;
/
bulb3d
readme.html
ampanmda.mod *
distrt.mod *
fi.mod *
kamt.mod *
kdrmt.mod *
naxn.mod *
ThreshDetect.mod *
all2all.py *
balance.py *
bindict.py
BulbSurf.py
colors.py *
common.py
complexity.py *
custom_params.py *
customsim.py
destroy_model.py *
determine_connections.py
distribute.py *
fig7.py
fixnseg.hoc *
getmitral.py
gidfunc.py *
glom.py
granule.hoc *
granules.py
input-odors.txt *
loadbalutil.py *
lpt.py *
mayasyn.py
mgrs.py
misc.py
mitral.hoc *
mitral_dend_density.py
mkmitral.py
modeldata.py *
multisplit_distrib.py *
net_mitral_centric.py
odordisp.py *
odors.py *
odorstim.py
params.py
parrun.py
realgloms.txt *
runsim.py
split.py *
util.py *
weightsave.py *
                            
# -*- coding: cp1252 -*-
import custom_params
if len(custom_params.filename) == 0: custom_params.filename = 'fig7'
from params import Nmitral



class Section:
  def __init__(self):
    self.index = -1
    self.points = []
    self.sons = []
    self.parent = None

class Neuron:
  def __init__(self): 
    self.dend = []
    self.apic = None
    self.tuft = []
    self.soma = None


def getmitral(mgid):
  from struct import unpack

  def sec_read():
    sec = Section()
    parent_index, section_index, n = unpack('>hhH', fi.read(6))
    for i in range(n):
      sec.points.append(list(unpack('>ffff', fi.read(16))))
    return parent_index, section_index, sec



  fi = open('mitral.dump', 'rb')
  offset = [ None ] * Nmitral
  s = 2*Nmitral
  for i in range(Nmitral):
    l = unpack('>H', fi.read(2))[0]
    offset[i] = s
    s += l

  fi.seek(offset[mgid])

  nrn = Neuron()
  nrn.soma = sec_read()[2]
  nrn.apic = sec_read()[2]
  nrn.apic.parent = nrn.soma
  nrn.soma.sons.append(nrn.apic)

  parent_index, section_index, sec = sec_read()
  while section_index != 0:

    if section_index < 0:
      nrn.tuft.append(sec)
      sec.parent = nrn.apic
      nrn.apic.sons.append(sec)
    else:
      nrn.dend.append(sec)
      sec.index = section_index - 1
      if parent_index == 0:
        sec.parent = nrn.soma
        nrn.soma.sons.append(sec)
      else:
        secpar = nrn.dend[parent_index - 1]
        secpar.sons.append(sec)
        sec.parent = secpar

    parent_index, section_index, sec = sec_read()       

  fi.close()
  return nrn