home
overview
graphs
examples
reference
basics
lab
logic
grouping
populations
environments
animats
synapses
cells

Populations

Populations were introduced briefly in the grouping section. In Catacomb2 a population is a set of objects with similar properties typically laid out in a row or on a grid such that they can be accessed by their position. In terms of the model description, whenever a compound component is used in a model, it is represented as a population. Often it will be a "population" of just one element, but converting it to a true population is as simple as canceling the singleElement flag and setting the size of the population.

Note that, as with everything in the workbench, the emphasis is on economical model description. If you define a population of 100 cells, there will not be a hundred items present anywhere in the workbench. The cells are only created when a network is built from the workbench description.

The existing spike and vector cables can be often be used with populations just as with single elements. However, for defining the connectivity patterns between populations there are two new components - the spike and vector projections.

Spike and vector cables to populations

Load pop1.ccm
show input spikes
show cell activity
run the model

This example shows a population of simple integrate-and-fire cells receiving a predetermined sequence of spikes. The upper recorder just shows the input spikes. The lower recorder shows the membrane potential and spikes for all the cells. The ladder-like symbol to the left of the cell picture indicates that it does not represent just a single cell, but a population of cells containing six rows. There is only one column in this case, but if there were more than one, that would be indicated above the picture.

Ordinary spike cable connect the event sequence generator to the recorder and the population. The sequence generator provides spikes on six different channels and these are delivered separately to the six elements of the population. Likewise, on the recording side, a single vector connection reads the potential from all six cells and delivers it to the second recorder, generating six channels in the recorder display. The spikes are handled similarly, and overlayed on the greyscale membrane potential plot.

Spike projections between populations

Load pop2.ccm
show display
run the model

In this example, there are two populations of six and eight cells respectively. The recorder receives both the input spikes, and the spikes and membrane potential from the second population. The synaptic parameters are such that a single spike is sufficient to fire a cell. The two populations are connected by a 1-1 projection. Because there are more cells in the second population (8 against 6), the last two receive no spikes.

Notice that the spikes in the second population occur about 12 ms after the original spike. This is partly because the cell takes a few ms to reach threshold, but also because the spike projection has a 5 ms delay built in. So, for example, when the first cell of the first population fires, the spike is not received by the first cell of the second population until 5ms later.

All-all connectivity

Load pop3.ccm
show display
run the model

This is very much like the last example, except that the projection is now all-all so any spike from the first population is delivered to all cells in the second population. They therefore all fire together.

Another option for the connectivity is random in which case you should specify the connection probability, p_connect. This is used to decide whether there should be a connection between any given pair of cells - the probability of any particular connection in the resulting network is p_connect, independent of all other connections.

Conductance projections

Load pop4.ccm
show vector input
show cell potentials
run the model

So far, the examples have used spiking projections as would be the case, for example for axonal projections between cell populations. It is sometimes convenient, however, to use continuous electrical connections. These could be used for gap junction networks, or, at a more abstract level to replace combinations of synapses when interfacing a network to external devices.

The example has a 1-1 electrical connection converting vectors presented in turn by a VectorPresentor component into conductance changes in the population of cells. These in turn cause each activated cell to fire a short train of spikes. The projection specifies the conductance and potentials to apply to the cells. The rescale option allows these to be specified in the appropriate units for mapping vectors defined as zeros or ones onto conductances and potentials.