Connectors¶
Base class¶
- class Connector(location_selector=None, safe=True, callback=None)[source]¶
Base class for connectors.
- All connector sub-classes have the following optional keyword arguments:
- location_selector:
TO DO
- 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.
- 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, location_selector=None, safe=True, callback=None)[source]¶
Connects all cells in the presynaptic population to all cells in the postsynaptic population.
Takes any of the standard
Connectoroptional 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(location_selector=None, 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
Connectoroptional arguments.
- class FixedProbabilityConnector(p_connect, allow_self_connections=True, location_selector=None, rng=None, safe=True, callback=None)[source]¶
For each pair of pre-post cells, the connection probability is constant.
Takes any of the standard
Connectoroptional 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
RNGinstance used to evaluate whether connections exist
- class FromListConnector(conn_list, column_names=None, location_selector=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, location_selector=None, 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, location_selector=None, 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, location_selector=None, 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
Connectoroptional 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
RNGinstance used to evaluate which potential connections are created.
- class FixedNumberPostConnector(n, allow_self_connections=True, with_replacement=False, location_selector=None, 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
Connectoroptional 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
RNGinstance used to evaluate which potential connections are created.
- class FixedTotalNumberConnector(n, allow_self_connections=True, with_replacement=True, location_selector=None, rng=None, safe=True, callback=None)[source]¶
- class DistanceDependentProbabilityConnector(d_expression, allow_self_connections=True, location_selector=None, 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
Connectoroptional 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
RNGinstance used to evaluate whether connections exist
- class IndexBasedProbabilityConnector(index_expression, allow_self_connections=True, location_selector=None, 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
Connectoroptional 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
RNGinstance used to evaluate whether connections exist
- class DisplacementDependentProbabilityConnector(disp_function, allow_self_connections=True, location_selector=None, rng=None, safe=True, callback=None)[source]¶
For each pair of pre-post cells, the connection probability depends on the displacement of the two neurons, i.e. on the triplet (dx, dy, dz) where dx is the distance between the x-coordinates of the two neurons, and so on.
Takes any of the standard
Connectoroptional arguments and, in addition:- disp_function:
the right-hand side of a valid Python expression for probability, involving an array named ‘d’ whose first dimension has size 3. e.g. “(d[0] < 3) * (d[1] < 2) * exp(-abs(d[2]))”
- 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
RNGinstance used to evaluate whether connections exist
- class SmallWorldConnector(degree, rewiring, allow_self_connections=True, n_connections=None, location_selector=None, rng=None, safe=True, callback=None)[source]¶
Connect cells so as to create a small-world network.
Takes any of the standard
Connectoroptional 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
RNGinstance used to evaluate which connections are created.