69 lines
974 B
Modula-2
69 lines
974 B
Modula-2
COMMENT
|
|
** This mod file is based on the alpha synapse in NEURON, except for a ratio factor con in the NET_RECEIVE block.**
|
|
ENDCOMMENT
|
|
|
|
NEURON {
|
|
POINT_PROCESS Alpha
|
|
RANGE tau1, tau2, e, i,con
|
|
NONSPECIFIC_CURRENT i
|
|
|
|
RANGE g
|
|
GLOBAL total
|
|
}
|
|
|
|
UNITS {
|
|
(nA) = (nanoamp)
|
|
(mV) = (millivolt)
|
|
(umho) = (micromho)
|
|
}
|
|
|
|
PARAMETER {
|
|
tau1=.1 (ms) <1e-9,1e9>
|
|
tau2 = 10 (ms) <1e-9,1e9>
|
|
e=0 (mV)
|
|
con=10
|
|
}
|
|
|
|
ASSIGNED {
|
|
v (mV)
|
|
i (nA)
|
|
g (umho)
|
|
factor
|
|
total (umho)
|
|
}
|
|
|
|
STATE {
|
|
A (umho)
|
|
B (umho)
|
|
}
|
|
|
|
INITIAL {
|
|
LOCAL tp
|
|
total = 0
|
|
if (tau1/tau2 > .9999) {
|
|
tau1 = .9999*tau2
|
|
}
|
|
A = 0
|
|
B = 0
|
|
tp = (tau1*tau2)/(tau2 - tau1) * log(tau2/tau1)
|
|
factor = -exp(-tp/tau1) + exp(-tp/tau2)
|
|
factor = 1/factor
|
|
}
|
|
|
|
BREAKPOINT {
|
|
SOLVE state METHOD cnexp
|
|
g = B - A
|
|
i = g*(v - e)
|
|
}
|
|
|
|
DERIVATIVE state {
|
|
A' = -A/tau1
|
|
B' = -B/tau2
|
|
}
|
|
|
|
NET_RECEIVE(weight (umho)) {
|
|
state_discontinuity(A, A + weight*factor*con)
|
|
state_discontinuity(B, B + weight*factor*con)
|
|
total = total+weight*con
|
|
}
|