File: hhchan_K.g

package info (click to toggle)
genesis 2.1-1.1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 14,288 kB
  • ctags: 10,667
  • sloc: ansic: 111,959; makefile: 2,240; yacc: 1,797; lex: 976; csh: 54; sh: 13
file content (60 lines) | stat: -rw-r--r-- 2,158 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//genesis - hhchan_K.g - creates an extended object for a H-H K channel

// Define some constants to define the form of the rate constant equation
int EXPONENTIAL =   1
int SIGMOID     =   2
int LINOID      =   3

//  Original Hodgkin-Huxley squid parameters
float EREST_ACT = -0.070
float EK = -0.082
	
create		hh_channel	K_squid_hh
setfield K_squid_hh \
        Ek              {EK} \                          // V
        Gbar            0.0  \
        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

addfield 	K_squid_hh 	gdens		// conductance density
setfield 	K_squid_hh 	gdens		360.0   // S/m^2

setfieldprot K_squid_hh -hidden  Xpower Ypower X_alpha_FORM \
    X_alpha_A X_alpha_B X_alpha_V0 X_beta_FORM X_beta_A \
    X_beta_B X_beta_V0 Y_alpha_FORM Y_alpha_A Y_alpha_B \
    Y_alpha_V0 Y_beta_FORM Y_beta_A Y_beta_B Y_beta_V0 
setfieldprot K_squid_hh -readonly Gbar 

function K_squid_hh_SET(action, field, newvalue)
    float newvalue
    float PI = 3.14159
    if (field == "gdens")
        setfield . Gbar {PI*{getfield .. dia}*{getfield .. len}*newvalue}
    end
    return 0	// indicate that SET action isn't yet complete
end
addaction K_squid_hh SET K_squid_hh_SET

function K_squid_hh_CREATE(action, parent, object, elm)
    float PI = 3.14159
    if (!{isa compartment ..})
        echo K_squid_hh must be the child of a compartment
        return 0
    end
    setfield . Gbar {PI*{getfield .. dia}*{getfield .. len}*{getfield . gdens}}
    addmsg . .. CHANNEL Gk Ek
    addmsg .. . VOLTAGE Vm
    return 1
end
addaction K_squid_hh CREATE K_squid_hh_CREATE

addobject K_squid_hh K_squid_hh -author "J. R. Hacker" \
    -description "Hodgkin-Huxley Active K Squid Channel - SI units"