File: mitproto.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 (162 lines) | stat: -rw-r--r-- 4,296 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
//genesis

if (!({exists /library/mGABA}))
	create channelC2 /library/mGABA
end
	// sec
	// sec
	// Siemens
	setfield /library/mGABA Ek {EK} tau1 4e-3 tau2 4e-3  \
	    gmax {GMAX_K}

if (!({exists /library/mglu}))
	create channelC2 /library/mglu
end
	// sec
	// sec
	// Siemens
	setfield /library/mglu Ek {ENA} tau1 2e-3 tau2 2e-3  \
	    gmax {DISTAL_GMAX_NA}

if (!({exists /library/gglu}))
	create channelC2 /library/gglu
end
	// sec
	// sec
	// Siemens
	setfield /library/gglu Ek {ENA} tau1 2e-3 tau2 2e-3  \
	    gmax {DISTAL_GMAX_NA}

if (!({exists /library/aspike}))
	create spike /library/aspike
		// V
		// sec
		setfield /library/aspike thresh -0.01 abs_refract 0.01  \
		    output_amp 1
	create axon /library/aspike/axon
	addmsg /library/aspike /library/aspike/axon BUFFER name
end

if (!({exists /library/term}))
	create channelA /library/term
		// Seimens
		// V 
		setfield /library/term Gk 5e-9 Ek 1.0
end

// See mit definition file
EREST_ACT = -0.065
/* Adjusting the EREST dependent terms to fit with rest pot of cell */
// V
// V
// V
// V
setfield /library/MHH_Na_channel X_alpha_V0 {0.013 + {EREST_ACT}}  \
    X_beta_V0 {40.0e-3 + {EREST_ACT}} Y_alpha_V0 {0.017 + {EREST_ACT}}  \
    Y_beta_V0 {40.0e-3 + {EREST_ACT}}

// V
// V
setfield /library/MHH_K_channel X_alpha_V0 {0.015 + {EREST_ACT}}  \
    X_beta_V0 {0.010 + {EREST_ACT}}



// See gran definition file
EREST_ACT = -0.06
/* Adjusting the EREST dependent terms to fit with rest pot of cell */
// V
// V
// V
// V
setfield /library/GHH_Na_channel X_alpha_V0 {0.023 + {EREST_ACT}}  \
    X_beta_V0 {50.0e-3 + {EREST_ACT}} Y_alpha_V0 {0.027 + {EREST_ACT}}  \
    Y_beta_V0 {50.0e-3 + {EREST_ACT}}

// V
// V
setfield /library/GHH_K_channel X_alpha_V0 {0.025 + {EREST_ACT}}  \
    X_beta_V0 {0.020 + {EREST_ACT}}


if (!({exists /library/YCa}))
	int ndivs

	create vdep_channel /library/YCa
	// V
	// S
	setfield /library/YCa Ek {ECA_ACT} gbar {200*{SOMA_A}}

	create tabgate /library/YCa/mgate
	call /library/YCa/mgate TABCREATE alpha 100 -0.2 0.1
	call /library/YCa/mgate TABCREATE beta 100 -0.2 0.1
	x = get(/library/YCa/mgate,alpha->xmin)
	dx = get(/library/YCa/mgate,alpha->dx)
	ndivs = {getfield /library/YCa/mgate alpha->xdivs}
	// Mit definitions
	EREST_ACT = -0.065
	int i
	for (i = 0; i <= ndivs; i = i + 1)
		if ({x} < -0.032)
			setfield /library/YCa/mgate  \
			    alpha->table[{i}] 0.0

			y = (exp({({x} + 0.006 - {EREST_ACT})/0.016}) +  \
			    exp({-({x} + 0.006 - {EREST_ACT})/0.016})) / \
			     7.8e-3
			setfield /library/YCa/mgate beta->table[{i}] {y}
		else
			y = (exp({({x} + 0.006 - {EREST_ACT})/0.016}) +  \
			    exp({-({x} + 0.006 - {EREST_ACT})/0.016})) / \
			     (7.8e-3 * (1.0 +  \
			    exp({-({x} - 0.003 - {EREST_ACT})/0.008})))
			setfield /library/YCa/mgate  \
			    alpha->table[{i}] {y}

			y = (exp({({x} + 0.006 - {EREST_ACT})/0.016}) +  \
			    exp({-({x} + 0.006 - {EREST_ACT})/0.016})) / \
			     7.8e-3 * (1.0 - 1.0 / (1.0 +  \
			    exp({-({x} - 0.003 - {EREST_ACT})/0.008})))
			setfield /library/YCa/mgate beta->table[{i}] {y}
		end
		x = x + dx
	end


	create table /library/YCa/hgate
	call /library/YCa/hgate TABCREATE 100 0.0 1.0
	x = get(/library/YCa/hgate,table->xmin)
	dx = get(/library/YCa/hgate,table->dx)
	ndivs = {getfield /library/YCa/hgate table->xdivs}
	for (i = 0; i <= ndivs; i = i + 1)
		y = 0.01/(0.01 + x)
		setfield /library/YCa/hgate table->table[{i}] {y}
		x = x + dx
	end

	create table /library/YCa/nernst
	call /library/YCa/nernst TABCREATE 1000 0.00005 0.01
	x = get(/library/YCa/nernst,table->xmin)
	dx = get(/library/YCa/nernst,table->dx)
	ndivs = {getfield /library/YCa/nernst table->xdivs}
	for (i = 0; i <= ndivs; i = i + 1)
		y = 12.5e-3 * log({4.0/{x}})
		setfield /library/YCa/nernst table->table[{i}] {y}
		x = x + dx
	end

	create Ca_concen /library/YCa/conc
	// sec
	// Moles per coulomb, later scaled to conc
	// Moles per cubic m
	setfield /library/YCa/conc tau 0.00001 B 5.2e-6 Ca_base 1.0e-4

	addmsg /library/YCa /library/YCa/conc I_Ca Ik
	addmsg /library/YCa/conc /library/YCa/nernst INPUT Ca
	addmsg /library/YCa/conc /library/YCa/hgate INPUT Ca
	addmsg /library/YCa/nernst /library/YCa EK output
	addmsg /library/YCa/hgate /library/YCa MULTGATE output 1
	addmsg /library/YCa/mgate /library/YCa MULTGATE m 1


end