SYNCHAN.DOC

advertisement
Object Type:
synchan
Description:
Synaptically activated channel.
Author:
Mike Vanier 11/94
----------------------------------------------------------------------------ELEMENT PARAMETERS
DataStructure:
Synchan_type
Size:
200 bytes
Fields:
channel
activation
[in src/newconn/newconn_struct.h]
driving force (transmitter) for
conductance
channel current
time varying channel conductance
reversal potential of channel
first time constant of channel activation
second time constant of channel
Ik
Gk
Ek
tau1
tau2
activation
gmax
frequency
peak channel conductance
random activation frequency (default =
nsynapses
number of incoming spike messages
0)
(readonly)
event_buffer_size size of event buffer (readonly)
pending_events
number of pending spike events in event
buffer (readonly)
nodes_per_synapse number of event nodes to allocate per
synapse (default 1)
synapse
synapse buffer
----------------------------------------------------------------------------SIMULATION PARAMETERS
Function:
Synchan
Classes:
segment channel synchannel
Actions:
CREATE
INIT
PROCESS
RESET
RECALC
[in src/newconn/synchan.c]
set synapse_size hidden field
assign activation = 0
update Gk, calculate Ik
assign activation = 0, Gk = 0; calculate
time-step-dependent coefficients
recalculate time-step-dependent
coefficients
CHECK
VOLTAGE
make sure tau1>0, tau2>0; make sure a
message is present (in order to calculate
Ik)
SAVE2
called by the save command
RESTORE2
called by the restore command
EVENT
put a spike event into the event buffer
ADDMSGIN
DELETEMSGIN
MSGINDELETED
RESETBUFFER
reset size of event buffer to
(nodes_per_synapse * nsynapses) nodes
DELETE
delete the element
COPY
copies the element
Messages:
VOLTAGE
Vm
ACTIVATION
activation
RAND_ACTIVATION probability amplitude
MOD
modulation
SPIKE
----------------------------------------------------------------------------Notes:
Simulates a time dependent synaptically activated ionic
channel. A variable channel conductance Gk is activated
by
the application of transmitter. This conductance then
changes
with damped second-order characteristics with a time
course
given by two time constants tau1 and tau2.
This gives
rise to
an alpha function/dual exponential conductance waveform for
an
impulse spike input. The channel also calculates channel
current Ik and therefore needs the membrane state (Vm).
Each SPIKE message to a synchan establishes a synaptic
connection and increments nsynapses. The synapses are
numbered starting with 0, and each contains a field for a
synaptic weight and a propagation delay. For example,
the
weight of the first synaptic connection is held in the
field
"synapse[0].weight" while the delay is
"synapse[0].delay". Gk
reaches a value gmax*weight for a single event delivered
with
a SPIKE message. Note that even though synapses are not
elements, they do have fields that can be accessed
individually. They can be thought of as "sub-elements"
or
substructures of the element.
Any number of spike events can be pending per synapse.
synchan stores all spike events in a buffer until they are
scheduled to occur. If enough events come in to overload
the buffer, the buffer will dynamically expand to enable
storage of all events. The size of the buffer in events is
stored in the "event_buffer_size" field which is readonly.
The number of actual spikes in the buffer which have not
yet hit the channel are stored in the "pending_events"
field (also readonly). The "nodes_per_synapse" field
controls how many large the event buffer is initially. The
default is to have one node per synapse, but if you expect
a lot of events or very few events you can change this
number to be greater or less than the default (1),
respectively. This will speed up the simulation slightly
in the first case and save memory in the second. If you
leave this field alone the object will still work fine.
The "resetsynchanbuffers" command will cause all the
buffers in all synchan and derived objects to be reset to
a size of nodes_per_synapse*nsynapses (which will also
cause all pending events to be flushed).
The "copy" command will fail for any synchan or hebbsynchan
which is receiving SPIKE messages. The correct way to set
up simulations is to set up prototype cells which do not
receive any SPIKE messages on their synchans, copy these
cells, and then add the appropriate SPIKE messages (by hand
or by using planarconnect or volumeconnect). We are
working on a more "intelligent" copy command which will
permit copying of synchans with SPIKE messages, but for
now, don't do it.
This object used to be called synchan2 in genesis 2.0.1.
Since it does everything that the old synchan does without
the limitations of that object we have retired the old
synchan and renamed synchan2 to be synchan. "synchan2" is
now just an alias for synchan -- they are identical.
Example:
Scripts/tutorials/tutorial4.g
See also:
resetsynchanbuffers, Connections, NewSynapticObjects
Download