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]
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
                            
objref inp
numodors=6
double odors[numodors][5]

	inp=new File()
	inp.ropen("odors.txt")
	for od=0, numodors-1 {
		for tf=0, 4 {
			odors[od][tf]=inp.scanvar()
			print " odor ",od, " mitral ",tf, odors[od][tf]
		}
	}
	inp.close()

begintemplate OBStim
public nc, mgid, exists, ww,si,sw, endod, start, odors
external cvode
objref nc, rinterval, rweight, fih, this

proc init(){localobj cell, pc, nil
	pc = new ParallelContext()
	exists = 0
	// $1 is mitral_gid
	mgid = $1
	si=1
	sw=1
	ww=0
	endod=10000
	start = 2
    if (pc.gid_exists(mgid)) {
	exists = 1
	seed_interval = si*10000 + 1
	seed_weight = sw*10000 + 5000
//	seed_interval = mgid*10000 + 1
//	seed_weight = mgid*10000 + 5000
	cell = pc.gid2cell(mgid)
	nc = new NetCon(nil, cell.synodor)
	nc.delay = 0.5
	fih = new FInitializeHandler(0, "init_ev()", this)
    }
}

proc init_ev() {
	printf("%s t=%g %g\n", this, t, start)

	rinterval = new Random()
	rinterval.MCellRan4(seed_interval)
	rinterval.uniform(100, 250)

	rweight = new Random()
	rweight.MCellRan4(seed_interval)
	rweight.uniform(0.4, 0.5)

	cvode.event(t + start, "ev()")//, this)
	nc.event(t + start + nc.delay)
	nc.weight = 0
}

proc ev() {local next
	if (1) {
		nc.weight = ww*rweight.repick()*1e-3
	}
	next = rinterval.repick()
//	next = 220
	printf("%s t=%g %g w=%g\n", this, t, next, nc.weight)
	next += t

	if (next<endod) {
		cvode.event(next, "ev()")//, this)
		nc.event(next + nc.delay)
	}
}

endtemplate OBStim

objref stim_list_

proc create_stim() {localobj nil, wl, wh
	stim_list_ = new List()
	od=2
	index=0
	for i=0, nmitral-1 {
		stim_list_.append(new OBStim(i)) 
		stim_list_.o(index).ww=odors[od][i]
		stim_list_.o(index).sw=i
		stim_list_.o(index).start=2
		stim_list_.o(index).endod=20000
		index=index+1
	}
	od=0
	j=nmitral
	for i=0, nmitral-1 {
		stim_list_.append(new OBStim(i)) 
		stim_list_.o(index).ww=odors[od][i]
		stim_list_.o(index).sw=i
		stim_list_.o(index).start=20000
		stim_list_.o(index).endod=40000
		index=index+1
	}
	od=3
	j=nmitral
	for i=0, nmitral-1 {
		stim_list_.append(new OBStim(i)) 
		stim_list_.o(index).ww=odors[od][i]
		stim_list_.o(index).sw=i
		stim_list_.o(index).start=40000
		stim_list_.o(index).endod=60000
		index=index+1
	}
}

create_stim()

Loading data, please wait...