{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Ball and stick 2: Build a ring network of ball-and-stick cells" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This page is the second in a series where we build a multicompartment cell and evolve it into a network of cells running on a parallel machine. In this page, we build a ring network of ball-and-stick cells created in the previous page. In this case, we make N cells where cell n makes an excitatory synapse onto cell n + 1 and the last, Nth cell in the network projects to the first cell. We will drive the first cell and visualize the spikes of the network.\n", "\n", "In practice, you will likely want to separate the specification of the cell type and the use of that cell type into separate files, but we'll ignore that here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generic cell class\n", "

We'll begin by splitting the BallAndStick class into two parts: a generic Cell class and that which is specific to the BallAndStick model. This will allow us to focus our attention on the parts that we're working on and to make code that we can reuse later.

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we load the NEURON library, of course; we'll load NEURON's built-in graphics library as well to allow visual inspection of the sizes of the diameters." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:24.979327Z", "iopub.status.busy": "2025-08-18T03:35:24.979047Z", "iopub.status.idle": "2025-08-18T03:35:25.320201Z", "shell.execute_reply": "2025-08-18T03:35:25.319792Z" } }, "outputs": [], "source": [ "from neuron import n, gui\n", "from neuron.units import ms, mV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will also want to use NEURON's standard run library, so let's go ahead and load that too:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.322471Z", "iopub.status.busy": "2025-08-18T03:35:25.322262Z", "iopub.status.idle": "2025-08-18T03:35:25.328661Z", "shell.execute_reply": "2025-08-18T03:35:25.328300Z" } }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n.load_file(\"stdrun.hoc\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The generic Cell class (we'll expand this later):" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.359723Z", "iopub.status.busy": "2025-08-18T03:35:25.359372Z", "iopub.status.idle": "2025-08-18T03:35:25.362819Z", "shell.execute_reply": "2025-08-18T03:35:25.362489Z" } }, "outputs": [], "source": [ "class Cell:\n", " def __init__(self, gid):\n", " self._gid = gid\n", " self._setup_morphology()\n", " self.all = self.soma.wholetree()\n", " self._setup_biophysics()\n", "\n", " def __repr__(self):\n", " return \"{}[{}]\".format(self.name, self._gid)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the BallAndStick class:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.364587Z", "iopub.status.busy": "2025-08-18T03:35:25.364445Z", "iopub.status.idle": "2025-08-18T03:35:25.368560Z", "shell.execute_reply": "2025-08-18T03:35:25.368219Z" } }, "outputs": [], "source": [ "class BallAndStick(Cell):\n", " name = \"BallAndStick\"\n", "\n", " def _setup_morphology(self):\n", " self.soma = n.Section(\"soma\", self)\n", " self.dend = n.Section(\"dend\", self)\n", " self.dend.connect(self.soma)\n", " self.soma.L = self.soma.diam = 12.6157\n", " self.dend.L = 200\n", " self.dend.diam = 1\n", "\n", " def _setup_biophysics(self):\n", " for sec in self.all:\n", " sec.Ra = 100 # Axial resistance in Ohm * cm\n", " sec.cm = 1 # Membrane capacitance in micro Farads / cm^2\n", " self.soma.insert(n.hh)\n", " for seg in self.soma:\n", " seg.hh.gnabar = 0.12 # Sodium conductance in S/cm2\n", " seg.hh.gkbar = 0.036 # Potassium conductance in S/cm2\n", " seg.hh.gl = 0.0003 # Leak conductance in S/cm2\n", " seg.hh.el = -54.3 # Reversal potential in mV\n", " # Insert passive current in the dendrite\n", " self.dend.insert(n.pas)\n", " for seg in self.dend:\n", " seg.pas.g = 0.001 # Passive conductance in S/cm2\n", " seg.pas.e = -65 # Leak reversal potential mV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The only changes to the BallAndStick definition are the removal of the `__init__` and `__repr__` methods, the specification of the name of the class, the removal of the definition of self.all (now handled by the Cell class), and the change to the class declaration (the very first line) to indicate that BallAndStick is a type of Cell." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adjusting position and orientation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When we have more than one cell, we'd like to be able to position them so that we can see them clearly. We'll introduce new methods `_set_position` and `_rotate_z` to the Cell class to allow us to do this:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.370812Z", "iopub.status.busy": "2025-08-18T03:35:25.370203Z", "iopub.status.idle": "2025-08-18T03:35:25.375139Z", "shell.execute_reply": "2025-08-18T03:35:25.374819Z" } }, "outputs": [], "source": [ "class Cell:\n", " def __init__(self, gid, x, y, z, theta):\n", " self._gid = gid\n", " self._setup_morphology()\n", " self.all = self.soma.wholetree()\n", " self._setup_biophysics()\n", " self.x = self.y = self.z = 0 # <-- NEW\n", " n.define_shape()\n", " self._rotate_z(theta) # <-- NEW\n", " self._set_position(x, y, z) # <-- NEW\n", "\n", " def __repr__(self):\n", " return \"{}[{}]\".format(self.name, self._gid)\n", "\n", " # everything below here is NEW\n", "\n", " def _set_position(self, x, y, z):\n", " for sec in self.all:\n", " for i in range(sec.n3d()):\n", " sec.pt3dchange(\n", " i,\n", " x - self.x + sec.x3d(i),\n", " y - self.y + sec.y3d(i),\n", " z - self.z + sec.z3d(i),\n", " sec.diam3d(i),\n", " )\n", " self.x, self.y, self.z = x, y, z\n", "\n", " def _rotate_z(self, theta):\n", " \"\"\"Rotate the cell about the Z axis.\"\"\"\n", " for sec in self.all:\n", " for i in range(sec.n3d()):\n", " x = sec.x3d(i)\n", " y = sec.y3d(i)\n", " c = n.cos(theta)\n", " s = n.sin(theta)\n", " xprime = x * c - y * s\n", " yprime = x * s + y * c\n", " sec.pt3dchange(i, xprime, yprime, sec.z3d(i), sec.diam3d(i))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you are writing a script to do this, and revising the classes as we make changes, everything should be good. If you are following along in a Jupyter notebook, you will need to rerun the definition of BallAndStick above for the changes to take effect:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.376792Z", "iopub.status.busy": "2025-08-18T03:35:25.376652Z", "iopub.status.idle": "2025-08-18T03:35:25.380725Z", "shell.execute_reply": "2025-08-18T03:35:25.380405Z" } }, "outputs": [], "source": [ "## Run only for jupyter\n", "class BallAndStick(Cell):\n", " name = \"BallAndStick\"\n", "\n", " def _setup_morphology(self):\n", " self.soma = n.Section(\"soma\", self)\n", " self.dend = n.Section(\"dend\", self)\n", " self.dend.connect(self.soma)\n", " self.soma.L = self.soma.diam = 12.6157\n", " self.dend.L = 200\n", " self.dend.diam = 1\n", "\n", " def _setup_biophysics(self):\n", " for sec in self.all:\n", " sec.Ra = 100 # Axial resistance in Ohm * cm\n", " sec.cm = 1 # Membrane capacitance in micro Farads / cm^2\n", " self.soma.insert(n.hh)\n", " for seg in self.soma:\n", " seg.hh.gnabar = 0.12 # Sodium conductance in S/cm2\n", " seg.hh.gkbar = 0.036 # Potassium conductance in S/cm2\n", " seg.hh.gl = 0.0003 # Leak conductance in S/cm2\n", " seg.hh.el = -54.3 # Reversal potential in mV\n", " # Insert passive current in the dendrite\n", " self.dend.insert(n.pas)\n", " for seg in self.dend:\n", " seg.pas.g = 0.001 # Passive conductance in S/cm2\n", " seg.pas.e = -65 # Leak reversal potential mV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a test cell. Note that we now have to specify `x`, `y`, `z`, and `theta` in addition to the `gid`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.382824Z", "iopub.status.busy": "2025-08-18T03:35:25.382233Z", "iopub.status.idle": "2025-08-18T03:35:25.409779Z", "shell.execute_reply": "2025-08-18T03:35:25.409364Z" } }, "outputs": [], "source": [ "mycell = BallAndStick(0, 0, 0, 0, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you got a `TypeError`, that means you did not rerun the definition of BallAndStick. Go back and do that and then the above should work." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We no longer need the test cell, so let's delete it:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.412465Z", "iopub.status.busy": "2025-08-18T03:35:25.411884Z", "iopub.status.idle": "2025-08-18T03:35:25.414727Z", "shell.execute_reply": "2025-08-18T03:35:25.414367Z" } }, "outputs": [], "source": [ "del mycell" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Construct and position our cells" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to construct an arbitrary number of cells and position them in a circle. For the sake of reusability, we'll make a function that takes two parameters: `N`, the number of cells, and `r` the radius of the circle (in microns). This function will return a list of `N` cells centered around the origin on the XY plane:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.416847Z", "iopub.status.busy": "2025-08-18T03:35:25.416189Z", "iopub.status.idle": "2025-08-18T03:35:25.419465Z", "shell.execute_reply": "2025-08-18T03:35:25.419121Z" } }, "outputs": [], "source": [ "def create_n_BallAndStick(num, r):\n", " \"\"\"num = number of cells; r = radius of circle\"\"\"\n", " cells = []\n", " for i in range(num):\n", " theta = i * 2 * n.PI / num\n", " cells.append(BallAndStick(i, n.cos(theta) * r, n.sin(theta) * r, 0, theta))\n", " return cells" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create 7 cells with r = 50 microns:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.421139Z", "iopub.status.busy": "2025-08-18T03:35:25.421003Z", "iopub.status.idle": "2025-08-18T03:35:25.424168Z", "shell.execute_reply": "2025-08-18T03:35:25.423809Z" } }, "outputs": [], "source": [ "my_cells = create_n_BallAndStick(7, 50)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot them using NEURON's built-in graphics:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.426278Z", "iopub.status.busy": "2025-08-18T03:35:25.425701Z", "iopub.status.idle": "2025-08-18T03:35:25.429861Z", "shell.execute_reply": "2025-08-18T03:35:25.429554Z" } }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ps = n.PlotShape(True)\n", "ps.show(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using functions like this is extremely flexible. We can switch to 5 cells like this:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.431399Z", "iopub.status.busy": "2025-08-18T03:35:25.431248Z", "iopub.status.idle": "2025-08-18T03:35:25.434874Z", "shell.execute_reply": "2025-08-18T03:35:25.434559Z" } }, "outputs": [], "source": [ "my_cells = create_n_BallAndStick(5, 50)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The old cells disappear (they get garbage collected, as there are no longer any references to them), and the new cells appear in the existing graph." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A first synapse, and input via a NetStim" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okay, we have our ball-and-stick cells arranged in a ring. Let’s now stimulate a cell and see that it responds appropriately. Instead of stimulating with a current electrode as we did before, let’s assign a virtual synapse so that we get acquainted with driving the cells through synaptic events.\n", "\n", "Event-based communication between objects in NEURON takes place via network connection objects called NetCons. Each NetCon has a source and target, where the source is typically a spike threshold detector. When a spike is detected, the NetCon sends a message to a target, usually a synapse on a postsynaptic cell.\n", "\n", "A NetStim is a spike generator that can be used as the source in a NetCon, behaving as external input onto the synapse of a target cell. The following code makes a NetStim object that generates one spike at time t=9. The NetCon then adds another ms delay to deliver a synaptic event at time t=10 onto the first cell.\n", "\n", "The code below makes a stimulator and attaches it to a synapse object (ExpSyn) that behaves much like an AMPA synapse – it conducts current as a decaying exponential function." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.437061Z", "iopub.status.busy": "2025-08-18T03:35:25.436482Z", "iopub.status.idle": "2025-08-18T03:35:25.439831Z", "shell.execute_reply": "2025-08-18T03:35:25.439514Z" } }, "outputs": [], "source": [ "stim = n.NetStim() # Make a new stimulator\n", "\n", "## Attach it to a synapse in the middle of the dendrite\n", "## of the first cell in the network. (Named 'syn_' to avoid\n", "## being overwritten with the 'syn' var assigned later.)\n", "syn_ = n.ExpSyn(my_cells[0].dend(0.5))\n", "\n", "stim.number = 1\n", "stim.start = 9\n", "ncstim = n.NetCon(stim, syn_)\n", "ncstim.delay = 1 * ms\n", "ncstim.weight[0] = 0.04 # NetCon weight is a vector." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Exponentially decaying currents, such as that generated by the synapse `syn_` have dynamics that depend on `tau`, the time constant. Let's specify a time constant of 2 ms:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.441962Z", "iopub.status.busy": "2025-08-18T03:35:25.441365Z", "iopub.status.idle": "2025-08-18T03:35:25.444044Z", "shell.execute_reply": "2025-08-18T03:35:25.443724Z" } }, "outputs": [], "source": [ "syn_.tau = 2 * ms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The parameter `tau` specifies how quickly the currents decay. The exact value of the current depends on the cell's membrane potential, and the synapse's reversal potential, `syn_.e`." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.446083Z", "iopub.status.busy": "2025-08-18T03:35:25.445446Z", "iopub.status.idle": "2025-08-18T03:35:25.449480Z", "shell.execute_reply": "2025-08-18T03:35:25.448709Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reversal potential = 0.0 mV\n" ] } ], "source": [ "print(\"Reversal potential = {} mV\".format(syn_.e))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running and plotting a simulation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Right now, there are no synapses between cells, but let's confirm that the first cell works correctly:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Recording" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.451339Z", "iopub.status.busy": "2025-08-18T03:35:25.451204Z", "iopub.status.idle": "2025-08-18T03:35:25.454324Z", "shell.execute_reply": "2025-08-18T03:35:25.454016Z" } }, "outputs": [], "source": [ "recording_cell = my_cells[0]\n", "soma_v = n.Vector().record(recording_cell.soma(0.5)._ref_v)\n", "dend_v = n.Vector().record(recording_cell.dend(0.5)._ref_v)\n", "t = n.Vector().record(n._ref_t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulating" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.456463Z", "iopub.status.busy": "2025-08-18T03:35:25.455661Z", "iopub.status.idle": "2025-08-18T03:35:25.463286Z", "shell.execute_reply": "2025-08-18T03:35:25.462971Z" } }, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n.finitialize(-65 * mV)\n", "n.continuerun(25 * ms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As before, if you're running in a Jupyter notebook, you'll need to tell it to display plots inline. Skip this step if you are running from a script:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:25.464814Z", "iopub.status.busy": "2025-08-18T03:35:25.464683Z", "iopub.status.idle": "2025-08-18T03:35:40.667650Z", "shell.execute_reply": "2025-08-18T03:35:40.665612Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Matplotlib is building the font cache; this may take a moment.\n" ] } ], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:40.671831Z", "iopub.status.busy": "2025-08-18T03:35:40.671590Z", "iopub.status.idle": "2025-08-18T03:35:40.942453Z", "shell.execute_reply": "2025-08-18T03:35:40.942050Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGdCAYAAAA8F1jjAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVcNJREFUeJzt3Xl4VOX9///nzGRmsu8kIRBWWURAEBTRalUowbrUqm2t1kJLtVpoVRAratXaVvp1t5ZW24+iP6tFrVurrUpRqQtuKCogqMieBQhkT2bL+f1xZiYZyDIhmSWZ1+O6zjUnZ07O3BlC8sp9v+/7WAzDMBARERGJQ9ZYN0BERESkIwoqIiIiErcUVERERCRuKaiIiIhI3FJQERERkbiloCIiIiJxS0FFRERE4paCioiIiMStpFg3oKdaWlooKysjIyMDi8US6+aIiIhIGAzDoK6ujuLiYqzWjvtN+nxQKSsro6SkJNbNEBERkcOwc+dOBg8e3OHzfT6oZGRkAOYXmpmZGePWiIiISDhqa2spKSkJ/h7vSJ8PKoHhnszMTAUVERGRPqarsg0V04qIiEjcUlARERGRuKWgIiIiInGrz9eoiIhI3+fz+fB4PLFuhvQim81GUlJSj5cOUVAREZGYqq+vZ9euXRiGEeumSC9LTU1l4MCBOByOw75G1ILK73//e5YsWcIVV1zBPffcA0BzczOLFi1ixYoVuFwuSktL+dOf/kRhYWG0miUiIjHk8/nYtWsXqampDBgwQAt39hOGYeB2u9m7dy9bt25l1KhRnS7q1pmoBJX333+fBx54gIkTJ4Ycv+qqq3jxxRd56qmnyMrKYsGCBZx77rm89dZb0WiWiIjEmMfjwTAMBgwYQEpKSqybI70oJSUFu93O9u3bcbvdJCcnH9Z1Il5MW19fz0UXXcRf//pXcnJygsdramp48MEHueuuuzjttNOYMmUKy5cv5+233+add96JdLNERCSOqCelfzrcXpSQa/RCOzo1f/58zjjjDGbOnBlyfO3atXg8npDjY8eOZciQIaxZs6bD67lcLmpra0M2ERER6Z8iOvSzYsUKPvzwQ95///1DnquoqMDhcJCdnR1yvLCwkIqKig6vuXTpUn7961/3dlNFREQkDkWsR2Xnzp1cccUVPPbYY4c9LtWeJUuWUFNTE9x27tzZa9cWERHp61atWsWRRx6Jz+eL6Otce+21/PznP4/oa0AEg8ratWvZs2cPxxxzDElJSSQlJbF69Wr+8Ic/kJSURGFhIW63m+rq6pDPq6yspKioqMPrOp3O4H19dH8fERGRUNdccw033HADNpsteOz111/nmGOOwel0csQRR/Dwww93eo1t27ZhsVgO2drWkF599dU88sgjfPXVV5H6UoAIBpUZM2bw6aefsm7duuA2depULrroouC+3W5n1apVwc/ZvHkzO3bsYPr06ZFqloj0krpmD8te+5L3t+2PdVNExO/NN99ky5YtnHfeecFjW7du5YwzzuDUU09l3bp1XHnllfzkJz/h5Zdf7vJ6//3vfykvLw9uU6ZMCT6Xn59PaWkpf/7znyPytQRELKhkZGQwfvz4kC0tLY28vDzGjx9PVlYW8+bNY+HChbz22musXbuWH/3oR0yfPp3jjz8+Us0SkV7yq+fWc/vLm7ngL++woawm1s2RfsIwDBrd3phs3V1w7h//+AcTJkwgJSWFvLw8Zs6cSUNDAy0tLdxyyy0MHjwYp9PJpEmTeOmll4KfF+itePLJJznppJNISUnh2GOP5fPPP+f9999n6tSppKenc/rpp7N3797g573//vt84xvfID8/n6ysLL7+9a/z4YcfhrRpxYoVfOMb3wgpubj//vsZPnw4d955J0ceeSQLFizg/PPP5+677+7ya8zLy6OoqCi42e32kOfPOussVqxY0a33rbtiujLt3XffjdVq5bzzzgtZ8E1E4luzx8e/15tF774Wg7/+7yvuuWByjFsl/UGTx8e4G7v+Sz8SNt5SSqojvF+L5eXlfP/73+e2227j29/+NnV1dbzxxhsYhsG9997LnXfeyQMPPMDkyZN56KGHOPvss9mwYQOjRo0KXuOmm27innvuYciQIfz4xz/mwgsvJCMjg3vvvZfU1FS++93vcuONNwZ7LOrq6pgzZw733XcfhmFw55138s1vfpMvvviCjIwMAN544w0uvPDCkLauWbPmkJm3paWlXHnllV1+nWeffTbNzc2MHj2aa665hrPPPjvk+eOOO45du3axbds2hg0bFtZ7111RDSqvv/56yMfJycksW7aMZcuWRbMZItJD63ZW4/a2BD9+eUMlzR4fyXZbJ58l0n+Ul5fj9Xo599xzGTp0KAATJkwA4I477uCXv/wlF1xwAQD/7//9P157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fchfOFu3bmXdunXk5uYyZMgQrrzySn77298yatQohg8fzq9+9SuKi4s555xzYtfoPqiz9zk3N5df//rXnHfeeRQVFbFlyxauueYajjjiCEpLS2PY6r5l/vz5PP744zz//PNkZGQE606ysrJISUkhKyuLefPmsXDhQnJzc8nMzOTnP/8506dP5/jjj49x6/uWrt7rLVu28Pjjj/PNb36TvLw8PvnkE6666ipOPvlkJk6cGNnGRX2eUR9x3333GUOGDDEcDodx3HHHGe+8806sm9SvfO973zMGDhxoOBwOY9CgQcb3vvc948svv4x1s/qF1157zQAO2ebMmWMYhjlF+Ve/+pVRWFhoOJ1OY8aMGcbmzZtj2+g+qLP3ubGx0Zg1a5YxYMAAw263G0OHDjUuueQSo6KiItbN7lPae38BY/ny5cFzmpqajJ/97GdGTk6OkZqaanz72982ysvLY9foPqqr93rHjh3GySefbOTm5hpOp9M44ogjjMWLFxs1NTURb5vF30ARERGRuKMaFREREYlbCioiIiIStxRUREREJG4pqIiIiEjcUlARERGRuKWgIiIiInFLQUVERETiloKKiIiIxC0FFREREYlbCioiIiIStxRUREREJG4pqIiIiEjc+v8BxRtLEJ6ZKzEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.plot(t, soma_v, label=\"soma(0.5)\")\n", "plt.plot(t, dend_v, label=\"dend(0.5)\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Recording synaptic conductance" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To understand the above graph, we may wish to consider the time series of synaptic current. Let's create a new Vector to monitor that:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:40.945494Z", "iopub.status.busy": "2025-08-18T03:35:40.944134Z", "iopub.status.idle": "2025-08-18T03:35:40.949595Z", "shell.execute_reply": "2025-08-18T03:35:40.948093Z" } }, "outputs": [], "source": [ "syn_i = n.Vector().record(syn_._ref_i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Only data that is explicitly recorded during a simulation is stored, so we will have to rerun the simulation to compute those currents:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:40.951182Z", "iopub.status.busy": "2025-08-18T03:35:40.951037Z", "iopub.status.idle": "2025-08-18T03:35:40.965528Z", "shell.execute_reply": "2025-08-18T03:35:40.962943Z" } }, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n.finitialize(-65 * mV)\n", "n.continuerun(25 * ms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can plot:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:40.967245Z", "iopub.status.busy": "2025-08-18T03:35:40.967095Z", "iopub.status.idle": "2025-08-18T03:35:41.219601Z", "shell.execute_reply": "2025-08-18T03:35:41.219188Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(8, 4))\n", "ax1 = fig.add_subplot(2, 1, 1)\n", "soma_plot = ax1.plot(t, soma_v, color=\"black\", label=\"soma(0.5)\")\n", "dend_plot = ax1.plot(t, dend_v, color=\"red\", label=\"dend(0.5)\")\n", "rev_plot = ax1.plot(\n", " [t[0], t[-1]], [syn_.e, syn_.e], label=\"syn reversal\", color=\"blue\", linestyle=\":\"\n", ")\n", "ax1.legend()\n", "ax1.set_ylabel(\"mV\")\n", "ax1.set_xticks([]) # Use ax2's tick labels\n", "\n", "ax2 = fig.add_subplot(2, 1, 2)\n", "syn_plot = ax2.plot(t, syn_i, color=\"blue\", label=\"synaptic current\")\n", "ax2.legend()\n", "ax2.set_ylabel(n.units(\"ExpSyn.i\"))\n", "ax2.set_xlabel(\"time (ms)\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Try setting the recording vectors to one of the other cells. They should be unresponsive to the stimulus." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Connecting the cells" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okay. We have our ball-and-stick cells arranged in a ring, and we have attached a stimulus onto the first cell. Next, we need to connect an axon from cell n to a synapse at the middle of the dendrite on cell n + 1. For this model, the particular dynamics of the axons do not need to be explicitly modeled. When the soma fires an action potential, we assume the spike propagates down the axon and induces a synaptic event onto the dendrite of the target cell with some delay. We can therefore connect a spike detector in the soma of the presynaptic cell that triggers a synaptic event in the target cell via a NetCon.\n", "\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:41.221401Z", "iopub.status.busy": "2025-08-18T03:35:41.221231Z", "iopub.status.idle": "2025-08-18T03:35:41.227787Z", "shell.execute_reply": "2025-08-18T03:35:41.227409Z" } }, "outputs": [], "source": [ "syns = []\n", "netcons = []\n", "for source, target in zip(my_cells, my_cells[1:] + [my_cells[0]]):\n", " syn = n.ExpSyn(target.dend(0.5))\n", " nc = n.NetCon(source.soma(0.5)._ref_v, syn, sec=source.soma)\n", " nc.weight[0] = 0.05\n", " nc.delay = 5\n", " netcons.append(nc)\n", " syns.append(syn)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `zip` pairs each cell with the next cell, where the addition places the first cell as the cell after the last cell. The seemingly repetitive specification of the source section in the `NetCon` constructor's `sec=` argument is required for technical reasons." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see what happens to the first cell:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:41.229314Z", "iopub.status.busy": "2025-08-18T03:35:41.229169Z", "iopub.status.idle": "2025-08-18T03:35:41.410635Z", "shell.execute_reply": "2025-08-18T03:35:41.407749Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGdCAYAAAA8F1jjAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcrtJREFUeJzt3Xl8VNXZB/DfvbNm3xeWhH1VZFVMXeqCRou21qUuqFB9bbXQqiBWqtVWq9i6VOur1baKtmqxvq221bpQcEFFQRAUEFBZBZKwZU9mu+f94y5zZzIzmZlkstz5fT+ffJLcmUwOk8O9z33Oc86RhBACRERERH2Q3NsNICIiIoqGgQoRERH1WQxUiIiIqM9ioEJERER9FgMVIiIi6rMYqBAREVGfxUCFiIiI+iwGKkRERNRn2Xu7AV2lKAr27duHnJwcSJLU280hIiKiOAgh0NTUhIEDB0KWo+dN+n2gsm/fPlRUVPR2M4iIiCgJe/bsweDBg6M+3u8DlZycHADqPzQ3N7eXW0NERETxaGxsREVFhXEdj6bfByr6cE9ubi4DFSIion6ms7INFtMSERFRn8VAhYiIiPosBipERETUZ/X7GhUiIur/AoEAfD5fbzeDupHNZoPdbu/y0iEMVIiIqFc1Nzfj66+/hhCit5tC3SwzMxMDBgyA0+lM+jV6LFC59957sWjRIlx//fV46KGHAADt7e1YsGABli5dCo/Hg+rqajz22GMoKyvrqWYREVEvCgQC+Prrr5GZmYmSkhIu3GkRQgh4vV4cOHAAO3bswKhRo2Iu6hZLjwQqa9aswRNPPIFjjjkm5PiNN96IV199FS+++CLy8vIwb948nH/++Xj//fd7ollERNTLfD4fhBAoKSlBRkZGbzeHulFGRgYcDgd27doFr9cLt9ud1OukvJi2ubkZs2bNwh//+EcUFBQYxxsaGvDkk0/iwQcfxGmnnYapU6diyZIl+OCDD/Dhhx+mullERNSHMJNiTclmUUJeoxvaEdPcuXMxc+ZMzJgxI+T42rVr4fP5Qo6PHTsWlZWVWLVqVdTX83g8aGxsDPkgIiIia0rp0M/SpUuxbt06rFmzpsNjNTU1cDqdyM/PDzleVlaGmpqaqK+5ePFi/PKXv+zuphIREVEflLKMyp49e3D99dfjueeeS3pcKpJFixahoaHB+NizZ0+3vTYREVF/t3z5cowbNw6BQCClv+eWW27Bj3/845T+DiCFgcratWtRV1eHKVOmwG63w26345133sHvfvc72O12lJWVwev1or6+PuTnamtrUV5eHvV1XS6Xsa8P9/chIiIKdfPNN+O2226DzWYzjr399tuYMmUKXC4XRo4ciaeffjrma+zcuROSJHX4MNeQ3nTTTXjmmWewffv2VP1TAKQwUDn99NPx2WefYf369cbHtGnTMGvWLONrh8OB5cuXGz+zdetW7N69G1VVValqVtoRQuAvq3bik91HerspRESUYu+99x6++uorXHDBBcaxHTt2YObMmTj11FOxfv163HDDDfif//kfvPHGG52+3n//+1/s37/f+Jg6darxWHFxMaqrq/H73/8+Jf8WXcoClZycHBx99NEhH1lZWSgqKsLRRx+NvLw8XH311Zg/fz7eeustrF27Ft///vdRVVWF448/PlXNSjurth/Cz/+5Cd997IPebgoRUaeEEGj1+nvlI9EF5/7v//4PEyZMQEZGBoqKijBjxgy0tLRAURTceeedGDx4MFwuFyZNmoTXX3/d+Dk9W/G3v/0NJ510EjIyMnDsscdi27ZtWLNmDaZNm4bs7GycffbZOHDggPFza9aswRlnnIHi4mLk5eXhm9/8JtatWxfSpqVLl+KMM84IKbl4/PHHMWzYMDzwwAMYN24c5s2bhwsvvBC//e1vO/03FhUVoby83PhwOBwhj5977rlYunRpQu9bonp1Zdrf/va3kGUZF1xwQciCb9R9tuxvMr5u9viR7eJixETUd7X5Ahh/e+d3+qmw+c5qZDrjO0fu378fl156KX7zm9/gu9/9LpqamrBy5UoIIfDwww/jgQcewBNPPIHJkyfjqaeewre//W1s2rQJo0aNMl7jjjvuwEMPPYTKykpcddVVuOyyy5CTk4OHH34YmZmZ+N73vofbb7/dyFg0NTVh9uzZeOSRRyCEwAMPPIBvfetb+OKLL5CTkwMAWLlyJS677LKQtq5atarDzNvq6mrccMMNnf47v/3tb6O9vR2jR4/GzTffjG9/+9shjx933HH4+uuvsXPnTgwdOjSu9y5RPXrVevvtt0O+d7vdePTRR/Hoo4/2ZDPSimxamqCmoQ0jS3N6rzFERBaxf/9++P1+nH/++RgyZAgAYMKECQCA+++/Hz/96U9xySWXAAB+/etf4623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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n.finitialize(-65 * mV)\n", "n.continuerun(100 * ms)\n", "plt.plot(t, soma_v, label=\"soma(0.5)\")\n", "plt.plot(t, dend_v, label=\"dend(0.5)\")\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we of course only plotting `my_cells[0]`, but the fact that it spikes more than just once suggests that spikes are being transmitted throughout the network.\n", "\n", "As an exercise, try rerunning the above plotting `my_cells[1]` alternatively or in-addition to `my_cells[0]`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can ask each of our existing `NetCon`s to record spike times in NEURON `Vector` objects using NetCon.record:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:41.412481Z", "iopub.status.busy": "2025-08-18T03:35:41.412309Z", "iopub.status.idle": "2025-08-18T03:35:41.416221Z", "shell.execute_reply": "2025-08-18T03:35:41.415855Z" } }, "outputs": [], "source": [ "spike_times = [n.Vector() for nc in netcons]\n", "for nc, spike_times_vec in zip(netcons, spike_times):\n", " nc.record(spike_times_vec)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once again, we rerun everything to 100 ms:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:41.419508Z", "iopub.status.busy": "2025-08-18T03:35:41.418536Z", "iopub.status.idle": "2025-08-18T03:35:41.454483Z", "shell.execute_reply": "2025-08-18T03:35:41.454091Z" } }, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n.finitialize(-65 * mV)\n", "n.continuerun(100 * ms)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Print out the results:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:41.458850Z", "iopub.status.busy": "2025-08-18T03:35:41.456550Z", "iopub.status.idle": "2025-08-18T03:35:41.463991Z", "shell.execute_reply": "2025-08-18T03:35:41.463630Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "cell 0: [10.925000000099914, 43.55000000010134, 76.17500000010875]\n", "cell 1: [17.450000000099543, 50.075000000102825, 82.70000000011024]\n", "cell 2: [23.975000000099172, 56.60000000010431, 89.22500000011172]\n", "cell 3: [30.5000000000988, 63.12500000010579, 95.7500000001132]\n", "cell 4: [37.02500000009986, 69.65000000010727]\n" ] } ], "source": [ "for i, spike_times_vec in enumerate(spike_times):\n", " print(\"cell {}: {}\".format(i, list(spike_times_vec)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each line represents one cell and lists all the times it fires: cell 0 fires first, then 1, 2, 3, 4, back to 0, etc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A more intuitive way of seeing this is to use a raster plot. Here's how to do that with matplotlib:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:35:41.466147Z", "iopub.status.busy": "2025-08-18T03:35:41.465565Z", "iopub.status.idle": "2025-08-18T03:35:41.598621Z", "shell.execute_reply": "2025-08-18T03:35:41.598232Z" } }, "outputs": [ { "data": { "image/png": "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XyxfvjzmzZsXs2fPPuZ+XV1dUS6Xa1tHR8fxHhIAGOKOOyw6Ozvj6aefjrVr177hfitWrIhKpVLburu7j/eQAMAQd1wfhSxdujQ2bNgQjz76aEybNu0N9y2VSlEqlY5rOACgudQVFkVRxOc///lYv359bN68OWbMmDFQcwEATaiusOjs7Ix777037r///mhra4v9+/dHRES5XI4xY8YMyIAAQPOo6xqLVatWRaVSiYsvvjimTJlS2372s58N1HwAQBOp+6MQAIBj8V0hAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApBEWAEAaYQEApGkpiqJo5AGr1WqUy+WoVCrR3t6e8jMPH3ktZt2yMSIidn1zQYwd1Zryc2Eged3SbLxmT25v9f3bGQsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAIE3dYfHoo4/GZZddFlOnTo2Wlpb4xS9+MQBjAQDNqO6wOHToULz//e+PH/zgBwMxDwDQxFrrfcLChQtj4cKFAzELANDk6g6LevX29kZvb2/tdrVaHehDAgCDZMAv3uzq6opyuVzbOjo6BvqQAMAgGfCwWLFiRVQqldrW3d090IcEAAbJgH8UUiqVolQqDfRhAIAhwN+xAADS1H3G4qWXXornn3++dnvPnj2xc+fOmDBhQkyfPj11OACgudQdFtu3b4+PfOQjtds33HBDREQsWbIkVq9enTYYANB86g6Liy++OIqiGIhZAIAm5xoLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0ggLACCNsAAA0rQURVE08oDVajXK5XJUKpVob29v5KEBgOP0Vt+/nbEAANIICwAgjbAAANII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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.figure()\n", "\n", "for i, spike_times_vec in enumerate(spike_times):\n", " plt.vlines(list(spike_times_vec), i + 0.5, i + 1.5)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This page has demonstrated various functionality to arrange, connect, and visualize a network and its output. As nice as it may seem, it needs some design work to make it flexible. The next part of the tutorial further organizes the functionality into more classes to make it more easily extended." ] } ], "metadata": { "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.10" } }, "nbformat": 4, "nbformat_minor": 2 }