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_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}¶