HHLTC

HHLTC#

class brainpy.dyn.HHLTC(size, sharding=None, keep_size=False, mode=None, name=None, method='exp_auto', init_var=True, ENa=50.0, gNa=120.0, EK=-77.0, gK=36.0, EL=-54.387, gL=0.03, V_th=20.0, C=1.0, V_initializer=Uniform(min_val=-70, max_val=-60.0, rng=RandomState(Array((), dtype=key<fry>) overlaying: [ 216744582 1008666480])), m_initializer=None, h_initializer=None, n_initializer=None, noise=None)[source]#

Hodgkin–Huxley neuron model with liquid time constant.

Model Descriptions

The Hodgkin-Huxley (HH; Hodgkin & Huxley, 1952) model [1] for the generation of the nerve action potential is one of the most successful mathematical models of a complex biological process that has ever been formulated. The basic concepts expressed in the model have proved a valid approach to the study of bio-electrical activity from the most primitive single-celled organisms such as Paramecium, right through to the neurons within our own brains.

Mathematically, the model is given by,

\[ \begin{align}\begin{aligned}C \frac {dV} {dt} = -(\bar{g}_{Na} m^3 h (V &-E_{Na}) + \bar{g}_K n^4 (V-E_K) + g_{leak} (V - E_{leak})) + I(t)\\\frac {dx} {dt} &= \alpha_x (1-x) - \beta_x, \quad x\in {\rm{\{m, h, n\}}}\\&\alpha_m(V) = \frac {0.1(V+40)}{1-\exp(\frac{-(V + 40)} {10})}\\&\beta_m(V) = 4.0 \exp(\frac{-(V + 65)} {18})\\&\alpha_h(V) = 0.07 \exp(\frac{-(V+65)}{20})\\&\beta_h(V) = \frac 1 {1 + \exp(\frac{-(V + 35)} {10})}\\&\alpha_n(V) = \frac {0.01(V+55)}{1-\exp(-(V+55)/10)}\\&\beta_n(V) = 0.125 \exp(\frac{-(V + 65)} {80})\end{aligned}\end{align} \]

The illustrated example of HH neuron model please see this notebook.

The Hodgkin–Huxley model can be thought of as a differential equation system with four state variables, \(V_{m}(t),n(t),m(t)\), and \(h(t)\), that change with respect to time \(t\). The system is difficult to study because it is a nonlinear system and cannot be solved analytically. However, there are many numeric methods available to analyze the system. Certain properties and general behaviors, such as limit cycles, can be proven to exist.

References

Examples

Here is a simple usage example:

import brainpy as bp

neu = bp.dyn.HHLTC(1)

# raise input current from 4 mA to 40 mA
inputs = bp.inputs.ramp_input(4, 40, 700, 100, 600,)

runner = bp.DSRunner(neu, monitors=['V'])
runner.run(inputs=inputs)

bp.visualize.line_plot(runner.mon['ts'], runner.mon['V'], show=True)
Parameters:
update(x=None)[source]#

The function to specify the updating rule.