-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsyn1.mod
More file actions
126 lines (85 loc) · 2.82 KB
/
Copy pathsyn1.mod
File metadata and controls
126 lines (85 loc) · 2.82 KB
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
TITLE Mod file for component: Component(id=syn1 type=expTwoSynapse)
COMMENT
This NEURON file has been generated by org.neuroml.export (see https://github.com/NeuroML/org.neuroml.export)
org.neuroml.export v1.5.2
org.neuroml.model v1.5.2
jLEMS v0.9.8.9
ENDCOMMENT
NEURON {
POINT_PROCESS syn1
RANGE tauRise : parameter
RANGE tauDecay : parameter
RANGE peakTime : parameter
RANGE waveformFactor : parameter
RANGE gbase : parameter
RANGE erev : parameter
RANGE g : exposure
RANGE i : exposure
NONSPECIFIC_CURRENT i
}
UNITS {
(nA) = (nanoamp)
(uA) = (microamp)
(mA) = (milliamp)
(A) = (amp)
(mV) = (millivolt)
(mS) = (millisiemens)
(uS) = (microsiemens)
(molar) = (1/liter)
(kHz) = (kilohertz)
(mM) = (millimolar)
(um) = (micrometer)
(umol) = (micromole)
(S) = (siemens)
}
PARAMETER {
tauRise = 1 (ms)
tauDecay = 15 (ms)
peakTime = 2.9014823 (ms)
waveformFactor = 1.300079
gbase = 0.002 (uS)
erev = 0 (mV)
}
ASSIGNED {
? Standard Assigned variables with baseSynapse
v (mV)
celsius (degC)
temperature (K)
g (uS) : derived variable
i (nA) : derived variable
rate_A (/ms)
rate_B (/ms)
}
STATE {
A
B
}
INITIAL {
temperature = celsius + 273.15
rates()
rates() ? To ensure correct initialisation.
A = 0
B = 0
}
BREAKPOINT {
SOLVE states METHOD cnexp
}
NET_RECEIVE(weight) {
: paramMappings . : {syn1={A=A, B=B, tauRise=tauRise, tauDecay=tauDecay, peakTime=peakTime, waveformFactor=waveformFactor, gbase=gbase, erev=erev, g=g, i=i}}
: state_discontinuity(A, A + (weight * waveformFactor )) : From syn1
A = A + (weight * waveformFactor ) : From syn1
: paramMappings . : {syn1={A=A, B=B, tauRise=tauRise, tauDecay=tauDecay, peakTime=peakTime, waveformFactor=waveformFactor, gbase=gbase, erev=erev, g=g, i=i}}
: state_discontinuity(B, B + (weight * waveformFactor )) : From syn1
B = B + (weight * waveformFactor ) : From syn1
}
DERIVATIVE states {
rates()
A' = rate_A
B' = rate_B
}
PROCEDURE rates() {
g = gbase * ( B - A ) ? evaluable
i = -1 * g * ( erev - v) ? evaluable
rate_A = - A / tauRise ? Note units of all quantities used here need to be consistent!
rate_B = - B / tauDecay ? Note units of all quantities used here need to be consistent!
}