Note
Go to the end to download the full example code.
Example using Hodgkin-Huxley neuron¶
Run this example as a Jupyter notebook:
![]()
See our guide for more information and troubleshooting.
This example produces a rate-response (FI) curve of the Hodgkin-Huxley
neuron hh_psc_alpha
in response to a range of different current (DC) stimulations.
The result is plotted using matplotlib.
Since a DC input affects only the neuron’s channel dynamics, this routine does not yet check correctness of synaptic response.
import matplotlib.pyplot as plt
import nest
import numpy as np
nest.set_verbosity("M_WARNING")
nest.ResetKernel()
simtime = 1000
# Amplitude range, in pA
dcfrom = 0
dcstep = 20
dcto = 2000
h = 0.1 # simulation step size in mS
neuron = nest.Create("hh_psc_alpha")
sr = nest.Create("spike_recorder")
sr.record_to = "memory"
nest.Connect(neuron, sr, syn_spec={"weight": 1.0, "delay": h})
# Simulation loop
n_data = int(dcto / float(dcstep))
amplitudes = np.zeros(n_data)
event_freqs = np.zeros(n_data)
for i, amp in enumerate(range(dcfrom, dcto, dcstep)):
neuron.I_e = float(amp)
print(f"Simulating with current I={amp} pA")
nest.Simulate(1000) # one second warm-up time for equilibrium state
sr.n_events = 0 # then reset spike counts
nest.Simulate(simtime) # another simulation call to record firing rate
n_events = sr.n_events
amplitudes[i] = amp
event_freqs[i] = n_events / (simtime / 1000.0)
plt.plot(amplitudes, event_freqs)
plt.show()