You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The neuron models in Brian 1's brian.library.IF package are nothing more
than shorthands for equations. The following table shows how the models from
Brian 1 can be converted to explicit equations (and reset statements in the case
of the adaptive exponential integrate-and-fire model) for use in Brian 2. The
examples include a "current" I (depending on the model not necessarily in
units of Ampère) and could e.g. be used to plot the f-I curve of the neuron.
tau = 10*ms
eqs = '''dvm/dt = I/tau : volt
I : volt'''
group = NeuronGroup(N, eqs,
threshold='v > -50*mV',
reset='v = -70*mV')
Leaky integrate-and-fire neuron
Brian 1
Brian 2
eqs = (leaky_IF(tau=10*ms, El=-70*mV) +
Current('I : volt'))
group = ... # see above
tau = 10*ms; El = -70*mV
eqs = '''dvm/dt = ((El - vm) + I)/tau : volt
I : volt'''
group = ... # see above
Exponential integrate-and-fire neuron
Brian 1
Brian 2
eqs = (exp_IF(C=1*nF, gL=30*nS, EL=-70*mV,
VT=-50*mV, DeltaT=2*mV) +
Current('I : amp'))
group = ... # see above
C = 1*nF; gL = 30*nS; EL = -70*mV; VT = -50*mV; DeltaT = 2*mV
eqs = '''dvm/dt = (gL*(EL-vm)+gL*DeltaT*exp((vm-VT)/DeltaT) + I)/C : volt
I : amp'''
group = ... # see above
Quadratic integrate-and-fire neuron
Brian 1
Brian 2
eqs = (quadratic_IF(C=1*nF, a=5*nS/mV,
EL=-70*mV, VT=-50*mV) +
Current('I : amp'))
group = ... # see above
C = 1*nF; a=5*nS/mV; EL=-70*mV; VT = -50*mV
eqs = '''dvm/dt = (a*(vm-EL)*(vm-VT) + I)/C : volt
I : amp'''
group = ... # see above
Izhikevich neuron
Brian 1
Brian 2
eqs = (Izhikevich(a=0.02/ms, b=0.2/ms) +
Current('I : volt/second'))
group = ... # see above
a = 0.02/ms; b = 0.2/ms
eqs = '''dvm/dt = (0.04/ms/mV)*vm**2+(5/ms)*vm+140*mV/ms-w + I : volt
dw/dt = a*(b*vm-w) : volt/second
I : volt/second'''
group = ... # see above
# AdEx, aEIF, and Brette_Gerstner all refer to the same model
eqs = (aEIF(C=1*nF, gL=30*nS, EL=-70*mV,
VT=-50*mV, DeltaT=2*mV, tauw=150*ms, a=4*nS) +
Current('I:amp'))
group = NeuronGroup(N, eqs,
threshold='v > -20*mV',
reset=AdaptiveReset(Vr=-70*mV, b=0.08*nA))
C = 1*nF; gL = 30*nS; EL = -70*mV; VT = -50*mV; DeltaT = 2*mV; tauw = 150*ms; a = 4*nS
eqs = '''dvm/dt = (gL*(EL-vm)+gL*DeltaT*exp((vm-VT)/DeltaT) -w + I)/C : volt
dw/dt=(a*(vm-EL)-w)/tauw : amp
I : amp'''
group = NeuronGroup(N, eqs,
threshold='vm > -20*mV',
reset='vm=-70*mV; w += 0.08*nA')
Brian 1's functions for ionic currents, provided in
brian.library.ionic_currents correspond to the following equations (note
that the currents follow the convention to use a shifted membrane potential,
i.e. the membrane potential at rest is 0mV):