hhchan.g.txt
Click here to get the file
Size
4.7 kB
-
File type
text/plain
File contents
//genesis 2.0
// This is the old-style "prototypes" version, with 2.0 syntax
/* FILE INFORMATION
** hh_channel implementation of squid giant axon voltage-dependent
** channels, according to :
** A.L.Hodgkin and A.F.Huxley, J.Physiol(Lond) 117, pp 500-544 (1952)
**
** This file depends on functions and constants defined in library.g
*/
// CONSTANTS
float EREST_ACT = -0.060 /* granule cell resting potl */
float ENA = 0.045
float EK = -0.090
float SOMA_A = 1e-9 /* Square meters */
int EXPONENTIAL = 1
int SIGMOID = 2
int LINOID = 3
/******************************************************************************
Some conventions in using the HH_CHANNELS and the VDEP_GATES
HH_CONVENTIONS
==============
Activation state variable is called x for all channels
Inactivation state variable is called y for all channels
In the traditional hh notations: x=m, y=h for Na channel; x=n for K_channel
There are three functional forms for alpha and beta for each state variable:
FORM 1: alpha(v) = A exp((v-V0)/B) (EXPONENTIAL)
FORM 2: alpha(v) = A / (exp((v-V0)/B) + 1) (SIGMOID)
FORM 3: alpha(v) = A (v-V0) / (exp((v-V0)/B) - 1) (LINOID)
The same functional forms are used for beta.
In the simulator, the FORM, A, B and V0 are designated by:
X_alpha_FORM, X_alpha_A, X_alpha_B, X_alpha_V0 alpha function for state var x
X_beta_FORM, X_beta_A, X_beta_B, X_beta_V0 beta function for state var x
Y_alpha_FORM, Y_alpha_A, Y_alpha_B, Y_alpha_V0 alpha function for state var y
Y_beta_FORM, Y_beta_A, Y_beta_B, Y_beta_V0 beta function for state var y
The conductance is calculated as g = Gbar*x^Xpower * y^Ypower
For a squid axon Na channel: Xpower = 3, Ypower = 1 (m^3 h)
K channel: Xpower = 4, Ypower = 0 (n^4)
These are linked to the soma by two messages :
addmsg /soma/hh_channel /soma CHANNEL Gk Ek
addmsg /soma /soma/hh_channel VOLTAGE Vm
----------------------------------------------------------------------
For the VDEP Gates, the form of each gate is
alpha = (A+B*V)/(C+exp((V+D)/F))
This is related to the above forms as follows :
EXPONENTIAL :
gate variables Value of gate variable in terms of hh-channel variables
A A
B 0
C 0
D -V0
F -B
SIGMOID :
Gate in terms of hh-ch variables
A A
B 0
C 1
D -V0
F B
LINOID :
A -A * V0
B A
C -1
D -V0
F B
These are linked to the soma and the channel proper as follows :
addmsg /soma/channel /soma CHANNEL Gk Ek
addmsg /soma /soma/channel VOLTAGE Vm
addmsg /soma/channel/m /soma/channel {gate_type} m {Power}
(eg, addmsg Na_mitral/m Na_mitral MULTGATE m 3
addmsg /soma /soma/channel/gate EREST Vm
******************************************************************************/
//========================================================================
// Original Hodgkin-Huxley squid parameters, implemented as hh_channel elements
//========================================================================
//========================================================================
// ACTIVE SQUID NA CHANNEL
// A.L.Hodgkin and A.F.Huxley, J.Physiol(Lond) 117, pp 500-544 (1952)
//========================================================================
function make_Na_squid_hh
if ({exists Na_squid_hh})
return
end
create hh_channel Na_squid_hh
setfield Na_squid_hh \
Ek {ENA} \ // V
Gbar { 1.2e3 * SOMA_A } \ // S
Xpower 3.0 \
Ypower 1.0 \
X_alpha_FORM {LINOID} \
X_alpha_A -0.1e6 \ // 1/V-sec
X_alpha_B -0.010 \ // V
X_alpha_V0 { 0.025 + EREST_ACT } \ // V
X_beta_FORM {EXPONENTIAL} \
X_beta_A 4.0e3 \ // 1/sec
X_beta_B -18.0e-3 \ // V
X_beta_V0 { 0.0 + EREST_ACT } \ // V
Y_alpha_FORM {EXPONENTIAL} \
Y_alpha_A 70.0 \ // 1/sec
Y_alpha_B -20.0e-3 \ // V
Y_alpha_V0 { 0.0 + EREST_ACT } \ // V
Y_beta_FORM {SIGMOID} \
Y_beta_A 1.0e3 \ // 1/sec
Y_beta_B -10.0e-3 \ // V
Y_beta_V0 { 30.0e-3 + EREST_ACT } // V
end
//========================================================================
// ACTIVE K CHANNEL - SQUID
// A.L.Hodgkin and A.F.Huxley, J.Physiol(Lond) 117, pp 500-544 (1952)
//========================================================================
function make_K_squid_hh
if ({exists K_squid_hh})
return
end
create hh_channel K_squid_hh
setfield K_squid_hh \
Ek {EK} \ // V
Gbar {360.0*SOMA_A} \ // S
Xpower 4.0 \
Ypower 0.0 \
X_alpha_FORM {LINOID} \
X_alpha_A -10.0e3 \ // 1/V-sec
X_alpha_B -10.0e-3 \ // V
X_alpha_V0 {10.0e-3+EREST_ACT} \ // V
X_beta_FORM {EXPONENTIAL} \
X_beta_A 125.0 \ // 1/sec
X_beta_B -80.0e-3 \ // V
X_beta_V0 {0.0+EREST_ACT} // V
end
//========================================================================