A model using a single astrocyte with calcium dynamics


Run this example as a Jupyter notebook:

See our guide for more information and troubleshooting.


This script simulates an astrocyte with the model astrocyte_lr_1994, which implements the dynamics in the astrocyte based on [1], [2], and [3]. Recordings are made for two variables in the astrocyte, inositol 1,4,5-trisphosphate (IP3) and cytosolic calcium. The astrocyte is driven by a Poissonian spike train which induces the generation of IP3 in the astrocyte, which in turn influences the calcium dynamics in the astrocyte.

See Also

A tripartite interaction between two neurons and one astrocyte

References

Import all necessary modules for simulation and plotting.

import matplotlib.pyplot as plt
import nest

Set parameters for the simulation.

# simulation time
sim_time = 60000
# astrocyte parameters
params_astro = {"IP3_0": 0.16}
# Poisson input for the astrocyte
poisson_rate = 1.0
poisson_weight = 0.1

Create astrocyte and devices and connect them.

astrocyte = nest.Create("astrocyte_lr_1994", params=params_astro)
ps_astro = nest.Create("poisson_generator", params={"rate": poisson_rate})
mm_astro = nest.Create("multimeter", params={"record_from": ["IP3", "Ca_astro"]})
nest.Connect(ps_astro, astrocyte, syn_spec={"weight": poisson_weight})
nest.Connect(mm_astro, astrocyte)

Run simulation and get results.

nest.Simulate(sim_time)
data = mm_astro.events

Create and show plots.

fig, axes = plt.subplots(2, 1, sharex=True, figsize=(6.4, 4.8), dpi=100)
axes[0].plot(data["times"], data["IP3"])
axes[1].plot(data["times"], data["Ca_astro"])
axes[0].set_ylabel(r"[IP$_{3}$] ($\mu$M)")
axes[1].set_ylabel(r"[Ca$^{2+}$] ($\mu$M)")
axes[1].set_xlabel("Time (ms)")
plt.tight_layout()
plt.show()
plt.close()

Gallery generated by Sphinx-Gallery