{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Action Potential Tutorial\n", "## - from passive membrane to Hodgkin-Huxley model\n", "\n", "##### Developed in the Neural Engineering Laboratory at the University of Missouri by Ben Latimer & Ziao Chen\n", "\n", "\n", "\n", "## Introduction videos of neurobiology basics\n", "\n", "Note: This will not work inside the NeuroLab browser.If the videos below do not play, please visit https://youtu.be/ in your native browser." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from IPython.display import HTML,YouTubeVideo\n", "YouTubeVideo('PtKAeihnbv0')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "YouTubeVideo('RTRZNK9Aahc')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "YouTubeVideo('U0NpTdge3aw')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### In this tutorial, we'll explore the properties of the cell membrane and the mechanisms of the action potential. We'll introduce you how to simulate a cell in the NEURON + Python environment. If this is your first time coding, don't worry! Just click the \"Run\" button above to go through step-by-step. You don't need to change anything yet. \n", "\n", "### Before you start any project, you need to get the tools. In Python, we do this using the \"import\" statement in the cell below. Click \"Run\" to proceed." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from neuron import h\n", "\n", "h.load_file('stdrun.hoc')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1) Create the cell and define its geometry\n", "\n", "### NEURON defines a cell as a cylinder. Remember, cells in NEURON are simplified. We will make a one-compartment cell which is just a cylinder with length and diameter.\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#Create the soma section and define the default parameters\n", "soma = h.Section(name='soma')\n", "soma.diam = 200 # micrometers\n", "soma.L = 100 # micrometers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2) Define the cell's biophysics\n", "\n", "### Insert the Hodgkin-Huxley channels and define the conductance. First let's make a passive cell by setting the conductances of the active channels (gNa,gK) to 0. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "soma.cm = 1.4884e-4/6.2832e-4 # membrane capacitance uF/cm2\n", "\n", "soma.insert('hh')\n", "soma.gnabar_hh = 0 # Sodium channel\n", "soma.gkbar_hh = 0 # Potassium channel\n", "soma.gl_hh = 2.0e-5 # leak channel S/cm2\n", "soma.el_hh = -70 # reveral potential mV\n", "\n", "h.v_init= -60" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3) Inject Current\n", " \n", "### Neuroscientists call this experiment a \"current clamp\". We place an electrode into the cell and inject current." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Inject current in the middle of the soma\n", "stim = h.IClamp(soma(0.5))\n", "stim.delay = 100.0 # delay in ms\n", "stim.dur = 500.0 # duration in ms\n", "stim.amp = 1.0 # amplitude in nA" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4) Define simulation parameters and run!" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h.tstop = tstop = 800 # how long to run the simulation in ms\n", "h.dt = 0.025 # time step (resolution) of the simulation in ms\n", "\n", "# define two vectors for recording variables\n", "v0_vec = h.Vector()\n", "t_vec = h.Vector()\n", "\n", "# record the voltage (_ref_v) and time (_ref_t) into the vectors we just created\n", "v0_vec.record(soma(0.5)._ref_v)\n", "t_vec.record(h._ref_t)\n", "\n", "h.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5) Visualize the membrane potential\n", " \n", "### The data isn't going to visualize itself! We use a package called matplotlib to draw the vectors so we can see them." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# use inline plot\n", "%matplotlib inline\n", "# use interactive plot\n", "# %matplotlib notebook\n", "import matplotlib.pyplot as plt # We use this package for visualization\n", "\n", "plt.figure()\n", "plt.plot(t_vec, v0_vec,'b')\n", "plt.xlim(0, tstop)\n", "plt.xlabel('time (ms)')\n", "plt.ylabel('mV')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6) Get some action potentials!\n", " \n", "### We will make the conductances of the active channels nonzero so that we will see some action potentials." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "soma.gnabar_hh = 0.12 # Sodium channel S/cm2\n", "soma.gkbar_hh = 0.012 # Potassium channel S/cm2\n", "\n", "stim.delay = 100.0 # delay in ms\n", "stim.dur = 150.0 # duration in ms\n", "stim.amp = 0.03 # amplitude in nA\n", "\n", "h.tstop = tstop = 350\n", "\n", "# run the simulation!\n", "h.run()\n", "\n", "plt.figure(figsize=(10,5))\n", "plt.plot(t_vec, v0_vec,'b')\n", "plt.xlim(0, tstop)\n", "plt.xlabel('time (ms)')\n", "plt.ylabel('mV')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7) Record the gating variables\n", " \n", "### You should see some spikes in the plot above. If you don't, go back to the top of the notebook and run all the cells again. Neurons spike because of the voltage dependent proteins embedded in their membranes. Let's record those and then plot them just as we did for the membrane voltage." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m_na = h.Vector()\n", "h_na = h.Vector()\n", "n_k = h.Vector()\n", "\n", "m_na.record(soma(0.5)._ref_m_hh)\n", "h_na.record(soma(0.5)._ref_h_hh)\n", "n_k.record(soma(0.5)._ref_n_hh)\n", "\n", "h.run()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 8) Visualize membrane potential and gating variables together\n", "### This should look familiar. We're just going to plot all of the variables we just recorded at the same time so we can investigate how spikes occur." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(10,10))\n", "plt.subplot(2,1,1)\n", "plt.plot(t_vec, v0_vec,'b')\n", "plt.xlim(0, tstop)\n", "plt.ylabel('mV')\n", "\n", "plt.subplot(2,1,2)\n", "plt.plot(t_vec, m_na,'r')\n", "plt.plot(t_vec, h_na,'b')\n", "plt.plot(t_vec, n_k, 'g')\n", "plt.xlim(0, tstop)\n", "plt.xlabel('time (ms)')\n", "plt.ylabel('Probability')\n", "plt.legend(['m','h','n'])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### You did it! Now you understand how a neuron is implemented in code. Time for the hard part... understanding the science and math behind those spikes. You can move on to the next section and change variables (such as the conductances of the Na and K channels) using the interactive controls to see the effects.\n", "\n", "## 9) Interact with the model\n", "\n", "##### So far, we've built the cell and simulated it with one set of parameters. But what if we want to change the parameters to see the effect on the output? In this part of the tutorial, we'll set the model up and then use sliders to interact with the parameters. Don't worry about all the code that's coming up, it's just a repeat of what we've already done." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from neuron import h\n", "import ipywidgets as widgets\n", "from ipywidgets import HBox,VBox,Label,Layout\n", "from IPython.display import display\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "h.load_file('stdrun.hoc')\n", "\n", "soma = h.Section(name='soma')\n", "soma.L = 100 # um\n", "soma.insert('hh')\n", "stim = h.IClamp(soma(0.5))\n", "\n", "v0_vec = h.Vector()\n", "t_vec = h.Vector()\n", "m_na = h.Vector()\n", "h_na = h.Vector()\n", "n_k = h.Vector()\n", "m_na.record(soma(0.5)._ref_m_hh)\n", "h_na.record(soma(0.5)._ref_h_hh)\n", "n_k.record(soma(0.5)._ref_n_hh)\n", "v0_vec.record(soma(0.5)._ref_v)\n", "t_vec.record(h._ref_t)\n", "\n", "def activemodel(diam,cm,el,gl,gna,gk,tstop,dur,amp,fig):\n", " soma.diam = diam\n", " soma.cm = cm*1.4884e-4/6.2832e-4\n", " soma.gnabar_hh = gna*1e-3\n", " soma.gkbar_hh = gk*1e-3\n", " soma.gl_hh = gl*1e-6\n", " soma.el_hh = el\n", "\n", " stim.delay = dur[0]\n", " stim.dur = dur[1]-dur[0]\n", " stim.amp = amp\n", " \n", " h.tstop = tstop\n", " h.v_init = el\n", " h.run()\n", " \n", " plt.close()\n", " plt.figure(figsize=(12,10))\n", " plt.subplot(2,1,1)\n", " plt.plot(t_vec, v0_vec,'b')\n", " plt.xlim(0, tstop)\n", " plt.ylabel('mV')\n", " plt.legend('V')\n", " plt.subplot(2,1,2)\n", " plt.plot(t_vec, m_na,'r')\n", " plt.plot(t_vec, h_na,'b')\n", " plt.plot(t_vec, n_k, 'g')\n", " plt.xlim(0, tstop)\n", " plt.xlabel('time (ms)')\n", " plt.ylabel('Probability')\n", " plt.legend(['m','h','n'])\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [], "source": [ "# default settings\n", "diam = 200\n", "cm = 1\n", "el = -70\n", "gl = 30\n", "gna0 = 120\n", "gk0 = 12\n", "tstop = 500\n", "dur = [100,400]\n", "amp = 0.1\n", "\n", "w_reset = widgets.Button(description='Reset',icon='history',button_style='primary')\n", "w_fig = widgets.ToggleButton(value=False,description='Interactive plot',icon='window-restore',button_style='success')\n", "w_pass = widgets.ToggleButton(value=False,icon='check',button_style='info')\n", "w_el = widgets.FloatSlider(value=el,min=-80,max=-60,step=.2,continuous_update=False,readout_format='.1f')\n", "w_gl = widgets.FloatSlider(value=gl,min=5,max=50,step=.2,continuous_update=False,readout_format='.1f')\n", "w_gna = widgets.FloatSlider(value=gna0,min=0,max=200,step=.5,continuous_update=False,readout_format='.1f')\n", "w_gk = widgets.FloatSlider(value=gk0,min=0,max=30,step=.1,continuous_update=False,readout_format='.1f')\n", "\n", "w_tstop = widgets.FloatText(value=tstop)\n", "w_dur = widgets.FloatRangeSlider(value=dur,min=0,max=500,step=5,continuous_update=False,readout_format='.0f')\n", "w_amp = widgets.FloatLogSlider(value=amp,min=-3,max=1,step=.04,continuous_update=False,readout_format='.3f')\n", "w_diam = widgets.FloatSlider(value=diam,min=100,max=300,step=2,continuous_update=False,readout_format='.0f')\n", "w_cm = widgets.FloatLogSlider(value=cm,min=-1,max=1,step=.05,continuous_update=False,readout_format='.1f')\n", "\n", "def reset_default(*args):\n", " w_pass.value = False\n", " w_el.value = el; w_gl.value = gl\n", " w_gna.value = gna0; w_gk.value = gk0\n", " w_gna.disabled = w_gk.disabled = False\n", " w_dur.max = w_tstop.value = tstop; w_dur.value = dur\n", " w_diam.value = diam; w_cm.value = cm\n", "w_reset.on_click(reset_default)\n", "\n", "def interactive_fig(*arg):\n", " if w_fig.value:\n", " w_fig.icon = 'window-maximize'; w_fig.description='Inline plot'\n", " %matplotlib notebook\n", " %matplotlib notebook\n", " else:\n", " w_fig.icon = 'window-restore'; w_fig.description='Interactive plot'\n", " %matplotlib inline\n", "w_fig.observe(interactive_fig,'value')\n", "\n", "def update_pass(*args):\n", " if w_pass.value:\n", " global gna,gk\n", " gna = w_gna.value\n", " gk = w_gk.value\n", " w_gna.value = w_gk.value = 0\n", " w_gna.disabled = w_gk.disabled = True\n", " else:\n", " w_gna.value = gna\n", " w_gk.value = gk\n", " w_gna.disabled = w_gk.disabled = False\n", "w_pass.observe(update_pass,'value')\n", "\n", "def update_dur(*args):\n", " w_dur.max = w_tstop.value\n", "w_tstop.observe(update_dur,'value')\n", "\n", "\n", "ui = VBox([HBox([w_reset,w_fig]), HBox([VBox([Label('Passive Cell'),Label(r'\\( E_{l}\\ (mV) \\)'),Label(r'\\( g_{leak}\\ (\\mu S/cm^2) \\)'),\n", " Label(r'\\( g_{Na}\\ (mS/cm^2) \\)'),Label(r'\\( g_{K}\\ (mS/cm^2) \\)')],layout=Layout(width='14%')),\n", " VBox([w_pass,w_el,w_gl,w_gna,w_gk],layout=Layout(width='36%')),\n", " VBox([Label(r'\\( tstop\\ (ms) \\)'),Label(r'\\( Injection\\ duration\\ (ms) \\)'),Label(r'\\( I_{inject}\\ (nA) \\)'),\n", " Label(r'\\( soma\\ diameter\\ (\\mu m) \\)'),Label(r'\\( capacitance\\ scale \\)')],layout=Layout(width='14%')),\n", " VBox([w_tstop,w_dur,w_amp,w_diam,w_cm],layout=Layout(width='36%')) ]) ])\n", "\n", "out = widgets.interactive_output(activemodel,{'el':w_el,'gl':w_gl,'gna':w_gna,'gk':w_gk,\n", " 'tstop':w_tstop,'dur':w_dur,'amp':w_amp,'diam':w_diam,'cm':w_cm,'fig':w_fig})\n", "\n", "display(ui,out)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.7.1" }, "widgets": { "state": { "bc2e3fb90c9349f49fd5bbecf497b454": { "views": [ { "cell_index": 18 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 2 }