Leech heart interneuron network model (Hill et al 2001, 2002)

 Download zip file 
Help downloading and running models
Accession:19698
We have created a computational model of the timing network that paces the heartbeat of the medicinal leech, Hirudo medicinalis. In the intact nerve cord, segmental oscillators are mutually entrained to the same cycle period. Although experiments have shown that the segmental oscillators are coupled by inhibitory coordinating interneurons, the underlying mechanisms of intersegmental coordination have not yet been elucidated. To help understand this coordination, we have created a simple computational model with two variants: symmetric and asymmetric. See references for more details. Biologically realistic network models with two, six, and eight cells and a tutorial are available at the links to Calabrese's web site below.
References:
1 . Hill AA, Masino MA, Calabrese RL (2002) Model of intersegmental coordination in the leech heartbeat neuronal network. J Neurophysiol 87:1586-602 [PubMed]
2 . Hill AA, Lu J, Masino MA, Olsen OH, Calabrese RL (2001) A model of a segmental oscillator in the leech heartbeat neuronal network. J Comput Neurosci 10:281-302 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Leech;
Cell Type(s): Leech heart interneuron;
Channel(s): I Na,p; I Na,t; I K; I h; I Calcium; I Potassium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: GENESIS;
Model Concept(s): Activity Patterns; Bursting; Oscillations; Spatio-temporal Activity Patterns; Tutorial/Teaching; Action Potentials; Invertebrate;
Implementer(s): Hill, Andrew A [aavhill at yahoo.com];
Search NeuronDB for information about:  I Na,p; I Na,t; I K; I h; I Calcium; I Potassium;
// genesis

// $Id: newconn.g,v 1.14 1997/08/08 23:42:23 dhb Exp $
// Version EDS21b 96/08/02
//
// RCS Log messages at end of file


newclass synchannel 
newclass spiking
addaction RESETBUFFER 1001 

object	synchan	        Synchan_type Synchan segment channel synchannel              \
	-author 	"Mike Vanier 11/94"                                          \ 
	-actions 	CREATE INIT PROCESS HPROCESS RESET CHECK RECALC SAVE2 RESTORE2 EVENT  \
			ADDMSGIN DELETEMSGIN MSGINDELETED RESETBUFFER DELETE COPY    \
	-messages 	VOLTAGE 	0 	1 Vm                                 \	
			ACTIVATION 	1 	1 activation                         \
			RAND_ACTIVATION 2 	2 probability amplitude              \
			MOD		3	1 modulation                         \
			SPIKE	       -1	0                                    \
	-readonly       activation            "driving force for channel conductance"                    \
	-readwrite       Ik                    "channel current"                                          \
	-readwrite      Gk                    "conductance of channel"                                   \
	-readwrite      Ek                    "reversal potential of channel"                            \
	-readwrite		X                     "internal variable for implementing synaptic conductance"  \
	-readwrite		Y                     "internal variable for implementing synaptic conductance"  \
	-hidden		xconst1               "internal variable for synaptic conductances"              \
	-hidden		yconst1               "internal variable for synaptic conductances"              \
	-hidden		xconst2               "internal variable for synaptic conductances"              \
	-hidden		yconst2               "internal variable for synaptic conductances"              \
	-hidden		norm                  "normalization factor for psp amplitude"                   \
	-readwrite	tau1                  "first time constant of channel activation"                \
	-readwrite	tau2                  "second time constant of channel activation"               \
	-readwrite	gmax                  "peak conductance"                                         \
	-readwrite	frequency             "random activation frequency" 0.0                          \
	-readonly	nsynapses             "Number of incoming spike messages"                        \
	-hidden		synapse_size          "size of synapse in bytes"                                 \
	-readonly	event_buffer_size     "size of event buffer" 0                                   \
	-readonly       pending_events        "number of pending spike events in buffer" 0               \
	-hidden         FreeSynapticEvents    "free list of synaptic event nodes"                        \
	-hidden		PendingSynapticEvents "list of pending synaptic events"                          \
	-readwrite      nodes_per_synapse     "number of event nodes to allocate per synapse" 1.0        \
	-hidden         list_alloced          "flag for whether the freelist has been allocated" 0       \
        -hidden         allocednodes          "number of nodes that are the head of a malloced block" 0  \
	-readwrite	synapse               "synapse buffer"                                           \   
	-description    "Synaptically activated channel."


// This is a duplicate of synchan, for backwards-compatibility:

object	synchan2        Synchan_type Synchan segment channel synchannel              \
	-author 	"Mike Vanier 11/94"                                          \ 
	-actions 	CREATE INIT PROCESS HPROCESS RESET CHECK RECALC SAVE2 RESTORE2 EVENT  \
			ADDMSGIN DELETEMSGIN MSGINDELETED RESETBUFFER DELETE COPY    \
	-messages 	VOLTAGE 	0 	1 Vm                                 \	
			ACTIVATION 	1 	1 activation                         \
			RAND_ACTIVATION 2 	2 probability amplitude              \
			MOD		3	1 modulation                         \
			SPIKE	       -1	0                                    \
	-readonly       activation            "driving force for channel conductance"                    \
	-readonly       Ik                    "channel current"                                          \
	-readonly       Gk                    "conductance of channel"                                   \
	-readwrite      Ek                    "reversal potential of channel"                            \
	-hidden		X                     "internal variable for implementing synaptic conductance"  \
	-hidden		Y                     "internal variable for implementing synaptic conductance"  \
	-hidden		xconst1               "internal variable for synaptic conductances"              \
	-hidden		yconst1               "internal variable for synaptic conductances"              \
	-hidden		xconst2               "internal variable for synaptic conductances"              \
	-hidden		yconst2               "internal variable for synaptic conductances"              \
	-hidden		norm                  "normalization factor for psp amplitude"                   \
	-readwrite	tau1                  "first time constant of channel activation"                \
	-readwrite	tau2                  "second time constant of channel activation"               \
	-readwrite	gmax                  "peak conductance"                                         \
	-readwrite	frequency             "random activation frequency" 0.0                          \
	-readonly	nsynapses             "Number of incoming spike messages"                        \
	-hidden		synapse_size          "size of synapse in bytes"                                 \
	-readonly	event_buffer_size     "size of event buffer" 0                                   \
	-readonly       pending_events        "number of pending spike events in buffer" 0               \
	-hidden         FreeSynapticEvents    "free list of synaptic event nodes"                        \
	-hidden		PendingSynapticEvents "list of pending synaptic events"                          \
	-readwrite      nodes_per_synapse     "number of event nodes to allocate per synapse" 1.0        \
	-hidden         list_alloced          "flag for whether the freelist has been allocated" 0       \
        -hidden         allocednodes          "number of nodes that are the head of a malloced block" 0  \
	-readwrite	synapse               "synapse buffer"                                           \   
	-description    "Synaptically activated channel."



object  hebbsynchan     HebbSynchan_type HebbSynchan segment channel synchannel                    \
        -author         "Mike Vanier 4/96 Caltech"                                                 \
        -actions        CREATE INIT PROCESS RESET RECALC CHECK SAVE2 RESTORE2 EVENT                \
                        ADDMSGIN DELETEMSGIN MSGINDELETED RESETBUFFER DELETE COPY                  \
        -messages       VOLTAGE         0       1 Vm                                               \
                        ACTIVATION      1       1 activation                                       \
                        RAND_ACTIVATION 2       2 probability amplitude                            \
                        MOD             3       1 modulation                                       \
                        WEIGHT_CHANGE_MOD  4    1 modulation                                       \
                        SPIKE          -1       0                                                  \
	-readonly       activation            "driving force for channel conductance"                    \
	-readonly       Ik                    "channel current"                                          \
	-readonly       Gk                    "conductance of channel"                                   \
	-readwrite      Ek                    "reversal potential of channel"                            \
        -hidden         X                     "internal variable for synaptic conductances"              \
        -hidden         Y                     "internal variable for synaptic conductances"              \
        -hidden         xconst1               "internal constant for synaptic conductances"              \
        -hidden         xconst2               "internal constant for synaptic conductances"              \
        -hidden         yconst1               "internal constant for synaptic conductances"              \
        -hidden         yconst2               "internal constant for synaptic conductances"              \
        -hidden         norm                  "normalization factor for psp amplitude"                   \
        -readwrite      tau1                  "first time constant of channel activation"                \
        -readwrite      tau2                  "second time constant of channel activation"               \
        -readwrite      gmax                  "peak conductance"                                         \
        -readwrite      frequency             "random activation frequency" 0.0                          \
        -readonly       nsynapses             "Number of incoming spike messages"                        \
	-hidden		synapse_size          "size of synapse in bytes"                                 \
        -readonly       event_buffer_size     "size of event buffer" 0                                   \
        -readonly       pending_events        "number of pending spike events in event buffer" 0         \
        -hidden         FreeSynapticEvents    "free list of synaptic event nodes"                        \
        -hidden         PendingSynapticEvents "list of pending synaptic events"                          \
        -readwrite      nodes_per_synapse     "number of event nodes to allocate per synapse" 1.0        \
        -hidden         list_alloced          "flag for whether the freelist has been allocated"   0     \
        -hidden         allocednodes          "number of nodes that are the head of a malloced block" 0  \ 
        -readwrite      synapse               "synapse buffer"                                           \
	-readwrite      pre_tau1              "first time constant for presynaptic averaging"   0.010    \
	-readwrite      pre_tau2              "second time constant for presynaptic averaging"  0.100    \
	-readwrite      pre_thresh_lo         "lower presynaptic threshold" 3.0                          \ 
        -readwrite      pre_thresh_hi         "upper presynaptic threshold" 3.0                          \ 
        -hidden         pre_xconst            "internal constant for presynaptic averaging"              \
	-hidden         pre_yconst1           "internal constant for presynaptic averaging"              \
	-hidden         pre_yconst2           "internal constant for presynaptic averaging"              \
	-hidden         pre_norm              "normalization factor for presynaptic averaging"           \
	-readonly       avg_Vm                "averaged membrane potential"                              \
	-readwrite      post_tau              "time constant of postsynaptic averaging"                  \
	-hidden         post_const            "internal constant for postsynaptic averaging"             \
	-readwrite      post_thresh_lo        "lower postsynaptic threshold" -0.065                      \
	-readwrite      post_thresh_hi        "upper postsynaptic threshold" -0.065                      \
	-readwrite      post_scale            "scaling factor for postsynaptic activities" 0.002         \
	-readwrite      weight_change_rate    "rate of weight change" 1.0                                \
	-readwrite      min_weight            "minimum weight" 0.0                                       \
	-readwrite      max_weight            "maximum weight" 100.0                                     \
	-readwrite      change_weights        "flag: nonzero means weights can be changed" 1             \
	-description    "Like synchan, but weights are dynamically modified"  \
                        "according to a function of the pre- and postsynaptic" \
                        "activations."  


object	spikegen	Spikegen_type Spikegen spiking               \
	-author 	"M.Wilson Caltech 6/88, Dave Bilitch 1/94"   \
	-actions 	PROCESS RESET CHECK                          \
	-readonly	state       "current state of object"        \
	-readwrite	thresh      "threshold for spike generation" \
	-readwrite	output_amp  "amplitude of spike event" 1.0   \
	-readwrite	abs_refract "absolute refractory period"     \
	-hidden		lastevent   "time of last spike"             \
	-messages	INPUT 0		1 input                      \
			THRESH 1	1 threshold                  \
	-description	"Performs threshold spike discrimination."   \
			"Generates an impulse each time an input crosses the"   \
			"spike threshold at a maximal rate set by abs_refract."



object	randomspike	Randomspike_type Randomspike spiking                       \
	-author 	"M.Wilson Caltech 6/88, Dave Bilitch 1/94"                 \
	-actions 	INIT PROCESS RESET SET                                     \
	-readonly	state       "current state of object"                      \
	-readwrite	rate        "rate of generation of events"                 \
	-readwrite      reset       "flag for whether to reset after each event" 1 \
	-readwrite	reset_value "what to reset state to" 0.0                   \
	-readwrite      min_amp     "minimum amplitude of event" 1.0               \
	-readwrite      max_amp     "maximum amplitude of event" 1.0               \
	-readwrite	abs_refract "absolute refractory period" 0.0               \
	-hidden		lastevent   "time of last spike"                           \
	-hidden		realrate    "rate corrected for refractory period"         \
	-messages	RATE 0		1 rate                                     \
			MINMAX 1	2 min max                                  \
	-description	"Generates a time series of events at a rate"              \
			"given by the rate parameter. The probability"             \
			"of an event for a single time step is adjusted"           \
			"based on the setting of abs_refract such that"            \
			"the requested rate is maintained.  No event will"         \
			"be generated during the refractory period defined"        \
			"by abs_refract.  When an event has been generated"        \
			"the amplitude of the event is a random variable"          \
			"uniformly distributed between min_amp and max_amp."       \
			"The state field has the value of the event amplitude"     \
			"if an event has been generated. If an event is not"       \
			"generated then the value of the state field"              \
			"depends on the reset field. If reset is non-zero"         \
			"(the default) then the state takes on the value given in" \
			"reset_value. Otherwise the state will behave like a"      \
			"latch containing the amplitude of the previous event."    \
			"A reset time, randomspike is initialized to a random"     \
			"phase of the refractory period to avoid artificial"       \
			"synchronization at high rate settings."

addfunc planardelay         PlanarDelay
addfunc volumedelay         VolumeDelay
addfunc syndelay            SynDelay 
addfunc planarweight        PlanarWeight
addfunc volumeweight        VolumeWeight
addfunc planarconnect       do_planarconnect
addfunc volumeconnect       do_volumeconnect
addfunc normalizeweights    NormalizeWeights
addfunc getsynindex         do_getsynindex int
addfunc getsyncount         do_getsyncount int 
addfunc getsynsrc           do_getsynsrc   char*
addfunc getsyndest          do_getsyndest  char*
addfunc resetsynchanbuffers ResetSynchanBuffers
addfunc planarweight2       PlanarWeight2
addfunc planardelay2        PlanarDelay2
addfunc volumedelay2        VolumeDelay2


/*
** $Log: newconn.g,v $
** Revision 1.14  1997/08/08 23:42:23  dhb
** Added SET action for randomspike and updated randomspike
** description to reflect change in handling of rate and abs_refract
** values and resulting spike generation
**
** Revision 1.13  1997/08/04 17:38:27  dhb
** Added HPROCESS to synchan2 actions
**
** Revision 1.12  1997/08/01 18:57:44  dhb
** Fix to randomspike to adjust for the rate damping effect of
** the refractory period.  (From Erik De Schutter)
**
** Revision 1.11  1997/07/29 00:58:02  dhb
** Added planardelay2 and volumedelay2 commands
**
** Revision 1.10  1997/07/23 22:01:11  dhb
** Added HPROCESS to synchan actions.
**
** Revision 1.9  1997/05/29 06:52:39  dhb
** Update from Antwerp GENESIS version 21e
**
** Version EDS21b 96/08/02
** MAEX added field normalize_weights to synchan2 object
**      added function planarweight2
**
# Revision 1.8  1996/07/23  00:03:40  dhb
# Merged in 1.6.1.1 changes
#
# Revision 1.7  1995/09/28  00:01:48  venkat
# Changes from Mike Vanier:
# Removed references to hebbsynchan2.
# Reorganized field positions to conform with newconn_struct.h
#
# Revision 1.6.1.1  1996/07/23  00:00:14  dhb
# Changes from Mike Vanier:
#   synchan2 --> synchan
#
# Revision 1.6  1995/08/03  20:02:17  dhb
# Changed hebbsynchan back to HebbSynchan implementation and commented
# hebbsynchan2 object.
#
# Revision 1.5  1995/08/03  00:53:44  dhb
# hebbsynchan is now the HebbSynChan2 version and there is no
# hebbsynchan2 object defined.
#
# Revision 1.4  1995/03/28  02:13:49  mvanier
# Cosmetic changes.
#
# Revision 1.3  1995/03/27  20:36:21  mvanier
# Changed order of fields in synchan object to conform
# to newconn_struct.h.
#
# Revision 1.2  1995/02/27  23:04:48  mvanier
# Spiking objects are no longer of class membrane.
#
# Revision 1.1  1995/01/11  23:09:02  dhb
# Initial revision
#
*/

Loading data, please wait...