Note
Go to the end to download the full example code.
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()