Note
Go to the end to download the full example code
Example using Hodgkin-Huxley neuron¶
Run this example as a Jupyter notebook
For details and troubleshooting see How to run Jupyter notebooks.
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 nest
import numpy as np
import matplotlib.pyplot as plt
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.)
plt.plot(amplitudes, event_freqs)
plt.show()
Total running time of the script: ( 0 minutes 0.000 seconds)