Gap Junctions: Two neuron exampleΒΆ

Run this example as a Jupyter notebook:

See our guide for more information and troubleshooting.

This script simulates two Hodgkin-Huxley neurons of type hh_psc_alpha_gap connected by a gap junction. Both neurons receive a constant current of 100.0 pA. The neurons are initialized with different membrane potentials and synchronize over time due to the gap-junction connection.

import matplotlib.pyplot as plt
import nest
import numpy


First we set the resolution of the simulation, create two neurons and create a voltmeter for recording.

nest.resolution = 0.05

neuron = nest.Create("hh_psc_alpha_gap", 2)

vm = nest.Create("voltmeter", params={"interval": 0.1})

Then we set the constant current input, modify the inital membrane potential of one of the neurons and connect the neurons to the voltmeter.

neuron.I_e = 100.0
neuron[0].V_m = -10.0

nest.Connect(vm, neuron, "all_to_all")

In order to create the gap_junction connection we employ the all_to_all connection rule: Gap junctions are bidirectional connections, therefore we need to connect neuron[0] to neuron[1] and neuron[1] to neuron[0]:

    neuron, neuron, {"rule": "all_to_all", "allow_autapses": False}, {"synapse_model": "gap_junction", "weight": 0.5}

Finally we start the simulation and plot the membrane potentials of both neurons.


senders =["senders"]
times =["times"]
v_m_values =["V_m"]

plt.plot(times[numpy.where(senders == 1)], v_m_values[numpy.where(senders == 1)], "r-")
plt.plot(times[numpy.where(senders == 2)], v_m_values[numpy.where(senders == 2)], "g-")
plt.xlabel("time (ms)")
plt.ylabel("membrane potential (mV)")

Gallery generated by Sphinx-Gallery