Connectors

Base class

class Connector(safe=True, callback=None)[source]

Base class for connectors.

All connector sub-classes have the following optional keyword arguments:
safe:
if True, check that weights and delays have valid values. If False, this check is skipped.
callback:
a function that will be called with the fractional progress of the connection routine. An example would be progress_bar.set_level.
connect(projection)[source]
get_parameters()[source]
describe(template='connector_default.txt', engine='default')[source]

Returns a human-readable description of the connection method.

The output may be customized by specifying a different template togther with an associated template engine (see pyNN.descriptions).

If template is None, then a dictionary containing the template context will be returned.

Built-in connectors

class AllToAllConnector(allow_self_connections=True, safe=True, callback=None)[source]

Connects all cells in the presynaptic population to all cells in the postsynaptic population.

Takes any of the standard Connector optional arguments and, in addition:

allow_self_connections:
if the connector is used to connect a Population to itself, this flag determines whether a neuron is allowed to connect to itself, or only to other neurons in the Population.
class OneToOneConnector(safe=True, callback=None)[source]

Where the pre- and postsynaptic populations have the same size, connect cell i in the presynaptic population to cell i in the postsynaptic population for all i.

Takes any of the standard Connector optional arguments.

class FixedProbabilityConnector(p_connect, allow_self_connections=True, rng=None, safe=True, callback=None)[source]

For each pair of pre-post cells, the connection probability is constant.

Takes any of the standard Connector optional arguments and, in addition:

p_connect:
a float between zero and one. Each potential connection is created with this probability.
allow_self_connections:
if the connector is used to connect a Population to itself, this flag determines whether a neuron is allowed to connect to itself, or only to other neurons in the Population.
rng:
an RNG instance used to evaluate whether connections exist
class FromListConnector(conn_list, column_names=None, safe=True, callback=None)[source]

Make connections according to a list.

Arguments:
conn_list:
a list of tuples, one tuple for each connection. Each tuple should contain: (pre_idx, post_idx, p1, p2, …, pn) where pre_idx is the index (i.e. order in the Population, not the ID) of the presynaptic neuron, post_idx is the index of the postsynaptic neuron, and p1, p2, etc. are the synaptic parameters (e.g. weight, delay, plasticity parameters).
column_names:
the names of the parameters p1, p2, etc. If not provided, it is assumed the parameters are ‘weight’, ‘delay’ (for backwards compatibility). This should be specified using a tuple.
safe:
if True, check that weights and delays have valid values. If False, this check is skipped.
callback:
if True, display a progress bar on the terminal.
class FromFileConnector(file, distributed=False, safe=True, callback=None)[source]

Make connections according to a list read from a file.

Arguments:
file:

either an open file object or the filename of a file containing a list of connections, in the format required by FromListConnector. Column headers, if included in the file, must be specified using a list or tuple, e.g.:

# columns = ["i", "j", "weight", "delay", "U", "tau_rec"]

Note that the header requires # at the beginning of the line.

distributed:
if this is True, then each node will read connections from a file called filename.x, where x is the MPI rank. This speeds up loading connections for distributed simulations.
safe:
if True, check that weights and delays have valid values. If False, this check is skipped.
callback:
if True, display a progress bar on the terminal.
class ArrayConnector(array, safe=True, callback=None)[source]

Provide an explicit boolean connection matrix, with shape (m, n) where m is the size of the presynaptic population and n that of the postsynaptic population.

class FixedNumberPreConnector(n, allow_self_connections=True, with_replacement=False, rng=None, safe=True, callback=None)[source]

Each post-synaptic neuron is connected to exactly n pre-synaptic neurons chosen at random.

The sampling behaviour is controlled by the with_replacement argument.

“With replacement” means that each pre-synaptic neuron is chosen from the entire population. There is always therefore a possibility of multiple connections between a given pair of neurons.

“Without replacement” means that once a neuron has been selected, it cannot be selected again until the entire population has been selected. This means that if n is less than the size of the pre-synaptic population, there are no multiple connections. If n is greater than the size of the pre- synaptic population, all possible single connections are made before starting to add duplicate connections.

Takes any of the standard Connector optional arguments and, in addition:

n:
either a positive integer, or a RandomDistribution that produces positive integers. If n is a RandomDistribution, then the number of pre-synaptic neurons is drawn from this distribution for each post-synaptic neuron.
with_replacement:
if True, the selection of neurons to connect is made from the entire population. If False, once a neuron is selected it cannot be selected again until the entire population has been connected.
allow_self_connections:
if the connector is used to connect a Population to itself, this flag determines whether a neuron is allowed to connect to itself, or only to other neurons in the Population.
rng:
an RNG instance used to evaluate which potential connections are created.
class FixedNumberPostConnector(n, allow_self_connections=True, with_replacement=False, rng=None, safe=True, callback=None)[source]

Each pre-synaptic neuron is connected to exactly n post-synaptic neurons chosen at random.

The sampling behaviour is controlled by the with_replacement argument.

“With replacement” means that each post-synaptic neuron is chosen from the entire population. There is always therefore a possibility of multiple connections between a given pair of neurons.

“Without replacement” means that once a neuron has been selected, it cannot be selected again until the entire population has been selected. This means that if n is less than the size of the post-synaptic population, there are no multiple connections. If n is greater than the size of the post- synaptic population, all possible single connections are made before starting to add duplicate connections.

Takes any of the standard Connector optional arguments and, in addition:

n:
either a positive integer, or a RandomDistribution that produces positive integers. If n is a RandomDistribution, then the number of post-synaptic neurons is drawn from this distribution for each pre-synaptic neuron.
with_replacement:
if True, the selection of neurons to connect is made from the entire population. If False, once a neuron is selected it cannot be selected again until the entire population has been connected.
allow_self_connections:
if the connector is used to connect a Population to itself, this flag determines whether a neuron is allowed to connect to itself, or only to other neurons in the Population.
rng:
an RNG instance used to evaluate which potential connections are created.
class FixedTotalNumberConnector(n, allow_self_connections=True, with_replacement=True, rng=None, safe=True, callback=None)[source]
class DistanceDependentProbabilityConnector(d_expression, allow_self_connections=True, rng=None, safe=True, callback=None)[source]

For each pair of pre-post cells, the connection probability depends on distance.

Takes any of the standard Connector optional arguments and, in addition:

d_expression:
the right-hand side of a valid Python expression for probability, involving ‘d’, e.g. “exp(-abs(d))”, or “d<3”
allow_self_connections:
if the connector is used to connect a Population to itself, this flag determines whether a neuron is allowed to connect to itself, or only to other neurons in the Population.
rng:
an RNG instance used to evaluate whether connections exist
class IndexBasedProbabilityConnector(index_expression, allow_self_connections=True, rng=None, safe=True, callback=None)[source]

For each pair of pre-post cells, the connection probability depends on an arbitrary functions that takes the indices of the pre and post populations.

Takes any of the standard Connector optional arguments and, in addition:

index_expression:
a function that takes the two cell indices as inputs and calculates the probability matrix from it.
allow_self_connections:
if the connector is used to connect a Population to itself, this flag determines whether a neuron is allowed to connect to itself, or only to other neurons in the Population.
rng:
an RNG instance used to evaluate whether connections exist
class DisplacementDependentProbabilityConnector(disp_function, allow_self_connections=True, rng=None, safe=True, callback=None)[source]
class SmallWorldConnector(degree, rewiring, allow_self_connections=True, n_connections=None, rng=None, safe=True, callback=None)[source]

Connect cells so as to create a small-world network.

Takes any of the standard Connector optional arguments and, in addition:

degree:
the region length where nodes will be connected locally.
rewiring:
the probability of rewiring each edge.
allow_self_connections:
if the connector is used to connect a Population to itself, this flag determines whether a neuron is allowed to connect to itself, or only to other neurons in the Population.
n_connections:
if specified, the number of efferent synaptic connections per neuron.
rng:
an RNG instance used to evaluate which connections are created.
class CSAConnector(cset, safe=True, callback=None)[source]

Use the Connection Set Algebra (Djurfeldt, 2012) to connect cells.

Takes any of the standard Connector optional arguments and, in addition:

cset:
a connection set object.
class CloneConnector(reference_projection, safe=True, callback=None)[source]

Connects cells with the same connectivity pattern as a previous projection.