Local variable time step method (Lytton, Hines 2005)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:33975
The local variable time-step method utilizes separate variable step integrators for individual neurons in the network. It is most suitable for medium size networks in which average synaptic input intervals to a single cell are much greater than a fixed step dt.
Reference:
1 . Lytton WW, Hines ML (2005) Independent variable time-step integration of individual neurons for network simulations. Neural Comput 17:903-21 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type:
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Methods;
Implementer(s): Hines, Michael [Michael.Hines at Yale.edu];
begintemplate SpikePlot1
public cells, vecs, g, update
public map, save_data, b, unmap
public flush, begin, plot, size, view_count, fastflush, simgraph
external addplot, tstop
objref cells, vecs[1], nc, g, this, y, tobj, b, outlist, nil
strdef tstr, modestr
proc init() {
	fwindow = 100
	binwidth = .1
	modestr = "Spikes   "
	mode=1
	y = new Vector(1000)
	cells = $o1
	if (numarg() == 1) {
		build()
		map()
	}
}
proc map() {
	sprint(tstr, "%s for %s", this, cells)
	if (numarg() > 1) {
		b.map(tstr, $2,$3,$4,$5)
	}else{
		b.map(tstr)
	}
	update()
	flush()
}
proc unmap() {
	b.unmap()
	g = nil
}
proc build() {
	b = new VBox(3)
	b.priority(600)
	b.save("")
	b.ref(this)
	b.dismiss_action("unmap()")
	b.intercept(1)
	xpanel("")
	xmenu("Plot")
	xbutton("Update", "update() flush()")
	xradiobutton("Spikes", "pmode(1)", mode==1)
	xradiobutton("Frequency", "pmode(2)", mode==2)
	xradiobutton("Histogram", "pmode(3)", mode==3)
	xmenu()
	xvarlabel(modestr)
	xpvalue("Freq Window (ms)", &fwindow, 1, "flush()")
	xpvalue("Hist Bin (ms)", &binwidth, 1, "flush()")
	xpanel()
	g = new Graph()
	b.intercept(0)
	addplot(this, 1)
	begin()
	pmode(mode)
}
proc pmode() {
	mode = $1
	if (mode == 1) {
		modestr = "Spikes   "
	}else if (mode == 2) {
		modestr = "Frequency"
	}else if (mode == 3) {
		modestr = "Histogram"
	}
	flush()
}


proc update() {local i
	n = cells.count
	if (n == 0) return
	objref vecs[n]
	for i=0, n-1 {
		vecs[i] = new Vector(0)
		tobj = cells.object(i)
		tobj.connect2target(nil, nc)
		sprint(tstr, "%s", tobj)
		vecs[i].label(tstr)
		nc.record(vecs[i])
	}
	objref nc, tobj
}

proc begin() {
}

func view_count() {
	if (g == nil) {
		return 0
	}
	return g.view_count()
}
proc simgraph() {
}
proc plot() {
}
func size() {
	if (numarg() == 4) {
		g.size($1,$2,0,cells.count+1)
		return 1.
	}else{
		return g.size($1)
	}
}
proc fastflush() {}

proc flush() {local i
	if (object_id(g) == 0) return
	g.erase_all
	g.vfixed(1)
	g.label(.9,1)
if (mode == 1) {
	for (i=n-1; i >= 0; i -= 1) {
		y.resize(vecs[i].size).fill(i+1)
		y.label(vecs[i].label)
		y.mark(g, vecs[i], "|", 8, 1, 1)
		y.line(g, vecs[i], 1, 0)
	}
}else if (mode == 2) {
	for (i=n-1; i >= 0; i -= 1) {
		y = vecs[i].sumgauss(0, tstop, tstop/100, fwindow)
		y.label(vecs[i].label)
		y.mul(1000).line(g, y.c.indgen(0, tstop/100), 1,1)
	}
}else if (mode == 3) {
	for (i=n-1; i >= 0; i -= 1) if (vecs[i].size > 1){
		y = vecs[i].c.deriv(1,1)
		high = y.max
		y = y.sumgauss(0, high, high/50, binwidth)
		y.label(vecs[i].label)
		y.line(g, y.c.indgen(0, high/50), 1,1)
	}
}
	g.flush()
}

endtemplate SpikePlot1


Lytton WW, Hines ML (2005) Independent variable time-step integration of individual neurons for network simulations. Neural Comput 17:903-21[PubMed]

References and models cited by this paper

References and models that cite this paper

Abeles M (1991) Corticonics: Neural Circuits of the Cerebral Cortex.

Aviel Y, Mehring C, Abeles M, Horn D (2003) On embedding synfire chains in a balanced network. Neural Comput 15:1321-40 [PubMed]

Bazhenov M, Timofeev I, Steriade M, Sejnowski TJ (1998) Computational models of thalamocortical augmenting responses. J Neurosci 18:6444-65 [Journal] [PubMed]

   Thalamocortical augmenting response (Bazhenov et al 1998) [Model]

Cohen S, Hindmarsh A (1994) Cvode user guide Tech Rep

Destexhe A, Mainen Z, Sejnowski TJ (1994) An efficient method for computing synaptic conductances based on a kinetic model of receptor binding Neural Comput 6:14-18 [Journal]

   Efficient Method for Computing Synaptic Conductance (Destexhe et al 1994) [Model]
   Kinetic synaptic models applicable to building networks (Destexhe et al 1998) [Model]
   Application of a common kinetic formalism for synaptic models (Destexhe et al 1994) [Model]

Destexhe A, Mainen ZF, Sejnowski TJ (1994) Synthesis of models for excitable membranes, synaptic transmission and neuromodulation using a common kinetic formalism. J Comput Neurosci 1:195-230 [Journal] [PubMed]

   Application of a common kinetic formalism for synaptic models (Destexhe et al 1994) [Model]
   Kinetic synaptic models applicable to building networks (Destexhe et al 1998) [Model]

Hindmarsh A, Serban R (2002) User documentation for Cvodes, an ode solver with sensitivity analysis capabilities Tech Rep

Hines ML, Carnevale NT (2001) NEURON: a tool for neuroscientists. Neuroscientist 7:123-35 [Journal] [PubMed]

   Spatial gridding and temporal accuracy in NEURON (Hines and Carnevale 2001) [Model]

Hines ML, Morse T, Migliore M, Carnevale NT, Shepherd GM (2004) ModelDB: A Database to Support Computational Neuroscience. J Comput Neurosci 17:7-11 [Journal] [PubMed]

Jones D (1986) An empirical comparison of priority-queue and event-setimplementations Comm Acm 4:300-311

Lytton WW (1996) Optimizing synaptic conductance calculation for network simulations. Neural Comput 8:501-9 [PubMed]

Makino T (2003) A discrete-event neural network simulator for general neuron models Neural Comput App 11:210-223

Mattia M, Del Giudice P (2000) Efficient event-driven simulation of large networks of spiking neurons and dynamical synapses. Neural Comput 12:2305-29 [PubMed]

Sleator D, Tarjan R (1983) Self adjusting binary trees Proc ACM SIGACT Symposium on Theory of Computing :235-245

Traub RD, Jefferys GR, Whittington MA (1999) Fast Oscillations In Cortical Circuits

Victor JD, Purpura KP (1996) Nature and precision of temporal coding in visual cortex: a metric-space analysis. J Neurophysiol 76:1310-26 [Journal] [PubMed]

Wang XJ, Buzsaki G (1996) Gamma oscillation by synaptic inhibition in a hippocampal interneuronal network model. J Neurosci 16:6402-13 [Journal] [PubMed]

   Gamma oscillations in hippocampal interneuron networks (Wang, Buzsaki 1996) [Model]

Watts L (1994) Event-driven simulation of networks of spiking neurons Advances in Neural Information Processing Systems, Cowan J:Tesauro G:Alspector J, ed. pp.927

Brette R (2006) Exact simulation of integrate-and-fire models with synaptic conductances. Neural Comput 18:2004-27 [PubMed]

Brette R, Rudolph M, Carnevale T, Hines M, Beeman D, Bower JM, Diesmann M, Morrison A, et al. (2007) Simulation of networks of spiking neurons: A review of tools and strategies. J Comp Neurosci 23:349-98 [Journal] [PubMed]

   Networks of spiking neurons: a review of tools and strategies (Brette et al. 2007) [Model]

Hines ML, Markram H, Schuermann F (2008) Fully Implicit Parallel Simulation of Single Neurons J Comp Neurosci 25:439-448 [Journal] [PubMed]

   Fully Implicit Parallel Simulation of Single Neurons (Hines et al. 2008) [Model]

Huang S, Hong S, De Schutter E (2015) Non-linear leak currents affect mammalian neuron physiology. Front Cell Neurosci 9:432 [Journal] [PubMed]

   Concentration dependent nonlinear K+ and Cl- leak current (Huang et al. 2015) [Model]

Lytton WW, Seidenstein AH, Dura-Bernal S, McDougal RA, Schurmann F, Hines ML (2016) Simulation Neurotechnologies for Advancing Brain Research: Parallelizing Large Networks in NEURON. Neural Comput :1-28 [Journal] [PubMed]

   Parallelizing large networks in NEURON (Lytton et al. 2016) [Model]

McDougal RA, Hines ML, Lytton WW (2013) Reaction-diffusion in the NEURON simulator. Front Neuroinform 7:28 [Journal] [PubMed]

   Reaction-diffusion in the NEURON simulator (McDougal et al 2013) [Model]

Migliore M, Cannia C, Lytton WW, Markram H, Hines ML (2006) Parallel Network Simulations with NEURON. J Comp Neurosci 21:110-119 [Journal] [PubMed]

   Parallel network simulations with NEURON (Migliore et al 2006) [Model]

Morrison A, Straube S, Plesser HE, Diesmann M (2007) Exact subthreshold integration with continuous spike times in discrete-time neural network simulations. Neural Comput 19:47-79 [PubMed]

Rangan AV, Cai D (2007) Fast numerical methods for simulating large-scale integrate-and-fire neuronal networks. J Comput Neurosci 22:81-100 [Journal] [PubMed]

Ros E, Carrillo R, Ortigosa EM, Barbour B, Agis R (2006) Event-driven simulation scheme for spiking neural networks using lookup tables to characterize neuronal dynamics. Neural Comput 18:2959-93 [PubMed]

Rudolph M, Destexhe A (2006) Analytical Integrate-and-Fire Neuron Models with Conductance-Based Dynamics for Event-Driven Simulation Strategies. Neural Comput 18:2146-210 [PubMed]

(29 refs)