Neuron Types#

Submodules#

conex.behaviors.neurons.neuron_types.lif_neurons module#

Leaky Integrate-and-Fire variants.

the dynamics can be represented by: tau*dv/dt = F(u) + RI(u).

class conex.behaviors.neurons.neuron_types.lif_neurons.LIF(R, threshold, tau, v_reset, v_rest, *args, init_v=None, init_s=None, **kwargs)[source]#

Bases: Behavior

The neural dynamics of LIF is defined by:

F(u) = v_rest - v, RI(u) = R*I.

We assume that the input to the neuron is current-based.

Note: at least one Input mechanism should be added to the behaviors of the population.

and Fire method should be called by other behaviors.

Parameters:
  • tau (float) – time constant of voltage decay.

  • R (float) – the resistance of the membrane potential.

  • threshold (float) – the threshold of neurons to initiate spike.

  • v_reset (float) – immediate membrane potential after a spike.

  • v_rest (float) – neuron membrane potential in absent of input.

initialize(neurons)[source]#

Set neuron attributes. and adds Fire function as attribute to population.

Parameters:

neurons (NeuronGroup) – the neural population.

Fire(neurons)[source]#

Basic firing behavior of spiking neurons:

if v >= threshold then v = v_reset.

forward(neurons)[source]#

Single step of dynamics.

Parameters:

neurons (NeuronGroup) – the neural population.

training: bool#
class conex.behaviors.neurons.neuron_types.lif_neurons.ELIF(R, threshold, tau, v_reset, v_rest, delta, theta_rh, *args, init_v=None, init_s=None, **kwargs)[source]#

Bases: LIF

The neural dynamics of Exponential LIF is defined by:

F(u) = v_rest - v + delta * exp((v - theta_rh) / delta), RI(u) = R*I,

We assume that the input to the neuron is current-based.

Note: at least one Input mechanism and one Firing mechanism should be added to the behaviors of the population

Parameters:
  • tau (float) – time constant of voltage decay.

  • R (float) – the resistance of the membrane potential.

  • threshold (float) – the threshold of neurons to initiate spike.

  • v_reset (float) – immediate membrane potential after a spike.

  • v_rest (float) – neuron membrane potential in absent of input.

  • delta (float) – the constant defining the sharpness of exponential curve.

  • theta_rh (float) – The boosting threshold. (rheobase)

initialize(neurons)[source]#

Set neuron attributes.

Parameters:

neurons (NeuronGroup) – the neural population.

training: bool#
class conex.behaviors.neurons.neuron_types.lif_neurons.AELIF(R, threshold, tau, v_reset, v_rest, delta, theta_rh, alpha, beta, w_tau, *args, init_v=None, init_s=None, omega=None, **kwargs)[source]#

Bases: ELIF

The neural dynamics of Adaptive Exponential LIF is defined by:

tau_a*d(omega)/dt = alpha*(v - v_rest) - omega + beta*tau_a*spikes, F(u) = v_rest - v + delta * exp((v - theta_rh) / delta), RI(u) = R*I - R*omega,

We assume that the input to the neuron is current-based.

Note: at least one Input mechanism and one Firing mechanism should be added to the behaviors of the population

Parameters:
  • tau (float) – time constant of voltage decay.

  • R (float) – the resistance of the membrane potential.

  • threshold (float) – the threshold of neurons to initiate spike.

  • v_reset (float) – immediate membrane potential after a spike.

  • v_rest (float) – neuron membrane potential in absent of input.

  • delta (float) – the constant defining the sharpness of exponential curve.

  • theta_rh (float) – The boosting threshold.

  • alpha (float) – subthreshold adaptation parameter.

  • beta (float) – spike-triggered adaptation parameter.

  • w_tau (float) – time constant of adaptation decay.

initialize(neurons)[source]#

Set neuron attributes.

Parameters:

neurons (NeuronGroup) – the neural population.

domega_dt(neurons)[source]#

Single step adaptation dynamics of AELIF neurons.

Parameters:

neurons (NeuronGroup) – the neural population.

Fire(neurons)[source]#

Basic firing behavior of spiking neurons:

if v >= threshold then v = v_reset.

and it do the adaptation.

training: bool#