diff --git a/ball-and-stick-1.ipynb b/ball-and-stick-1.ipynb index 373698b844..bc3aca9d9d 100644 --- a/ball-and-stick-1.ipynb +++ b/ball-and-stick-1.ipynb @@ -50,6 +50,22 @@ "As good practice, we'll load some unit definitions:" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from neuron.units import ms, mV" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll load the standard run library to give us high-level simulation control functions (e.g. running a simulation for a given period of time):" + ] + }, { "cell_type": "code", "execution_count": null, @@ -1207,7 +1223,7 @@ " h.continuerun(25)\n", " f.line(t, list(soma_v),\n", " line_width=width,\n", - " legend_label='amp=%g' % amp if my_cell.dend.nseg == 1 else None,\n", + " legend_label='amp={:.3g}'.format(amp) if my_cell.dend.nseg == 1 else '',\n", " color=color)\n", " f.line(t, list(dend_v),\n", " line_width=width,\n", @@ -1277,7 +1293,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/ball-and-stick-2.ipynb b/ball-and-stick-2.ipynb index af0c4fce98..b2f176b12a 100644 --- a/ball-and-stick-2.ipynb +++ b/ball-and-stick-2.ipynb @@ -182,7 +182,40 @@ "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." + "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": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Run only for jupyter\n", + "class BallAndStick(Cell):\n", + " name = 'BallAndStick'\n", + " def _setup_morphology(self):\n", + " self.soma = h.Section(name='soma', cell=self)\n", + " self.dend = h.Section(name='dend', cell=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", + " 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('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('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\n" ] }, { @@ -718,7 +751,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/ball-and-stick-3.ipynb b/ball-and-stick-3.ipynb index 5c5134b88c..5a49827024 100644 --- a/ball-and-stick-3.ipynb +++ b/ball-and-stick-3.ipynb @@ -392,7 +392,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/ball-and-stick-4.ipynb b/ball-and-stick-4.ipynb index e34e3cb452..b10375f725 100644 --- a/ball-and-stick-4.ipynb +++ b/ball-and-stick-4.ipynb @@ -73,16 +73,16 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ + "```python\n", "from neuron import h\n", "h.nrnmpi_init() # initialize MPI\n", "pc = h.ParallelContext()\n", "print('I am {} of {}'.format(pc.id(), pc.nhost()))\n", - "h.quit() # necessary to avoid a warning message on parallel exit on some systems" + "h.quit() # necessary to avoid a warning message on parallel exit on some systems\n", + "```" ] }, { @@ -96,13 +96,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "
\n",
+    "```bash\n",
     "numprocs=4\n",
     "I am 1 of 4\n",
     "I am 2 of 4\n",
     "I am 3 of 4\n",
     "I am 0 of 4\n",
-    "
" + "```" ] }, { @@ -134,11 +134,10 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ + "```python\n", "from neuron import h\n", "from ballandstick import BallAndStick\n", "\n", @@ -200,7 +199,8 @@ " nc = pc.gid_connect(source_gid, target.syn)\n", " nc.weight[0] = self._syn_w\n", " nc.delay = self._syn_delay\n", - " target._ncs.append(nc) " + " target._ncs.append(nc)\n", + "```" ] }, { @@ -234,11 +234,10 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ + "```python\n", "from neuron import h\n", "from neuron.units import ms, mV\n", "import matplotlib.pyplot as plt\n", @@ -262,7 +261,8 @@ "\n", "pc.barrier()\n", "pc.done()\n", - "h.quit()" + "h.quit()\n", + "```" ] }, { @@ -297,7 +297,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "python test_ring1.py" + "`python test_ring1.py`" + ] + }, + { + "attachments": { + "test_ring1.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should see:\n", + "![test_ring1.png](attachment:test_ring1.png)" ] }, { @@ -311,7 +324,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "mpiexec -n 2 python test_ring1.py" + "`mpiexec -n 2 python test_ring1.py`" ] }, { @@ -336,11 +349,10 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ + "```python\n", "from neuron import h\n", "from neuron.units import ms, mV\n", "import matplotlib.pyplot as plt\n", @@ -372,7 +384,8 @@ "\n", "pc.barrier()\n", "pc.done()\n", - "h.quit()" + "h.quit()\n", + "```" ] }, { @@ -381,6 +394,26 @@ "source": [ "Running this via e.g. `mpiexec -n 2 python test_ring2.py` displays the familiar raster plot. If you are wondering why node 0 was the one chosen to make the plot, it is because that is the only node that is guaranteed to exist (nothing else exists if there is only one process being used for the simulation)." ] + }, + { + "attachments": { + "test_ring2.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should see:\n", + "![test_ring2.png](attachment:test_ring2.png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -399,7 +432,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/pythontutorial.ipynb b/pythontutorial.ipynb index a47c7d4c43..c955e3cfc5 100644 --- a/pythontutorial.ipynb +++ b/pythontutorial.ipynb @@ -178,12 +178,12 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "print(my_name + my_age)" + "```python\n", + "print(my_name + my_age)\n", + "```" ] }, { @@ -938,12 +938,12 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ - "my_tuple[1] = 2" + "```python\n", + "my_tuple[1] = 2\n", + "```" ] }, { @@ -1598,7 +1598,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/scripting-neuron-basics.ipynb b/scripting-neuron-basics.ipynb index 3bfb602a66..b01bebd2d9 100644 --- a/scripting-neuron-basics.ipynb +++ b/scripting-neuron-basics.ipynb @@ -1285,7 +1285,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.7.7" } }, "nbformat": 4,