Source code for pyNN.standardmodels.cells

"""
Definition of default parameters (and hence, standard parameter names) for
standard cell models.

Plain integrate-and-fire models:
    IF_curr_exp
    IF_curr_alpha
    IF_cond_exp
    IF_cond_alpha

Integrate-and-fire with adaptation:
    IF_cond_exp_gsfa_grr
    EIF_cond_alpha_isfa_ista
    EIF_cond_exp_isfa_ista

Integrate-and-fire model for use with the FACETS hardware
    IF_facets_hardware1

Hodgkin-Huxley model
    HH_cond_exp

Spike sources (input neurons)
    SpikeSourcePoisson
    SpikeSourceArray
    SpikeSourceInhGamma

:copyright: Copyright 2006-2015 by the PyNN team, see AUTHORS.
:license: CeCILL, see LICENSE for details.
"""

from pyNN.standardmodels import StandardCellType
from pyNN.parameters import Sequence


[docs]class IF_curr_alpha(StandardCellType): """ Leaky integrate and fire model with fixed threshold and alpha-function- shaped post-synaptic current. """ default_parameters = { 'v_rest' : -65.0, # Resting membrane potential in mV. 'cm' : 1.0, # Capacity of the membrane in nF 'tau_m' : 20.0, # Membrane time constant in ms. 'tau_refrac' : 0.1, # Duration of refractory period in ms. 'tau_syn_E' : 0.5, # Rise time of the excitatory synaptic alpha function in ms. 'tau_syn_I' : 0.5, # Rise time of the inhibitory synaptic alpha function in ms. 'i_offset' : 0.0, # Offset current in nA 'v_reset' : -65.0, # Reset potential after a spike in mV. 'v_thresh' : -50.0, # Spike threshold in mV. } recordable = ['spikes', 'v'] conductance_based = False default_initial_values = { 'v': -65.0, # 'v_rest', 'isyn_exc': 0.0, 'isyn_inh': 0.0, } units = { 'v': 'mV', 'isyn_exc': 'nA', 'isyn_inh': 'nA', }
[docs]class IF_curr_exp(StandardCellType): """ Leaky integrate and fire model with fixed threshold and decaying-exponential post-synaptic current. (Separate synaptic currents for excitatory and inhibitory synapses. """ default_parameters = { 'v_rest' : -65.0, # Resting membrane potential in mV. 'cm' : 1.0, # Capacity of the membrane in nF 'tau_m' : 20.0, # Membrane time constant in ms. 'tau_refrac' : 0.1, # Duration of refractory period in ms. 'tau_syn_E' : 5.0, # Decay time of excitatory synaptic current in ms. 'tau_syn_I' : 5.0, # Decay time of inhibitory synaptic current in ms. 'i_offset' : 0.0, # Offset current in nA 'v_reset' : -65.0, # Reset potential after a spike in mV. 'v_thresh' : -50.0, # Spike threshold in mV. } recordable = ['spikes', 'v'] conductance_based = False default_initial_values = { 'v': -65.0, # 'v_rest', 'isyn_exc': 0.0, 'isyn_inh': 0.0, } units = { 'v': 'mV', 'isyn_exc': 'nA', 'isyn_inh': 'nA', }
[docs]class IF_cond_alpha(StandardCellType): """ Leaky integrate and fire model with fixed threshold and alpha-function- shaped post-synaptic conductance. """ default_parameters = { 'v_rest' : -65.0, # Resting membrane potential in mV. 'cm' : 1.0, # Capacity of the membrane in nF 'tau_m' : 20.0, # Membrane time constant in ms. 'tau_refrac' : 0.1, # Duration of refractory period in ms. 'tau_syn_E' : 0.3, # Rise time of the excitatory synaptic alpha function in ms. 'tau_syn_I' : 0.5, # Rise time of the inhibitory synaptic alpha function in ms. 'e_rev_E' : 0.0, # Reversal potential for excitatory input in mV 'e_rev_I' : -70.0, # Reversal potential for inhibitory input in mV 'v_thresh' : -50.0, # Spike threshold in mV. 'v_reset' : -65.0, # Reset potential after a spike in mV. 'i_offset' : 0.0, # Offset current in nA } recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh'] default_initial_values = { 'v': -65.0, # 'v_rest', 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, } units = { 'v': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', }
[docs]class IF_cond_exp(StandardCellType): """ Leaky integrate and fire model with fixed threshold and exponentially-decaying post-synaptic conductance. """ default_parameters = { 'v_rest' : -65.0, # Resting membrane potential in mV. 'cm' : 1.0, # Capacity of the membrane in nF 'tau_m' : 20.0, # Membrane time constant in ms. 'tau_refrac' : 0.1, # Duration of refractory period in ms. 'tau_syn_E' : 5.0, # Decay time of the excitatory synaptic conductance in ms. 'tau_syn_I' : 5.0, # Decay time of the inhibitory synaptic conductance in ms. 'e_rev_E' : 0.0, # Reversal potential for excitatory input in mV 'e_rev_I' : -70.0, # Reversal potential for inhibitory input in mV 'v_thresh' : -50.0, # Spike threshold in mV. 'v_reset' : -65.0, # Reset potential after a spike in mV. 'i_offset' : 0.0, # Offset current in nA } recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh'] default_initial_values = { 'v': -65.0, # 'v_rest', 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, } units = { 'v': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', }
[docs]class IF_cond_exp_gsfa_grr(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 """ default_parameters = { 'v_rest' : -65.0, # Resting membrane potential in mV. 'cm' : 1.0, # Capacity of the membrane in nF 'tau_m' : 20.0, # Membrane time constant in ms. 'tau_refrac' : 0.1, # Duration of refractory period in ms. 'tau_syn_E' : 5.0, # Decay time of the excitatory synaptic conductance in ms. 'tau_syn_I' : 5.0, # Decay time of the inhibitory synaptic conductance in ms. 'e_rev_E' : 0.0, # Reversal potential for excitatory input in mV 'e_rev_I' : -70.0, # Reversal potential for inhibitory input in mV 'v_thresh' : -50.0, # Spike threshold in mV. 'v_reset' : -65.0, # Reset potential after a spike in mV. 'i_offset' : 0.0, # Offset current in nA 'tau_sfa' : 100.0, # Time constant of spike-frequency adaptation in ms 'e_rev_sfa' : -75.0, # spike-frequency adaptation conductance reversal potential in mV 'q_sfa' : 15.0, # Quantal spike-frequency adaptation conductance increase in nS 'tau_rr' : 2.0, # Time constant of the relative refractory mechanism in ms 'e_rev_rr' : -75.0, # relative refractory mechanism conductance reversal potential in mV 'q_rr' : 3000.0 # Quantal relative refractory conductance increase in nS } recordable = ['spikes', 'v', 'g_r', 'g_s', 'gsyn_exc', 'gsyn_inh'] default_initial_values = { 'v': -65.0, # 'v_rest', 'g_r': 0.0, 'g_s': 0.0, 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, } units = { 'v': 'mV', 'g_r': 'nS', 'g_s': 'nS', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', }
class IF_facets_hardware1(StandardCellType): """ Leaky integrate and fire model with conductance-based synapses and fixed threshold as it is resembled by the FACETS Hardware Stage 1. The following parameters can be assumed for a corresponding software simulation: cm = 0.2 nF, tau_refrac = 1.0 ms, e_rev_E = 0.0 mV. For further details regarding the hardware model see the FACETS-internal Wiki: https://facets.kip.uni-heidelberg.de/private/wiki/index.php/WP7_NNM """ default_parameters = { 'g_leak' : 40.0, # nS 'tau_syn_E' : 30.0, # ms 'tau_syn_I' : 30.0, # ms 'v_reset' : -80.0, # mV 'e_rev_I' : -80.0, # mV, 'v_rest' : -65.0, # mV 'v_thresh' : -55.0 # mV } recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh'] default_initial_values = { 'v': -65.0, # 'v_rest', 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, } units = { 'v': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', } class HH_cond_exp(StandardCellType): """Single-compartment Hodgkin-Huxley model. Reference: Traub & Miles, Neuronal Networks of the Hippocampus, Cambridge, 1991. """ default_parameters = { 'gbar_Na' : 20.0, # uS 'gbar_K' : 6.0, # uS 'g_leak' : 0.01, # uS 'cm' : 0.2, # nF 'v_offset' : -63.0, # mV 'e_rev_Na' : 50.0, 'e_rev_K' : -90.0, 'e_rev_leak': -65.0, 'e_rev_E' : 0.0, 'e_rev_I' : -80.0, 'tau_syn_E' : 0.2, # ms 'tau_syn_I' : 2.0, 'i_offset' : 0.0, # nA } recordable = ['spikes', 'v', 'gsyn_exc', 'gsyn_inh'] receptor_types = ('excitatory', 'inhibitory', 'source_section.gap') default_initial_values = { 'v': -65.0, # 'v_rest', 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, } units = { 'v': 'mV', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', }
[docs]class EIF_cond_alpha_isfa_ista(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 """ default_parameters = { 'cm' : 0.281, # Capacitance of the membrane in nF 'tau_refrac': 0.1, # Duration of refractory period in ms. 'v_spike' : -40.0, # Spike detection threshold in mV. 'v_reset' : -70.6, # Reset value for V_m after a spike. In mV. 'v_rest' : -70.6, # Resting membrane potential (Leak reversal potential) in mV. 'tau_m' : 9.3667, # Membrane time constant in ms 'i_offset' : 0.0, # Offset current in nA 'a' : 4.0, # Subthreshold adaptation conductance in nS. 'b' : 0.0805, # Spike-triggered adaptation in nA 'delta_T' : 2.0, # Slope factor in mV 'tau_w' : 144.0, # Adaptation time constant in ms 'v_thresh' : -50.4, # Spike initiation threshold in mV 'e_rev_E' : 0.0, # Excitatory reversal potential in mV. 'tau_syn_E' : 5.0, # Rise time of excitatory synaptic conductance in ms (alpha function). 'e_rev_I' : -80.0, # Inhibitory reversal potential in mV. 'tau_syn_I' : 5.0, # Rise time of the inhibitory synaptic conductance in ms (alpha function). } recordable = ['spikes', 'v', 'w', 'gsyn_exc', 'gsyn_inh'] default_initial_values = { 'v': -70.6, # 'v_rest', 'w': 0.0, 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, } units = { 'v': 'mV', 'w': 'nA', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', }
[docs]class EIF_cond_exp_isfa_ista(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 """ default_parameters = { 'cm' : 0.281, # Capacitance of the membrane in nF 'tau_refrac': 0.1, # Duration of refractory period in ms. 'v_spike' : -40.0, # Spike detection threshold in mV. 'v_reset' : -70.6, # Reset value for V_m after a spike. In mV. 'v_rest' : -70.6, # Resting membrane potential (Leak reversal potential) in mV. 'tau_m' : 9.3667, # Membrane time constant in ms 'i_offset' : 0.0, # Offset current in nA 'a' : 4.0, # Subthreshold adaptation conductance in nS. 'b' : 0.0805, # Spike-triggered adaptation in nA 'delta_T' : 2.0, # Slope factor in mV 'tau_w' : 144.0, # Adaptation time constant in ms 'v_thresh' : -50.4, # Spike initiation threshold in mV 'e_rev_E' : 0.0, # Excitatory reversal potential in mV. 'tau_syn_E' : 5.0, # Decay time constant of excitatory synaptic conductance in ms. 'e_rev_I' : -80.0, # Inhibitory reversal potential in mV. 'tau_syn_I' : 5.0, # Decay time constant of the inhibitory synaptic conductance in ms. } recordable = ['spikes', 'v', 'w', 'gsyn_exc', 'gsyn_inh'] default_initial_values = { 'v': -70.6, # 'v_rest', 'w': 0.0, 'gsyn_exc': 0.0, 'gsyn_inh': 0.0, } units = { 'v': 'mV', 'w': 'nA', 'gsyn_exc': 'uS', 'gsyn_inh': 'uS', }
[docs]class Izhikevich(StandardCellType): """ Izhikevich spiking model with a quadratic non-linearity according to: E. 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 """ default_parameters = { 'a' : 0.02, # (/ms) 'b' : 0.2, # (/ms) 'c' : -65.0, # (mV) aka 'v_reset' 'd' : 2.0, # (mV/ms) Reset value for u after a spike. 'i_offset' : 0.0 # (nA) } recordable = ['spikes', 'v', 'u'] conductance_based = False voltage_based_synapses = True default_initial_values = { 'v': -70.0, # mV 'u': -14.0 # mV/ms } units = { 'v': 'mV', 'u': 'mV/ms', }
[docs]class SpikeSourcePoisson(StandardCellType): """Spike source, generating spikes according to a Poisson process.""" default_parameters = { 'rate' : 1.0, # Mean spike frequency (Hz) 'start' : 0.0, # Start time (ms) 'duration' : 1e10 # Duration of spike sequence (ms) } recordable = ['spikes'] injectable = False receptor_types = ()
[docs]class SpikeSourceInhGamma(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. """ default_parameters = { 'a' : Sequence([1.0]), # time histogram of parameter a of a gamma distribution (dimensionless) 'b' : Sequence([1.0]), # time histogram of parameter b of a gamma distribution (seconds) 'tbins' : Sequence([0.0]), # time bins of the time histogram of a,b in units of ms 'start' : 0.0, # Start time (ms) 'duration' : 1e10 # Duration of spike sequence (ms) } recordable = ['spikes'] injectable = False receptor_types = ()
[docs]class SpikeSourceArray(StandardCellType): """Spike source generating spikes at the times given in the spike_times array.""" default_parameters = { 'spike_times' : Sequence([]) } # list or numpy array containing spike times in milliseconds. recordable = ['spikes'] injectable = False receptor_types = ()