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 GLU cell; Olfactory bulb main interneuron granule MC GABA 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 GLU cell; Olfactory bulb main interneuron granule MC GABA 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 *
                            
from common import *
import sys

def serialize():
  ''' Execute body of for loop for each rank in order. Hopefully
      printing will also be segregated and in order
  '''
  for r in range(nhost):
    pc.barrier()
    if r == rank:
      yield r
      sys.stdout.flush()
  pc.barrier()

def group_serialize(ngroup=nhost):
  ''' Execute body of for loop for ngroups of contiguous ranks. 
      The ranks in each group is sequentially executed. Within each barrier,
      one rank in every group is executed in parallel.
  '''
  for r in range(ngroup):
    pc.barrier()
    if r == rank%ngroup:
      yield (rank/ngroup, r)
      sys.stdout.flush()
  pc.barrier()

def finish():
  ''' proper way to quit '''
  if nhost > 0:
    pc.runworker()
    pc.done()
    print 'total elapsed time ', h.startsw()-startsw
    h.quit()
    
elapsedtime=h.startsw()
def elapsed(message):
  ''' Rank 0 prints message and walltime elapsed since
      previous call to this function.
  '''
  global elapsedtime
  if rank == 0:
    print "%s elapsedtime %g"% (message, h.startsw() - elapsedtime)
  elapsedtime = h.startsw()


def progress(pinvl, swlast):
  sw = h.startsw()
  print "t=%g wall interval %g"% (h.t, sw-swlast)
  h.cvode.event(h.t+pinvl, (progress, (pinvl , sw)))

def show_progress(invl):
  global fih
  if rank == 0:
    fih = h.FInitializeHandler(2, (progress, (invl, h.startsw())))

if __name__ == '__main__':
  h.tstop = 1000
  show_progress(200)
  h.run()