From 5ec5e251bd8aff07bde7bd97e6dfc16bce28a3c7 Mon Sep 17 00:00:00 2001 From: DimitriPlotnikov Date: Thu, 15 Sep 2016 16:06:26 +0200 Subject: [PATCH] Update models which are used in the NESTML tutorial --- ...1_integrate.nestml => 11.rc_neuron.nestml} | 6 +-- .../tutorial/12.rc_neuron_rel.nestml | 32 +++++++++++++ src/test/resources/tutorial/21_rc_fire.nestml | 37 +++++++++++++++ ...d_reset.nestml => 22_rc_refractory.nestml} | 13 ++--- .../resources/tutorial/23_rc_alpha.nestml | 47 +++++++++++++++++++ 5 files changed, 125 insertions(+), 10 deletions(-) rename src/test/resources/tutorial/{1_integrate.nestml => 11.rc_neuron.nestml} (79%) create mode 100644 src/test/resources/tutorial/12.rc_neuron_rel.nestml create mode 100644 src/test/resources/tutorial/21_rc_fire.nestml rename src/test/resources/tutorial/{2_integrate_and_reset.nestml => 22_rc_refractory.nestml} (75%) create mode 100644 src/test/resources/tutorial/23_rc_alpha.nestml diff --git a/src/test/resources/tutorial/1_integrate.nestml b/src/test/resources/tutorial/11.rc_neuron.nestml similarity index 79% rename from src/test/resources/tutorial/1_integrate.nestml rename to src/test/resources/tutorial/11.rc_neuron.nestml index cba72718e..4778f6c0c 100644 --- a/src/test/resources/tutorial/1_integrate.nestml +++ b/src/test/resources/tutorial/11.rc_neuron.nestml @@ -1,12 +1,10 @@ /* A straight forward implementation of the RC circuit approach */ -neuron iaf: +neuron rc_neuron: state: V_abs mV = 0mV - alias V_m mV = V_abs - E_L - I_syn pA = 0pA end equations: @@ -17,6 +15,7 @@ neuron iaf: E_L mV = -65mV C_m pF = 250pF tau_m ms = 10ms + I_syn pA = 10pA end input: @@ -27,7 +26,6 @@ neuron iaf: update: integrate(V_abs) - I_syn = spikes.get_sum() end end \ No newline at end of file diff --git a/src/test/resources/tutorial/12.rc_neuron_rel.nestml b/src/test/resources/tutorial/12.rc_neuron_rel.nestml new file mode 100644 index 000000000..1adb8920a --- /dev/null +++ b/src/test/resources/tutorial/12.rc_neuron_rel.nestml @@ -0,0 +1,32 @@ +/* + A straight forward implementation of the RC circuit approach +*/ +neuron rc_neuron_rel: + + state: + V_abs mV = 0mV + alias V_m mV = V_abs + E_L + end + + equations: + V_abs' = -1/tau_m * V_abs + 1/C_m*I_syn + end + + parameter: + E_L mV = -70mV + C_m pF = 250pF + tau_m ms = 10ms + I_syn pA = 10pA + end + + input: + spikes <- spike + end + + output: spike + + update: + integrate(V_abs) + end + +end \ No newline at end of file diff --git a/src/test/resources/tutorial/21_rc_fire.nestml b/src/test/resources/tutorial/21_rc_fire.nestml new file mode 100644 index 000000000..c908bf090 --- /dev/null +++ b/src/test/resources/tutorial/21_rc_fire.nestml @@ -0,0 +1,37 @@ +/* + A straight forward implementation of the RC circuit approach. + Extends the integrate method with a threshold and fire behaviour. +*/ +neuron rc_fire: + + state: + V_abs mV = 0mV + alias V_m mV = V_abs + E_L + + end + + equations: + V_abs' = -1/tau_m * V_abs + 1/C_m*I_syn + end + + parameter: + E_L mV = -70mV + C_m pF = 250pF + tau_m ms = 10ms + I_syn pA = 0pA + alias V_th mV = -55mV - E_L + alias V_reset mV = -65mV - E_L + end + + input: + spikes <- spike + end + + output: spike + + update: + integrate(V_abs) + + end + +end \ No newline at end of file diff --git a/src/test/resources/tutorial/2_integrate_and_reset.nestml b/src/test/resources/tutorial/22_rc_refractory.nestml similarity index 75% rename from src/test/resources/tutorial/2_integrate_and_reset.nestml rename to src/test/resources/tutorial/22_rc_refractory.nestml index deb5ada05..6ae79b566 100644 --- a/src/test/resources/tutorial/2_integrate_and_reset.nestml +++ b/src/test/resources/tutorial/22_rc_refractory.nestml @@ -2,12 +2,11 @@ A straight forward implementation of the RC circuit approach. Extends the integrate method with a threshold and fire behaviour. */ -neuron iaf_reset: +neuron rc_refractory: state: V_abs mV = 0mV alias V_m mV = V_abs + E_L - I_syn pA = 0pA end equations: @@ -15,11 +14,12 @@ neuron iaf_reset: end parameter: - E_L mV = -65mV + E_L mV = -70mV C_m pF = 250pF tau_m ms = 10ms - alias V_th mV = 55mV + E_L - alias V_reset mV = 10mV + E_L + I_syn pA = 10pA + alias V_th mV = -55mV - E_L + alias V_reset mV = -65mV - E_L end input: @@ -32,8 +32,9 @@ neuron iaf_reset: integrate(V_abs) if V_abs > V_th: V_abs = V_reset + emit_spike() end - I_syn = spikes.get_sum() end + end \ No newline at end of file diff --git a/src/test/resources/tutorial/23_rc_alpha.nestml b/src/test/resources/tutorial/23_rc_alpha.nestml new file mode 100644 index 000000000..9a24b6d77 --- /dev/null +++ b/src/test/resources/tutorial/23_rc_alpha.nestml @@ -0,0 +1,47 @@ +/* + A straight forward implementation of the RC circuit approach. + Extends firing model with an additional refractory state. It is entered directly after a spike is fired. +*/ +neuron rc_refractory: + + state: + V_abs mV = 0mV + alias V_m mV = V_abs + E_L + end + + equations: + V_abs' = -1/tau_m * V_abs + 1/C_m*I_syn + end + + parameter: + E_L mV = -70mV + C_m pF = 250pF + tau_m ms = 10ms + I_syn pA = 10pA + alias V_th mV = -55mV - E_L + alias V_reset mV = -65mV - E_L + refractory_timeout ms = 5ms + refractory_counts integer = 0 + end + + input: + spikes <- spike + end + + output: spike + + update: + if refractory_counts == 0: + integrate(V_abs) + if V_abs > V_th: + V_abs = V_reset + emit_spike() + refractory_counts = steps(refractory_timeout) + end + else: + refractory_counts -= 1 + end + end + + +end \ No newline at end of file