{ "cells": [ { "cell_type": "markdown", "id": "2d0a9f7d", "metadata": {}, "source": [ "# Radial diffusion" ] }, { "cell_type": "markdown", "id": "90b61454", "metadata": {}, "source": [ "
Radial diffusion can be implemented in rxd using multicompartment reactions. By creating a series of shells and borders with reactions between them dependent the diffusion coefficient.
" ] }, { "cell_type": "code", "execution_count": 1, "id": "b6fc941c", "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:37:00.082167Z", "iopub.status.busy": "2025-08-18T03:37:00.082016Z", "iopub.status.idle": "2025-08-18T03:37:01.202456Z", "shell.execute_reply": "2025-08-18T03:37:01.202028Z" } }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from neuron import n, rxd\n", "from neuron.units import nM, uM\n", "from matplotlib import pyplot\n", "import numpy\n", "\n", "n.load_file(\"stdrun.hoc\")" ] }, { "cell_type": "markdown", "id": "e87c7adb", "metadata": {}, "source": [ "Create the NEURON, in this case a simply dendrite connected to a soma." ] }, { "cell_type": "code", "execution_count": 2, "id": "832bcfce", "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:37:01.204367Z", "iopub.status.busy": "2025-08-18T03:37:01.204145Z", "iopub.status.idle": "2025-08-18T03:37:01.212174Z", "shell.execute_reply": "2025-08-18T03:37:01.211810Z" } }, "outputs": [ { "data": { "text/plain": [ "dend" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "soma = n.Section(\"soma\")\n", "soma.L = soma.diam = 25\n", "soma.nseg = 1\n", "\n", "dend = n.Section(\"dend\")\n", "dend.L = 20\n", "dend.diam = 5\n", "dend.nseg = 101\n", "dend.connect(soma)" ] }, { "cell_type": "markdown", "id": "462ac70c", "metadata": {}, "source": [ "Following the rxd Where/Who/What framework start by defining the where the diffusion takes place. Here we use 5 shells each with thickness 1μM in the dendrite and 5μM in the soma.
" ] }, { "cell_type": "code", "execution_count": 3, "id": "099f4b58", "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:37:01.214938Z", "iopub.status.busy": "2025-08-18T03:37:01.214787Z", "iopub.status.idle": "2025-08-18T03:37:01.222792Z", "shell.execute_reply": "2025-08-18T03:37:01.222412Z" } }, "outputs": [], "source": [ "# Where -- define the shells and borders\n", "N = 5 # number of shells -- must be >= 2\n", "\n", "# Where -- shells and border between them\n", "shells = []\n", "border = []\n", "for i in range(N - 1):\n", " shells.append(\n", " rxd.Region(\n", " n.allsec(),\n", " name=f\"shell{i}\",\n", " geometry=rxd.Shell(i / N, (1.0 + i) / N),\n", " )\n", " )\n", " border.append(\n", " rxd.Region(\n", " n.allsec(),\n", " name=f\"border{i}\",\n", " geometry=rxd.FixedPerimeter(2.0 * n.PI * (1.0 + i)),\n", " )\n", " )\n", "\n", "# the outer shell corresponds NEURON section concentration e.g. dend(0.5).cai\n", "shells.append(\n", " rxd.Region(\n", " n.allsec(),\n", " nrn_region=\"i\",\n", " name=f\"shell{N}\",\n", " geometry=rxd.Shell((N - 1.0) / N, 1.0),\n", " )\n", ")" ] }, { "cell_type": "markdown", "id": "34222335", "metadata": {}, "source": [ "Next we define 'Who' the calcium that is diffusing. Because multicompartment reactions are specified in moleques/μ\n", "m2\n", "/ms we need to scale the diffusion coefficient used in the reactions.\n", "We start the simulation with the a high concentration (1μ\n", "M) in the middle of the dendrite on the outer shell.
" ] }, { "cell_type": "code", "execution_count": 4, "id": "08248974", "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:37:01.225965Z", "iopub.status.busy": "2025-08-18T03:37:01.224203Z", "iopub.status.idle": "2025-08-18T03:37:01.232983Z", "shell.execute_reply": "2025-08-18T03:37:01.232598Z" } }, "outputs": [], "source": [ "# Who -- calcium with an inhomogeneous initial condition\n", "Dca = 0.6 # um^2/ms\n", "\n", "# scale factor so the flux (Dca/dr)*Ca has units molecules/um^2/ms (where dr is the thickness of the shell)\n", "mM_to_mol_per_um = 6.0221409e23 * 1e-18\n", "\n", "ca = rxd.Species(\n", " shells,\n", " d=Dca,\n", " name=\"ca\",\n", " charge=2,\n", " initial=lambda nd: 1.0 * uM\n", " if 9.5 < nd.x3d - soma.L < 10.5 and nd.region == shells[-1]\n", " else 60 * nM,\n", ")" ] }, { "cell_type": "markdown", "id": "320330ce", "metadata": {}, "source": [ "
Finally we specify 'What' the reactions that perform the radial diffusion.
\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "48de464c", "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:37:01.234917Z", "iopub.status.busy": "2025-08-18T03:37:01.234595Z", "iopub.status.idle": "2025-08-18T03:37:01.241633Z", "shell.execute_reply": "2025-08-18T03:37:01.239777Z" } }, "outputs": [], "source": [ "# What -- use reactions to setup diffusion between the shells\n", "cas = [ca[reg] for reg in shells] # calcium on the shells\n", "\n", "# create the multi-compartment reactions between the pairs of shells\n", "diffusions = []\n", "for i in range(N - 1):\n", " diffusions.append(\n", " rxd.MultiCompartmentReaction(\n", " cas[i],\n", " cas[i + 1],\n", " mM_to_mol_per_um * Dca,\n", " mM_to_mol_per_um * Dca,\n", " border=border[i],\n", " )\n", " )" ] }, { "cell_type": "markdown", "id": "c61517bc", "metadata": {}, "source": [ "Now run the simulation and plot the results. The concentrations rapidly equilibrate between the shells, the speed is dependent on the diffusion coefficient, which could be reduced to account for tortuosity of macromolecular crowding in the cytosol. Additionally calcium buffering and uptake could be included with additional reactions and would also reduce this speed.
" ] }, { "cell_type": "code", "execution_count": 6, "id": "919703c6", "metadata": { "execution": { "iopub.execute_input": "2025-08-18T03:37:01.243804Z", "iopub.status.busy": "2025-08-18T03:37:01.243101Z", "iopub.status.idle": "2025-08-18T03:37:05.354807Z", "shell.execute_reply": "2025-08-18T03:37:05.354376Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "<>:15: SyntaxWarning: invalid escape sequence '\\m'\n", "<>:16: SyntaxWarning: invalid escape sequence '\\m'\n", "<>:29: SyntaxWarning: invalid escape sequence '\\m'\n", "<>:15: SyntaxWarning: invalid escape sequence '\\m'\n", "<>:16: SyntaxWarning: invalid escape sequence '\\m'\n", "<>:29: SyntaxWarning: invalid escape sequence '\\m'\n", "/tmp/ipykernel_8131/3075494742.py:15: SyntaxWarning: invalid escape sequence '\\m'\n", " pyplot.xlabel(\"x ($\\mu$m)\")\n", "/tmp/ipykernel_8131/3075494742.py:16: SyntaxWarning: invalid escape sequence '\\m'\n", " pyplot.ylabel(\"r ($\\mu$m)\")\n", "/tmp/ipykernel_8131/3075494742.py:29: SyntaxWarning: invalid escape sequence '\\m'\n", " pyplot.xlabel(\"x ($\\mu$m)\")\n" ] }, { "data": { "text/plain": [ "Text(0, 0.5, 'Ca$^{+2}$ (nM)')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "