I have tried to construct a Hodgkin-Huxley Model with brian2 and encountered the following error messages at the same time: 'Attribute' object has no attribute 'id' and Unknown syntax: Call at the same time. I used Anaconda Jupyternotebook amd my brian2 version is 2.5.1
This is the code I am working on:
from brian2 import *
cm = 1*uF
vna = -115*mV
vk = 12*mV
vl = -10.613*mV
gnabar = 120*mS
gkbar = 36*mS
gl = 0.3*mS
Iapp = 15*uA
# Typical equations
eqs = '''
dv/dt = (-ina - ik - il + Iapp ) / cm : volt
dn/dt = ((ninf - n)/taun)*Hz : 1
dm/dt = ((minf - m)/taum)*Hz : 1
dh/dt = ((hinf - h)/tauh)*Hz : 1
ina = gna* (v - vna) : amp
ik = gk * (v - vk) : amp
il = gl * (v - vl) : amp
gna = gnabar * m**3 * h : siemens
gk = gkbar * n**4 : siemens
an = 0.01*(v + 55)/(1 - np.exp(-(v + 55)/10)) : 1
bn = 0.125*np.exp(-(v + 65)/80) : 1
ninf = an/(an+bn) : 1
taun = 1/(an+bn) : 1
am = 0.1*(v+40)/( 1 - np.exp(-(v+40)/10) ) : 1
bm = 4*np.exp(-(v+65)/18) : 1
minf=am/(am+bm) : 1
taum=1/(am+bm) : 1
ah = 0.07*np.exp(-(v+65)/20) : 1
bh = 1/( 1 + np.exp(-(v+35)/10) ) : 1
hinf = ah/(ah+bh) :1
tauh = 1/(ah+bh) : 1
'''
G = NeuronGroup(1, eqs, method = 'rk4')
G.v = -57*mV
M = StateMonitor(G, 'v', record=True)
run(50*ms)
plot(M.t/ms, M.v[0])
xlabel('t (ms)')
ylabel('V (mV)')
This parameters should return a repetitive spiking graph, but it returned error messages as below:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 78, in render_node
return getattr(self, methname)(node)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 238, in render_Call
return self.render_func(node.func)(*(self.render_node(arg)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 217, in render_func
if node.id in DEFAULT_FUNCTIONS:
AttributeError: 'Attribute' object has no attribute 'id'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3437, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-8-fb76df00abe2>", line 56, in <module>
G = NeuronGroup(1, eqs, method = 'rk4')
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\groups\neurongroup.py", line 499, in __init__
model = Equations(model)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\equations\equations.py", line 554, in __init__
self._equations = parse_string_equations(eqns)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\utils\caching.py", line 101, in cached_func
func._cache[cache_key] = func(*args, **kwds)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\equations\equations.py", line 366, in parse_string_equations
expression = Expression(p.sub(' ', expression))
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\equations\codestrings.py", line 107, in __init__
str_to_sympy(code)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\sympytools.py", line 76, in str_to_sympy
return _str_to_sympy(expr)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\utils\caching.py", line 101, in cached_func
func._cache[cache_key] = func(*args, **kwds)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\sympytools.py", line 82, in _str_to_sympy
s_expr = SympyNodeRenderer().render_expr(expr)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 66, in render_expr
return self.render_node(node.body)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 78, in render_node
return getattr(self, methname)(node)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 274, in render_BinOp
1 / self.render_node(node.right))
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 78, in render_node
return getattr(self, methname)(node)
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 283, in render_BinOp
-self.render_node(node.right))
File "C:\ProgramData\Anaconda3\lib\site-packages\brian2\parsing\rendering.py", line 80, in render_node
raise SyntaxError(f"Unknown syntax: {nodename}")
File "<string>", line unknown
SyntaxError: Unknown syntax: Call