sns_toolbox.neurons

Neurons are the computational nodes of an SNS, and can be either spiking or non-spiking.

Classes

Neuron

Parent class of all neurons.

NonSpikingNeuron

Classic non-spiking neuron model, whose dynamics are as follows:

NonSpikingNeuronWithGatedChannels

Iion = sum_j[Gj * A_(inf,j)^Pa * Bj^Pb * Cj^Pc * (Ej - V)]

NonSpikingNeuronWithPersistentSodiumChannel

Iion = sum_j[Gj * m_(inf,j)^Pm * hj^Ph * (Ej - U)]

SpikingNeuron

Generalized leaky integrate-and-fire neuron model, whose dynamics are as follows:

Module Contents

class sns_toolbox.neurons.Neuron(name: str = 'Neuron', color: str = 'white', membrane_capacitance: float = 5.0, membrane_conductance: float = 1.0, resting_potential: float = 0.0, bias: float = 0.0)

Parent class of all neurons.

Parameters:
  • name (str, optional) – Name of this neuron preset, default is ‘Neuron’.

  • color (str, optional) – Background fill color for the neuron, default is ‘white’.

  • membrane_capacitance (Number, optional) – Neural membrane capacitance, default is 5.0. Units are nanofarads (nF).

  • membrane_conductance (Number, optional) – Neural membrane conductance, default is 1.0. Units are microsiemens (uS).

  • resting_potential (Number, optional) – Neural resting potential, default is 0.0. Units are millivolts (mV).

  • bias (Number, optional) – Internal bias current, default is 0.0. Units are nanoamps (nA).

params: Dict[str, Any]
class sns_toolbox.neurons.NonSpikingNeuron(**kwargs)

Bases: Neuron

Classic non-spiking neuron model, whose dynamics are as follows: membrane_capacitance*dV/dt = -membrane_conductance*(V - Er) + bias current + synaptic current + external current.

class sns_toolbox.neurons.NonSpikingNeuronWithGatedChannels(g_ion, e_ion, pow_a, k_a, slope_a, e_a, pow_b, k_b, slope_b, e_b, tau_max_b, pow_c, k_c, slope_c, e_c, tau_max_c, **kwargs)

Bases: NonSpikingNeuron

Iion = sum_j[Gj * A_(inf,j)^Pa * Bj^Pb * Cj^Pc * (Ej - V)]

inputs
class sns_toolbox.neurons.NonSpikingNeuronWithPersistentSodiumChannel(g_ion=None, e_ion=None, k_m=None, slope_m=None, e_m=None, k_h=None, slope_h=None, e_h=None, tau_max_h=None, **kwargs)

Bases: NonSpikingNeuronWithGatedChannels

Iion = sum_j[Gj * m_(inf,j)^Pm * hj^Ph * (Ej - U)]

inputs
num_channels
class sns_toolbox.neurons.SpikingNeuron(threshold_time_constant: float = 5.0, threshold_initial_value: float = 1.0, threshold_proportionality_constant: float = 0.0, threshold_leak_rate: float = 1.0, threshold_increment: float = 0.0, threshold_floor: float = None, reset_potential: float = None, **kwargs)

Bases: Neuron

Generalized leaky integrate-and-fire neuron model, whose dynamics are as follows: membrane_capacitance*dV/dt = -membrane_conductance*(V-Er) + bias current + synaptic current + external current; threshold_time_constant*dTheta/dt = -Theta + threshold_initial_value + threshold_proportionality_constant*V; if V > Theta, V->Er.

Parameters:
  • threshold_time_constant (Number, optional) – Rate that the firing threshold moves to the baseline value, default is 5.0. Units are milliseconds (ms).

  • threshold_initial_value (Number, optional) – Baseline value of the firing threshold, default is 1.0. Units are millivolts (mV).

  • threshold_proportionality_constant – Constant which determines spiking behavior. In response to constant stimulus, negative values cause the firing rate to decrease, positive values cause the rate to increase, and zero causes the rate to remain constant. Default is 0.0.

  • threshold_leak_rate – Constant which determines rate of decay to starting threshold. Default is 1.0.

  • threshold_increment (Number, optional) – Constant amount the threshold is increased after each spike. Default is 0.0

  • threshold_floor (Number, optional) – Minimum threshold value. Default is the resting potential

  • reset_potential (Number, optional) – Voltage that the membrane is reset to when a spike occurs. Default is resting_potential