Neuron models¶
PyNN provides a library of neuron models that have been standardized so as to give the same results (within certain limits of numerical accuracy) on different backends. Each model is represented by a “cell type” class.
It is also possible to use simulator-specific neuron models, which we call “native” cell types. Of course, such models will only work with one specific backend simulator.
Note
the development version has some support for specifying cell types using the NineML and NeuroML formats, but this is not yet available in the current release.
Standard cell types¶
Plain integrate-and-fire models:
Integrate-and-fire with adaptation:
Hodgkin-Huxley model
HH_cond_exp
Spike sources (input neurons)
Composed models:
Base class¶
All standard cell types inherit from the following base class, and have the same methods, as listed below.
- class StandardCellType(**parameters)[source]¶
Bases:
StandardModelType
,BaseCellType
Base class for standardized cell model classes.
- get_schema()¶
Returns the model schema: i.e. a mapping of parameter names to allowed parameter types.
- classmethod get_parameter_names()¶
Return the names of the parameters of this model.
- get_native_names(*names)¶
Return a list of native parameter names for a given model.
- classmethod has_parameter(name)¶
Does this model have a parameter with the given name?
- translate(parameters, copy=True)¶
Translate standardized model parameters to simulator-specific parameters.
- reverse_translate(native_parameters)¶
Translate simulator-specific model parameters to standardized parameters.
- simple_parameters()¶
Return a list of parameters for which there is a one-to-one correspondance between standard and native parameter values.
- scaled_parameters()¶
Return a list of parameters for which there is a unit change between standard and native parameter values.
- computed_parameters()¶
Return a list of parameters whose values must be computed from more than one other parameter.
- 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.
Simple integrate-and-fire neurons¶
- class IF_cond_exp(**parameters)[source]¶
Bases:
StandardCellType
Leaky integrate and fire model with fixed threshold and exponentially-decaying post-synaptic conductance.
- injectable = True¶
- conductance_based = True¶
- default_parameters = {'cm': 1.0, 'e_rev_E': 0.0, 'e_rev_I': -70.0, 'i_offset': 0.0, 'tau_m': 20.0, 'tau_refrac': 0.1, 'tau_syn_E': 5.0, 'tau_syn_I': 5.0, 'v_reset': -65.0, 'v_rest': -65.0, 'v_thresh': -50.0}¶
- recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh']¶
- default_initial_values = {'gsyn_exc': 0.0, 'gsyn_inh': 0.0, 'v': -65.0}¶
- units = {'cm': 'nF', 'e_rev_E': 'mV', 'e_rev_I': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', 'i_offset': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_thresh': 'mV'}¶
- class IF_cond_alpha(**parameters)[source]¶
Bases:
StandardCellType
Leaky integrate and fire model with fixed threshold and alpha-function- shaped post-synaptic conductance.
- injectable = True¶
- conductance_based = True¶
- default_parameters = {'cm': 1.0, 'e_rev_E': 0.0, 'e_rev_I': -70.0, 'i_offset': 0.0, 'tau_m': 20.0, 'tau_refrac': 0.1, 'tau_syn_E': 0.3, 'tau_syn_I': 0.5, 'v_reset': -65.0, 'v_rest': -65.0, 'v_thresh': -50.0}¶
- recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh']¶
- default_initial_values = {'gsyn_exc': 0.0, 'gsyn_inh': 0.0, 'v': -65.0}¶
- units = {'cm': 'nF', 'e_rev_E': 'mV', 'e_rev_I': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', 'i_offset': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_thresh': 'mV'}¶
- class IF_curr_exp(**parameters)[source]¶
Bases:
StandardCellType
Leaky integrate and fire model with fixed threshold and decaying-exponential post-synaptic current. (Separate synaptic currents for excitatory and inhibitory synapses.
- injectable = True¶
- conductance_based = False¶
- default_parameters = {'cm': 1.0, 'i_offset': 0.0, 'tau_m': 20.0, 'tau_refrac': 0.1, 'tau_syn_E': 5.0, 'tau_syn_I': 5.0, 'v_reset': -65.0, 'v_rest': -65.0, 'v_thresh': -50.0}¶
- recordable = ['spikes', 'v']¶
- conductance_based = False¶
- default_initial_values = {'isyn_exc': 0.0, 'isyn_inh': 0.0, 'v': -65.0}¶
- units = {'cm': 'nF', 'i_offset': 'nA', 'isyn_exc': 'nA', 'isyn_inh': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_thresh': 'mV'}¶
- class IF_curr_alpha(**parameters)[source]¶
Bases:
StandardCellType
Leaky integrate and fire model with fixed threshold and alpha-function- shaped post-synaptic current.
- injectable = True¶
- conductance_based = False¶
- default_parameters = {'cm': 1.0, 'i_offset': 0.0, 'tau_m': 20.0, 'tau_refrac': 0.1, 'tau_syn_E': 0.5, 'tau_syn_I': 0.5, 'v_reset': -65.0, 'v_rest': -65.0, 'v_thresh': -50.0}¶
- recordable = ['spikes', 'v']¶
- conductance_based = False¶
- default_initial_values = {'isyn_exc': 0.0, 'isyn_inh': 0.0, 'v': -65.0}¶
- units = {'cm': 'nF', 'i_offset': 'nA', 'isyn_exc': 'nA', 'isyn_inh': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_thresh': 'mV'}¶
Integrate-and-fire neurons with adaptation¶
- class Izhikevich(**parameters)[source]¶
Bases:
StandardCellType
Izhikevich spiking model with a quadratic non-linearity according to:
Izhikevich (2003), IEEE transactions on neural networks, 14(6)
dv/dt = 0.04*v^2 + 5*v + 140 - u + I du/dt = a*(b*v - u)
Synapses are modeled as Dirac delta currents (voltage step), as in the original model
NOTE: name should probably be changed to match standard nomenclature, e.g. QIF_cond_delta_etc_etc, although keeping “Izhikevich” as an alias would be good
- injectable = True¶
- conductance_based = False¶
- default_parameters = {'a': 0.02, 'b': 0.2, 'c': -65.0, 'd': 2.0, 'i_offset': 0.0}¶
- recordable = ['spikes', 'v', 'u']¶
- conductance_based = False¶
- voltage_based_synapses = True¶
- default_initial_values = {'u': -14.0, 'v': -70.0}¶
- units = {'a': '/ms', 'b': '/ms', 'c': 'mV', 'd': 'mV/ms', 'i_offset': 'nA', 'u': 'mV/ms', 'v': 'mV'}¶
- class EIF_cond_exp_isfa_ista(**parameters)[source]¶
Bases:
StandardCellType
Exponential integrate and fire neuron with spike triggered and sub-threshold adaptation currents (isfa, ista reps.) according to:
Brette R and Gerstner W (2005) Adaptive Exponential Integrate-and-Fire Model as an Effective Description of Neuronal Activity. J Neurophysiol 94:3637-3642
See also: IF_cond_exp_gsfa_grr, EIF_cond_alpha_isfa_ista
- injectable = True¶
- conductance_based = True¶
- default_parameters = {'a': 4.0, 'b': 0.0805, 'cm': 0.281, 'delta_T': 2.0, 'e_rev_E': 0.0, 'e_rev_I': -80.0, 'i_offset': 0.0, 'tau_m': 9.3667, 'tau_refrac': 0.1, 'tau_syn_E': 5.0, 'tau_syn_I': 5.0, 'tau_w': 144.0, 'v_reset': -70.6, 'v_rest': -70.6, 'v_spike': -40.0, 'v_thresh': -50.4}¶
- recordable = ['spikes', 'v', 'w', 'gsyn_exc', 'gsyn_inh']¶
- default_initial_values = {'gsyn_exc': 0.0, 'gsyn_inh': 0.0, 'v': -70.6, 'w': 0.0}¶
- units = {'a': 'nS', 'b': 'nA', 'cm': 'nF', 'delta_T': 'mV', 'e_rev_E': 'mV', 'e_rev_I': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', 'i_offset': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'tau_w': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_spike': 'mV', 'v_thresh': 'mV', 'w': 'nA'}¶
- class EIF_cond_alpha_isfa_ista(**parameters)[source]¶
Bases:
StandardCellType
Exponential integrate and fire neuron with spike triggered and sub-threshold adaptation currents (isfa, ista reps.) according to:
Brette R and Gerstner W (2005) Adaptive Exponential Integrate-and-Fire Model as an Effective Description of Neuronal Activity. J Neurophysiol 94:3637-3642
See also: IF_cond_exp_gsfa_grr, EIF_cond_exp_isfa_ista
- injectable = True¶
- conductance_based = True¶
- default_parameters = {'a': 4.0, 'b': 0.0805, 'cm': 0.281, 'delta_T': 2.0, 'e_rev_E': 0.0, 'e_rev_I': -80.0, 'i_offset': 0.0, 'tau_m': 9.3667, 'tau_refrac': 0.1, 'tau_syn_E': 5.0, 'tau_syn_I': 5.0, 'tau_w': 144.0, 'v_reset': -70.6, 'v_rest': -70.6, 'v_spike': -40.0, 'v_thresh': -50.4}¶
- recordable = ['spikes', 'v', 'w', 'gsyn_exc', 'gsyn_inh']¶
- default_initial_values = {'gsyn_exc': 0.0, 'gsyn_inh': 0.0, 'v': -70.6, 'w': 0.0}¶
- units = {'a': 'nS', 'b': 'nA', 'cm': 'nF', 'delta_T': 'mV', 'e_rev_E': 'mV', 'e_rev_I': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', 'i_offset': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'tau_w': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_spike': 'mV', 'v_thresh': 'mV', 'w': 'nA'}¶
- class IF_cond_exp_gsfa_grr(**parameters)[source]¶
Bases:
StandardCellType
Linear leaky integrate and fire model with fixed threshold, decaying-exponential post-synaptic conductance, conductance based spike-frequency adaptation, and a conductance-based relative refractory mechanism.
See: Muller et al (2007) Spike-frequency adapting neural ensembles: Beyond mean-adaptation and renewal theories. Neural Computation 19: 2958-3010.
See also: EIF_cond_alpha_isfa_ista
- injectable = True¶
- conductance_based = True¶
- default_parameters = {'cm': 1.0, 'e_rev_E': 0.0, 'e_rev_I': -70.0, 'e_rev_rr': -75.0, 'e_rev_sfa': -75.0, 'i_offset': 0.0, 'q_rr': 3000.0, 'q_sfa': 15.0, 'tau_m': 20.0, 'tau_refrac': 0.1, 'tau_rr': 2.0, 'tau_sfa': 100.0, 'tau_syn_E': 5.0, 'tau_syn_I': 5.0, 'v_reset': -65.0, 'v_rest': -65.0, 'v_thresh': -50.0}¶
- recordable = ['spikes', 'v', 'g_r', 'g_s', 'gsyn_exc', 'gsyn_inh']¶
- default_initial_values = {'g_r': 0.0, 'g_s': 0.0, 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, 'v': -65.0}¶
- units = {'cm': 'nF', 'e_rev_E': 'mV', 'e_rev_I': 'mV', 'e_rev_rr': 'mV', 'e_rev_sfa': 'mV', 'g_r': 'nS', 'g_s': 'nS', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', 'i_offset': 'nA', 'q_rr': 'nS', 'q_sfa': 'nS', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_rr': 'ms', 'tau_sfa': 'ms', 'tau_syn_E': 'ms', 'tau_syn_I': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_thresh': 'mV'}¶
Spike sources¶
- class SpikeSourcePoisson(**parameters)[source]¶
Bases:
StandardCellType
Spike source, generating spikes according to a Poisson process.
- injectable = False¶
- conductance_based = True¶
- default_parameters = {'duration': 10000000000.0, 'rate': 1.0, 'start': 0.0}¶
- recordable = ['spikes']¶
- injectable = False¶
- receptor_types = ()¶
- units = {'duration': 'ms', 'rate': 'Hz', 'start': 'ms'}¶
- class SpikeSourceArray(**parameters)[source]¶
Bases:
StandardCellType
Spike source generating spikes at the times given in the spike_times array.
- injectable = False¶
- conductance_based = True¶
- default_parameters = {'spike_times': Sequence([])}¶
- recordable = ['spikes']¶
- injectable = False¶
- receptor_types = ()¶
- units = {'spike_times': 'ms'}¶
- class SpikeSourceInhGamma(**parameters)[source]¶
Bases:
StandardCellType
Spike source, generating realizations of an inhomogeneous gamma process, employing the thinning method.
See: Muller et al (2007) Spike-frequency adapting neural ensembles: Beyond mean-adaptation and renewal theories. Neural Computation 19: 2958-3010.
- injectable = False¶
- conductance_based = True¶
- default_parameters = {'a': Sequence([1.]), 'b': Sequence([1.]), 'duration': 10000000000.0, 'start': 0.0, 'tbins': Sequence([0.])}¶
- recordable = ['spikes']¶
- injectable = False¶
- receptor_types = ()¶
- units = {'a': 'dimensionless', 'b': 's', 'duration': 'ms', 'start': 'ms', 'tbins': 'ms'}¶
Composed models¶
- class PointNeuron(neuron, **post_synaptic_receptors)[source]¶
Bases:
StandardCellType
- injectable = True¶
- conductance_based¶
- property receptor_types¶
Built-in immutable sequence.
If no argument is given, the constructor returns an empty tuple. If iterable is specified the tuple is initialized from iterable’s items.
If the argument is a tuple, the return value is the same object.
- property conductance_based¶
bool(x) -> bool
Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
- property recordable¶
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
- property scale_factors¶
- property units¶
- property default_initial_values¶
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object’s
(key, value) pairs
- dict(iterable) -> new dictionary initialized as if via:
d = {} for k, v in iterable:
d[k] = v
- dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list. For example: dict(one=1, two=2)
- simple_parameters()[source]¶
Return a list of parameters for which there is a one-to-one correspondance between standard and native parameter values.
- scaled_parameters()[source]¶
Return a list of parameters for which there is a unit change between standard and native parameter values.
- class AdExp(**parameters)[source]¶
Bases:
StandardCellTypeComponent
Exponential integrate and fire neuron with spike triggered and sub-threshold adaptation currents according to:
Brette R and Gerstner W (2005) Adaptive Exponential Integrate-and-Fire Model as an Effective Description of Neuronal Activity. J Neurophysiol 94:3637-3642
- default_parameters = {'a': 4.0, 'b': 0.0805, 'cm': 0.281, 'delta_T': 2.0, 'i_offset': 0.0, 'tau_m': 9.3667, 'tau_refrac': 0.1, 'tau_w': 144.0, 'v_reset': -70.6, 'v_rest': -70.6, 'v_spike': -40.0, 'v_thresh': -50.4}¶
- recordable = ['spikes', 'v', 'w']¶
- injectable = True¶
- default_initial_values = {'v': -70.6, 'w': 0.0}¶
- units = {'a': 'nS', 'b': 'nA', 'cm': 'nF', 'delta_T': 'mV', 'i_offset': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'tau_w': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_spike': 'mV', 'v_thresh': 'mV', 'w': 'nA'}¶
- class LIF(**parameters)[source]¶
Bases:
StandardCellTypeComponent
Leaky integrate and fire neuron
- default_parameters = {'cm': 1.0, 'i_offset': 0.0, 'tau_m': 20.0, 'tau_refrac': 0.1, 'v_reset': -65.0, 'v_rest': -65.0, 'v_thresh': -50.0}¶
- recordable = ['spikes', 'v']¶
- injectable = True¶
- default_initial_values = {'v': -65.0}¶
- units = {'cm': 'nF', 'i_offset': 'nA', 'tau_m': 'ms', 'tau_refrac': 'ms', 'v': 'mV', 'v_reset': 'mV', 'v_rest': 'mV', 'v_thresh': 'mV', 'w': 'nA'}¶
- class CurrExpPostSynapticResponse(**parameters)[source]¶
Bases:
StandardPostSynapticResponse
Post-synaptic response consisting of a step increase in synaptic current followed by exponential decay.
- default_parameters = {'locations': 0.5, 'tau_syn': 5.0}¶
- default_initial_values = {'isyn': 0.0}¶
- units = {'isyn': 'nA'}¶
- conductance_based = False¶
- class CondExpPostSynapticResponse(**parameters)[source]¶
Bases:
StandardPostSynapticResponse
Post-synaptic response consisting of a step increase in synaptic conductance followed by exponential decay.
- default_parameters = {'e_syn': 0.0, 'locations': 0.5, 'tau_syn': 5.0}¶
- default_initial_values = {'gsyn': 0.0}¶
- units = {'gsyn': 'uS'}¶
- conductance_based = True¶
- class CondAlphaPostSynapticResponse(**parameters)[source]¶
Bases:
StandardPostSynapticResponse
Post-synaptic response consisting of an “alpha-function”-shaped synaptic conductance:
g(t) = t * exp(1 - t/tau_syn)
- (see A. Roth and M. C. W. van Rossum (2013) Modeling Synapses.
In: Computational Modeling Methods for Neuroscientists, MIT Press 2013, pp 139-160)
- default_parameters = {'e_syn': 0.0, 'locations': 0.5, 'tau_syn': 5.0}¶
- default_initial_values = {'gsyn': 0.0}¶
- units = {'gsyn': 'uS'}¶
- conductance_based = True¶
- class CondBetaPostSynapticResponse(**parameters)[source]¶
Bases:
StandardPostSynapticResponse
Post-synaptic response consisting of an beta-function-shaped synaptic conductance.
- default_parameters = {'e_syn': 0.0, 'locations': 0.5, 'tau_decay': 1.7, 'tau_rise': 0.2}¶
- default_initial_values = {'gsyn': 0.0}¶
- units = {'gsyn': 'uS'}¶
- conductance_based = True¶
Native cell types¶
Todo
WRITE THIS PART