Classic model of the Tritonia Swim CPG (Getting, 1989)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:93326
Classic model developed by Petter Getting of the 3-cell core CPG (DSI, C2, and VSI-B) mediating escape swimming in Tritonia diomedea. Cells use a hybrid integrate-and-fire scheme pioneered by Peter Getting. Each model cell is reconstructed from extensive physiological measurements to precisely mimic I-F curves, synaptic waveforms, and functional connectivity. **However, continued physiological measurements show that Getting may have inadvertently incorporated modulatory and or polysynaptic effects -- the properties of this model do *not* match physiological measurements in rested preparations.** This simulation reconstructs the Getting model as reported in: Getting (1989) 'Reconstruction of small neural networks' In Methods in Neural Modeling, 1st ed, p. 171-196. See also, an earlier version of this model reported in Getting (1983). Every attempt has been made to replicate the 1989 model as precisely as possible.
Reference:
1 . Getting PA (1989) Reconstruction of small neural networks. Methods in Neuronal Modeling: From Synapses to Networks., Koch C:Segev I, ed. pp.171
2 . Getting PA (1983) Mechanisms of pattern generation underlying swimming in Tritonia. II. Network reconstruction. J Neurophysiol 49:1017-35 [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: Tritonia;
Cell Type(s): Tritonia swim interneuron dorsal; Tritonia cerebral cell; Tritonia swim interneuron ventral;
Channel(s): I A;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Bursting; Oscillations; Invertebrate;
Implementer(s): Calin-Jageman, Robert [rcalinjageman at gsu dot edu];
Search NeuronDB for information about:  I A;
: Threshold Function, Bob Calin-Jageman 9/20/2002

: This model implements a threshold function described by 
: Getting, 1989 and utilized by Lieb and Frost, 1998.
: 
: 
: Created by Bob Calin-Jageman
: 
: Created 	9/20/2002
: Modified 	9/20/2002
:
: Mathcheck  - Complete    9/31/2002
: Unitscheck - Complete	   9/31/2002 
: 
: Explanation
: With every action potential (v.pre > threshold), the threshold
: is reset to RESET and then decays back to STEADYSTATE with time constant 
: DECAYTC.
: 
: This model is used in conjunction with a netcon object, which detects when
: the membrane potential of a neuron exceed a set threshold.  THe pointer
: nc_thresh is set to point at the threshold of the netcon.  Thus, this model
: causes a typical netcon to have a variable threshold that changes with
: activity.
: 
: This model must also receive input from the netcon to detect the occurance
: of spike.  The hoc code for this model should look like this
: 
:Example Usage
:
:		soma {sthold = new thold(0.5)}
:		sthold.steadystate = sthold_steadystate
:		sthold.reset = sthold_reset
:		sthold.decaytc = sthold_decaytc
:
:		soma stholdnc = new NetCon(&v(0.5), sthold, 0, 0, 1)
:		setpointer sthold.nc_thresh, stholdnc.threshold
: 
: References
: 	Getting, P.A. (1989) "Reconstruction of small neural networks" in 
: Methods in Neuronal Modeling: From Synapses to Networks (1st ed), Kock & Segev
: eds, MIT Press.
:
: 	Lieb JR & Frost WN (1997) "Realistic Simulation of the Aplysia Siphon
: Withdrawal Reflex Circuit: Roles of Circuit Elements in Producing Motor Output"
: p. 1249 */
: 

NEURON {
	POINT_PROCESS thold
	RANGE steadystate, reset, decaytc, lastspike, thresh, spikecount, prior2spike, burstmaxint, burstminsize, bursting, burstcount, burststart, burstno, freq
	POINTER nc_thresh
	}

UNITS {
	(mV) = (millivolt)
}

PARAMETER  {
	steadystate = -37.8 (mV)  : resting threshold level 
	reset = 200 (mV)	  : with each spike, threshold reset to here 
	decaytc = 11.5 (ms)	  : threshold decays back to steadystate with this time constant 
	nc_thresh (mV)		  : pointer.  Modifies the threshold for a netcon object 
	lastspike (ms)		  : time of last spike.  initialized to 0 don't modify extern
	thresh (mV)		  : current threshold 
	spikecount		  :
	prior2spike		  : time of spike before lasrt.  initialized to -1 don't modify extern
	burstmaxint = 1000
	burstminsize = 3
	bursting = 0
	burstcount = 0
	burststart = 0
	burstno = 0
	freq = 0
	}

ASSIGNED {
	v	(mV)
	}


BREAKPOINT {	
	thresh = steadystate + (reset - steadystate) * (exp((lastspike - t) / decaytc))
	nc_thresh = thresh  : set netcon object to reflect current thresh
}	

INITIAL {
	thresh = reset 
	nc_thresh = thresh
	lastspike = 0
	spikecount = 0
	prior2spike = -1
	bursting = 0
	burstcount = 0
	burststart = 0
	burstno = 0
	freq = 0
}


NET_RECEIVE(weight (microsiemens)) {
		if (spikecount > 0) {
		freq = (1/ (t - lastspike)* 1000) 
		if ((t - lastspike) < burstmaxint) {
			burstcount = burstcount + 1
			if (burstcount == 1) { burststart = lastspike }
			if (burstcount > burstminsize) { bursting = 1 }
		} 
		
		if ((t - lastspike) > burstmaxint) {
			bursting = 0
			burstcount = 0
			burststart = 0
		}
		}

		prior2spike = lastspike
		lastspike = t     : recieved from netcon when v > thresh.  
		spikecount = spikecount + 1  : increment spike count
		
	
}