Synapse models

The synaptic connection between two neurons is represented as a “synapse type” class. Note that synaptic attributes that belong solely to the post-synaptic neuron, such as the decay of the post-synaptic conductance, are part of the cell type model. The “synapse type” models the synaptic delay, the synaptic weight, and any dynamic behaviour of the synaptic weight, i.e. synaptic plasticity.

As for cell types, PyNN has a library of “standard” synapse types that should give the same behaviour on different simulators, and also supports the use of “native” synapse types, limited to a single simulator.

Standard synapse types

Base class

All standard cell types inherit from the following base class, and have the same methods, as listed below.

class StandardSynapseType(**parameters)[source]

Bases: StandardModelType, BaseSynapseType

parameter_checks = {'weight': <function check_weights>}
get_schema()[source]

Returns the model schema: i.e. a mapping of parameter names to allowed parameter types.

computed_parameters()

Return a list of parameters whose values must be computed from more than one other parameter.

computed_parameters_include(parameter_names)
connection_type = None
default_initial_values = {}
default_parameters = {}
describe(template='modeltype_default.txt', engine='default')

Returns a human-readable description of the cell or synapse type.

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.

extra_parameters = {}
get_native_names(*names)

Return a list of native parameter names for a given model.

classmethod get_parameter_names()

Return the names of the parameters of this model.

classmethod has_parameter(name)

Does this model have a parameter with the given name?

has_presynaptic_components = False
property native_parameters

A ParameterSpace containing parameter names and values translated from the standard PyNN names and units to simulator-specific (“native”) names and units.

reverse_translate(native_parameters)

Translate simulator-specific model parameters to standardized parameters.

scaled_parameters()

Return a list of parameters for which there is a unit change between standard and native parameter values.

simple_parameters()

Return a list of parameters for which there is a one-to-one correspondance between standard and native parameter values.

translate(parameters, copy=True)

Translate standardized model parameters to simulator-specific parameters.

translations = {}

Static/fixed synapses

class StaticSynapse(**parameters)[source]

Bases: StandardSynapseType

Synaptic connection with fixed weight and delay.

default_parameters = {'delay': None, 'weight': 0.0}

Short-term plasticity mechanisms

class TsodyksMarkramSynapse(**parameters)[source]

Bases: StandardSynapseType

Synapse exhibiting facilitation and depression, implemented using the model of Tsodyks, Markram et al.:

Tsodyks, Uziel and Markram (2000) Synchrony Generation in Recurrent Networks with Frequency-Dependent Synapses. Journal of Neuroscience 20:RC50

Note that the time constant of the post-synaptic current is set in the neuron model, not here.

Arguments:
U:

use parameter.

tau_rec:

depression time constant (ms).

tau_facil:

facilitation time constant (ms).

default_parameters = {'U': 0.5, 'delay': None, 'tau_facil': 0.0, 'tau_rec': 100.0, 'weight': 0.0}
default_initial_values = {'u': 0.0}

Long-term plasticity mechanisms

class STDPMechanism(timing_dependence=None, weight_dependence=None, voltage_dependence=None, dendritic_delay_fraction=1.0, weight=0.0, delay=None)[source]

Bases: StandardSynapseType

A specification for an STDP mechanism, combining a weight-dependence, a timing-dependence, and, optionally, a voltage-dependence of the synaptic change.

For point neurons, the synaptic delay d can be interpreted either as occurring purely in the pre-synaptic axon + synaptic cleft, in which case the synaptic plasticity mechanism ‘sees’ the post-synaptic spike immediately and the pre-synaptic spike after a delay d (dendritic_delay_fraction = 0) or as occurring purely in the post- synaptic dendrite, in which case the pre-synaptic spike is seen immediately, and the post-synaptic spike after a delay d (dendritic_delay_fraction = 1), or as having both pre- and post- synaptic components (dendritic_delay_fraction between 0 and 1).

In a future version of the API, we will allow the different components of the synaptic delay to be specified separately in milliseconds.

property model
property possible_models

A list of available synaptic plasticity models for the current configuration (weight dependence, timing dependence, …) in the current simulator.

get_parameter_names()[source]

Return the names of the parameters of this model.

has_parameter(name)[source]

Does this model have a parameter with the given name?

get_schema()[source]

Returns the model schema: i.e. a mapping of parameter names to allowed parameter types.

property parameter_space
property native_parameters

A dictionary containing the combination of parameters from the different components of the STDP model.

describe(template='stdpmechanism_default.txt', engine='default')[source]

Returns a human-readable description of the STDP mechanism.

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.

Weight-dependence components

class STDPWeightDependence(**parameters)[source]

Bases: StandardModelType

Base class for models of STDP weight dependence.

describe(template='modeltype_default.txt', engine='default')

Returns a human-readable description of the cell or synapse type.

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.

class AdditiveWeightDependence(w_min=0.0, w_max=1.0)[source]

Bases: STDPWeightDependence

The amplitude of the weight change is independent of the current weight. If the new weight would be less than w_min it is set to w_min. If it would be greater than w_max it is set to w_max.

Arguments:
w_min:

minimum synaptic weight, in the same units as the weight, i.e. µS or nA.

w_max:

maximum synaptic weight.

default_parameters = {'w_max': 1.0, 'w_min': 0.0}
class MultiplicativeWeightDependence(w_min=0.0, w_max=1.0)[source]

Bases: STDPWeightDependence

The amplitude of the weight change depends on the current weight. For depression, Δw ∝ w - w_min For potentiation, Δw ∝ w_max - w

Arguments:
w_min:

minimum synaptic weight, in the same units as the weight, i.e. µS or nA.

w_max:

maximum synaptic weight.

default_parameters = {'w_max': 1.0, 'w_min': 0.0}
class AdditivePotentiationMultiplicativeDepression(w_min=0.0, w_max=1.0)[source]

Bases: STDPWeightDependence

The amplitude of the weight change depends on the current weight for depression (Δw ∝ w) and is fixed for potentiation.

Arguments:
w_min:

minimum synaptic weight, in the same units as the weight, i.e. µS or nA.

w_max:

maximum synaptic weight.

default_parameters = {'w_max': 1.0, 'w_min': 0.0}
class GutigWeightDependence(w_min=0.0, w_max=1.0, mu_plus=0.5, mu_minus=0.5)[source]

Bases: STDPWeightDependence

The amplitude of the weight change depends on (w_max-w)^mu_plus for potentiation and (w-w_min)^mu_minus for depression.

Arguments:
w_min:

minimum synaptic weight, in the same units as the weight, i.e. µS or nA.

w_max:

maximum synaptic weight.

mu_plus:

see above

mu_minus:

see above

default_parameters = {'mu_minus': 0.5, 'mu_plus': 0.5, 'w_max': 1.0, 'w_min': 0.0}

Timing-dependence components

class STDPTimingDependence(**parameters)[source]

Bases: StandardModelType

Base class for models of STDP timing dependence (triplets, etc)

class SpikePairRule(tau_plus=20.0, tau_minus=20.0, A_plus=0.01, A_minus=0.01)[source]

Bases: STDPTimingDependence

The amplitude of the weight change depends only on the relative timing of spike pairs, not triplets, etc. All possible spike pairs are taken into account (cf Song and Abbott).

Arguments:
tau_plus:

time constant of the positive part of the STDP curve, in milliseconds.

tau_minus

time constant of the negative part of the STDP curve, in milliseconds.

A_plus:

amplitude of the positive part of the STDP curve.

A_minus:

amplitude of the negative part of the STDP curve.

describe(template='modeltype_default.txt', engine='default')

Returns a human-readable description of the cell or synapse type.

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.

default_parameters = {'A_minus': 0.01, 'A_plus': 0.01, 'tau_minus': 20.0, 'tau_plus': 20.0}

Native plasticity models

NineML plasticity models