Olfactory bulb cluster formation (Migliore et al. 2010)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:127995
Functional roles of distributed synaptic clusters in the mitral-granule cell network of the olfactory bulb.
Reference:
1 . Migliore M, Hines ML, McTavish TS, Shepherd GM (2010) Functional roles of distributed synaptic clusters in the mitral-granule cell network of the olfactory bulb. Front Integr Neurosci 4:122 [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 mitral GLU cell; Olfactory bulb main interneuron granule MC GABA cell;
Channel(s): I Na,t; I K;
Gap Junctions:
Receptor(s): AMPA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Short-term Synaptic Plasticity; Olfaction;
Implementer(s): Hines, Michael [Michael.Hines at Yale.edu]; Migliore, Michele [Michele.Migliore at Yale.edu];
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; Olfactory bulb main interneuron granule MC GABA cell; AMPA; I Na,t; I K;
/
migliore2010
README
ampanmda.mod
fi.mod
kamt.mod *
kdrmt.mod *
naxn.mod *
ThreshDetect.mod *
.hg_archival.txt
6.2.3.2203.spk
allsynhinton.hoc *
clear.hoc *
connect.hoc
granule.hoc
iterator.hoc
lptiter.hoc
mgrs.hoc
mitral.hoc
mosinit.hoc
net-5mt-100-900.hoc
odors.txt
parinit.hoc
pattern.hoc
perfrun.hoc
show.hoc
somesyn.hoc *
start.hoc
start.ses *
stim-odors-AB-seq.hoc
weight_movie.hoc *
weight-forfig3-bulb1.dat
weightsave.hoc
                            
// iterator over this cpu subset using lpt whole cell algorithm
// assuming a specified complexity for mitral and granule

cxmitral = 1675
cxgranule = 258

objref lptiter_gidvec, pc

iterator cell_gids() { local i
	if (object_id(lptiter_gidvec) == 0) { lptiter_set() }
	for i=0, lptiter_gidvec.size-1 {
		$&1 = lptiter_gidvec.x[i]
		$&2 = i
		iterator_statement
	}
}

proc lptiter_set() {local i  localobj ldbal, cx, p
	cx = new Vector(ncell)
	cx.fill(cxmitral, nmitral_begin, ngranule_begin-1)
	cx.fill(cxgranule, ngranule_begin, ncell-1)
	p = lptiter_lpt(cx, pc.nhost, 0)
	lptiter_gidvec = p.c.indvwhere("==", pc.id)
	lptiter_gidvec.add(nmitral_begin)
	//for i=0, lptiter_gidvec.size-1 { printf("%d %d\n", pc.id, lptiter_gidvec.x[i])}
}

// from loadbal.hoc
// least processing time algorithm
// $o1 is vector of weights  $2 is number of partitions
// return is vector of partition indices parallel to weights
obfunc lptiter_lpt() {local i, j  localobj wx, ix, pw
	if ($3) {
		print $o1.size, " piece weights"
		$o1.printf
	}
	wx = $o1.sortindex.reverse
	ix = new Vector($o1.size)
	pw = new Vector($2)
	for i=0, $o1.size-1 {
		j = wx.x[i]
		w = $o1.x[j]
		ip = pw.min_ind
		pw.x[ip] += w
		ix.x[j] = ip
	}
	if ($3) {
		print $2, " partition complexities"
		pw.printf
	}
	if (pw.mean) {
		thread_cxbal_ = pw.max/(pw.mean)
	}else{
		thread_cxbal_ = 1
	}
	return ix
}