-
Notifications
You must be signed in to change notification settings - Fork 0
Hodgkin‐Huxley (HH) Systems
These systems involve solving coupled ordinary differential equations (ODEs) to describe the action potential across the neuronal membrane [1].
Import the package by running import HodgkinHuxley as HH
.
Use HH.solveHH(system, solver, I0, ti,tf,dt, **kwargs)
to obtain
This package supports three ODE solvers:
-
solver='lsoda'
: LSODA, via odeint function -
solver='euler'
: Forward Euler -
solver='rk4'
: Runge-Kutta 4th Order
For the external stimulus, there are four sets of parameters which can be implemented in any combination, except when using LSODA. LSODA is incompatible with noisy and coupled systems. For the stimulus duration, provide initial time ti
, final time tf
and timestep dt
.
- Constant Input:
$I_{1} = I_0$ - Sinusoidal Input [2]:
$I_{2} = I_s~\sin(2\pi~f_s t)$ - Noisy Input [3]:
$I_{3} = I_n~\eta(t)$ , where$\eta(t)\in[-0.5,0.5]$ ,$\langle \eta \rangle_t = 0$ - Coupling Input [3]:
$I_{4} = \sum_{j} I_{ij}$ , where$I_{ij} = -g a_{ij} (V_i-V_j)$
These systems involve single independent HH neuron [1-3]. Any solver can be used, and any combination of HH.solveHH(system='single', solver=, I0=, ti=,tf=,dt=, Is=,fs=)
.
These systems assume a uniform noise with a zero time-average [3]. Use either solver='euler'
or solver='rk4'
. For the external stimulus, use any combination of HH.solveHH(system='noisy', solver=, I0=, ti=,tf=,dt=, Is=,fs=, In=)
.
These systems assume a square lattice of size L
and a population solver='euler'
or solver='rk4'
. For the external stimulus, use any combination of HH.solveHH(system='coupled', solver=, I0=, ti=,tf=,dt=, Is=,fs=, L=,g=)
.
##c D) Noisy Coupled HH Systems
These systems assume a uniform noise with a zero time-average, and a square lattice of size L
and a population solver='euler'
or solver='rk4'
. For the external stimulus, use any combination of kwargs
: HH.solveHH(system='noisy coupled', solver=, I0=, ti=,tf=,dt=, Is=,fs=, In=, L=,g=)
.
Run main.py
to test the following systems:
A.1) Single HH with constant input: HH.solveHH(system='single', solver='lsoda', I0=2.5)
A.2) Single HH with sinusoid input: HH.solveHH(system='single', solver='rk4', Is=10, fs=4.905)
B) Noisy HH with constant input: HH.solveHH(system='noisy', solver='euler', In=60)
C) Coupled HH with constant input: HH.solveHH(system='coupled', solver='euler', I0=10, L=3, g=0.1)
D) Noisy Coupled HH with bias, sinusoid, noisy input: HH.solveHH(system='noisy coupled', solver='euler', I0=2.5, Is=10, fs=4.905, In=60, L=3, g=0.1)
- Hodgkin, Alan L., and Andrew F. Huxley. "A quantitative description of membrane current and its application to conduction and excitation in nerve." The Journal of physiology 117.4 (1952): 500.
- Escosio, Rey Audie S., and Johnrob Y. Bantang. "Frequency response analysis of a Hodgkin-Huxley neuron in a generalized current density stimulus." Proceedings of the Samahang Pisika ng Pilipinas (2016).
- Pang, James Christopher S., Christopher P. Monterola, and Johnrob Y. Bantang. "Noise-induced synchronization in a lattice Hodgkin–Huxley neural network." Physica A: Statistical Mechanics and its Applications 393 (2014): 638-645.