Hodgkin-Huxley IK Experiment Model

class pints.toy.HodgkinHuxleyIKModel(initial_condition=0.3)[source]

Toy model based on the potassium current experiments used for Hodgkin and Huxley’s 1952 model of the action potential of a squid’s giant axon [1].

A voltage-step protocol is created and applied to an axon, and the elicited potassium current (\(I_\text{K}\)) is given as model output.

The model equations are

\[\begin{split}\alpha &= p_1 \frac{-V - 75 + p_2}{\exp[(-V - 75 + p_2) / p_3] - 1} \\ \beta &= p_4 \exp[(-V - 75) / p_5] \\ \frac{dn}{dt} &= \alpha \cdot (1 - n) - \beta \cdot n \\ E_\text{K} &= -88 \\ g_\text{max} &= 36 \\ I_\text{K} &= g_\text{max} \cdot n^4 \cdot (V - E_\text{K})\end{split}\]

Where \(p_1, p_2, ..., p_5\) are the parameters varied in this toy model.

During simulation, the membrane potential \(V\) is varied by holding it at -75mV for 90ms, then at a “step potential” for 10ms. The step potentials are based on the values used in the original paper, and are -69, -64, -56, -49, -43, -37, -24, -12, 1, 13, 25, and 34mV. The protocol is applied in the interval \(t = [0, 1200]\), so sampling outside this interval will not provide new information.

With the parameter values from suggested_parameters(), simulation results will match those in [1].

Extends pints.ForwardModel, pints.toy.ToyModel.

Parameters:initial_condition (float) – The initial value of the state variable \(n\).

References

[1](1, 2) A quantitative description of membrane currents and its application to conduction and excitation in nerve. Hodgkin, Huxley (1952d) Journal of Physiology. https://doi.org/10.1113/jphysiol.1964.sp007378

Example usage:

model = HodgkinHuxleyIKModel()

p0 = model.suggested_parameters()
times = model.suggested_times()
values = model.simulate(p0, times)

import matplotlib.pyplot as plt
plt.figure()
plt.plot(times, values)

Alternatively, the data can be displayed using the fold() method:

plt.figure()
for t, v in model.fold(times, values):
    plt.plot(t, v)
plt.show()
fold(times, values)[source]

Takes a set of times and values as return by this model, and “folds” the individual currents over each other, to create a very common plot in electrophysiology.

Returns a list of tuples (times, values) for each different voltage step.

n_outputs()

Returns the number of outputs this model has. The default is 1.

n_parameters()[source]

See pints.ForwardModel.n_parameters().

simulate(parameters, times)[source]

See pints.ForwardModel.simulate().

suggested_duration()[source]

Returns the duration of the experimental protocol modeled in this toy model.

suggested_parameters()[source]

See pints.toy.ToyModel.suggested_parameters().

Returns an array with the original model parameters used by Hodgkin and Huxley.

suggested_times()[source]

See pints.toy.ToyModel.suggested_times().