File: is.mod

package info (click to toggle)
nrn-mod2c 0.9%2Bgit220919-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,224 kB
  • sloc: cpp: 11,513; ansic: 11,466; yacc: 1,478; lex: 214; sh: 38; perl: 33; makefile: 2
file content (94 lines) | stat: -rw-r--r-- 1,419 bytes parent folder | download | duplicates (2)
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
TITLE Cardiac L-type Calcium channel
: from BEELER & REUTER, J.Physiol, 1977

NEURON {
    THREADSAFE
	SUFFIX Is
	USEION ca READ cai WRITE ica

	USEION cs WRITE ics VALENCE 2
	USEION ns WRITE ins VALENCE 2

	RANGE gsbar, ica, ics
	GLOBAL minf, ninf, mtau, ntau
}

UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
	(mM) = (milli/liter)
	(S) = (siemens)
}

PARAMETER {
	gsbar= 5e-05(S/cm2) <0,1e9> 
}

STATE { : d f
	m n
}

ASSIGNED {
	v (mV)
	celsius (degC) : 37
	cai (mM)
	ica (mA/cm2)
	ics (mA/cm2)
	ins (mA/cm2)
	minf ninf
	mtau (ms)
	ntau (ms)
	lca
}


INITIAL {
	rates(v)
	m = minf
	n = ninf
}

BREAKPOINT {
LOCAL Es
SOLVE states METHOD derivimplicit
	Es = -82.3-13.0287*log(cai)
	ics = gsbar*m*n*(v - Es)
	ica = ics
	ins = -ics
}

DERIVATIVE states {
	rates(v)
	m' = (minf - m)/mtau
	n' = (ninf - n)/ntau
}

UNITSOFF
FUNCTION alp(v(mV),i) (ms) { 
	if (i==0) {
		alp = 0.095*exp(-0.01*(v - 5))/(exp(-0.072*(v - 5))+1)
	}else if (i==1){
		alp = 0.012*exp(-0.008*(v + 28))/(exp(0.15*(v + 28))+1)
	}
}

FUNCTION bet(v(mV),i) { 
	if (i==0) {
		bet = 0.07*exp(-0.017*(v + 44))/(exp(0.05*(v + 44))+1)
	}else if (i==1){
		bet = 0.0065*exp(-0.02*(v + 30))/(exp(-0.2*(v + 30))+1)
	}
}

UNITSON
PROCEDURE rates(v(mV))
{
LOCAL a, b
:TABLE minf, ninf, mtau, ntau DEPEND celsius FROM -100 TO 100 WITH 200
	a = alp(v,0)  b=bet(v,0)
	mtau = 1/(a + b)
	minf = a/(a + b)
	a = alp(v,1)  b=bet(v,1)
	ntau = 1/(a + b)
	ninf = a/(a + b)
}