Synaptic connections to neurons are established by sending a SPIKE message from a spiking class element to a synchannel class element. Typically, this means using a spikegen element to convert action potentials to delta-function ``spike events'' and establishing a SPIKE message to a synchan element. The propagation delays and synaptic weighting for each synaptic connection are stored in the synchan.
For example, to send somatic action potentials in cell1 to ``Ex_channel'' in the dendrite compartment of cell2, one might use:
create spikegen /cell1/soma/spike setfield /cell1/soma/spike thresh 0 abs_refract 0.010 output_amp 1 addmsg /cell1/soma /cell1/soma/spike INPUT Vm addmsg /cell1/soma/spike /cell2/dend/Ex_channel SPIKE setfield /cell2/dend/Ex_channel synapse[0].weight 10 synapse[0].delay 0.005Here, this synaptic connection is labeled as ``synapse[0]'', as it was the first (of possibly several) to be established with the SPIKE message. A more detailed example is given in Scripts/tutorials/tutorial4.g, and is discussed in Chapter 15 of ``The Book of GENESIS''. The Scripts/orient_tut directory contains examples of routines for setting up networks of synaptically connected cells. Further details of the construction of neural circuits and networks are given in Chapter 18 of ``The Book of GENESIS'' (second ed.). Also see the synchan documentation.
The following GENESIS routines are used for establishing and working with synaptic connections:
Routine | Description |
fileconnect | Makes synaptic connections using a weight matrix file |
getsyncount | Returns the number of synapses or SPIKE messages |
for synchan and spikegen objects. | |
getsyndest | Returns the destination path or index of a synapse |
given the source path and number of the SPIKE message. | |
getsynindex | Returns the synapse index in a synchan element |
given the source element. | |
getsynsrc | Returns the source path of a synapse given the |
destination and the synapse index. | |
normalizeweights | Sets the cumulative synaptic weight on a synaptic |
channel to a given or randomly selected value. | |
planarconnect | Connects one group of elements in a plane to another, |
using source and destination element lists and masks. | |
planardelay | Sets delays of a group of synapses receiving input |
from a list of presynaptic elements in a plane. | |
planardelay2 | Faster version of planardelay; requires destination |
planarweight | Sets weights of a group of synapses receiving input |
from a list of presynaptic elements in a plane. | |
planarweight2 | Faster version of planarweight; requires destination |
resetsynchanbuffers | Shrinks the event buffer down to its original size |
for synchan objects. | |
syndelay | Sets up delays of a group of postsynaptic objects. |
volumeconnect | Connects one group of elements in a volume to another, |
using source and destination element lists and masks. | |
volumedelay | Sets delays of a group of synapses receiving input |
from a list of presynaptic elements in a volume. | |
volumedelay2 | Faster version of volumedelay; requires destination. |
volumeweight | Sets weights of a group of synapses receiving input |
from a list of presynaptic elements in a volume. | |
volumeweight2 | Faster version of volumeweight; requires destination. |
Earlier versions of GENESIS used a different method of establishing synaptic connections by means of axon objects (projections) which hold the delays and weights for each connection. This approach, which is not recommended for new simulations, is illustrated in the Scripts/MultiCell simulation.
The following obsolete routines (available in the Connection Compatibility Library) are used with old-style axonal connections:
Routine | Description |
affdelay | calculates an aggregate delay between elements |
separated by two paths, one fast-conducting and | |
one slow-conducting | |
affweight | Calculates weights of projections along a path which |
decay exponentially in strength with distance. | |
connect | Creates connection between a projection and a segment, |
using connection element of a specified type. | |
cstat | Displays information about connections from a projection. |
delete_connection | Deletes a connection between a projection and segment. |
expsum | Returns exponentially weighted sum of connection |
weights according to the radial distance. | |
expweight | Sets weights of efferents from cell arrays made |
with createmap and connected with region_connect. | |
getconn | Returns axon connection weight and delay. |
normalize_synapses | Sets the cumulative weight of axonal connections to |
a channel to a given or randomly selected value. | |
radialdelay | Sets delays of a group of synapses receiving input |
from a list of presynaptic elements in a plane. | |
region_connect | Connects one group of elements in a plane to another, |
using source and destination element lists and masks. | |
scaleweight | Adjusts the weight of a connection by a scaling factor. |
setconn | Sets axon connection weight and delay. |
showconn | Prints out weight or delay of axonal connection. |
volume_connect | Connects one group of elements in a volume to another, |
using source and destination element lists and masks. | |