Warning
This version of the documentation is NOT an official release. You are looking at ‘latest’, which is in active and ongoing development. You can change versions on the bottom left of the screen.
Note
Click here to download the full example code
Example using Hodgkin-Huxley neuron¶
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)