Wiki source code of Neuron

Version 33.1 by abonard on 2025/04/10 15:07

Hide last authors
adavison 1.1 1
2
abonard 3.1 3 * ((( ==== **[[Beginner >>||anchor = "HBeginner-1"]]** ==== )))
jessicamitchell 2.1 4
abonard 12.1 5 * ((( ==== **[[Advanced >>||anchor = "HAdvanced-1"]]** ==== )))
6
abonard 3.1 7 === **Beginner** ===
jessicamitchell 2.1 8
9 === [[A NEURON Programming Tutorial - part C>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutC.html||rel=" noopener noreferrer" target="_blank"]] ===
10
abonard 3.1 11 **Level**: beginner(%%) **Type**: user documentation
jessicamitchell 2.1 12
abonard 3.1 13 After this tutorial, students will be able to replicate neurons using templates and connect these neurons together.
abonard 4.1 14 === [[A NEURON Programming Tutorial - Part A>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutA.html||rel=" noopener noreferrer" target="_blank"]] ===
jessicamitchell 2.1 15
abonard 4.1 16 **Level**: beginner(%%) **Type**: user documentation
17
18 After this tutorial, students will be able to know how to create a single compartment neuron model with Hodgkin-Huxley conductances, how to run the simulator and how to display the simulation results
abonard 5.1 19 === [[A NEURON Programming Tutorial - Part B>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutB.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 4.1 20
abonard 5.1 21 **Level**: beginner(%%) **Type**: user documentation
22
23 After this tutorial, students will be able to work with more advanced topics of building multi-compartmental neurons and using different types of graphs to display the results
abonard 6.1 24 === [[A NEURON Programming Tutorial - Part D>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutE.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 5.1 25
abonard 6.1 26 **Level**: beginner(%%) **Type**: user documentation
27
28 After this tutorial, students will be able to add new membrane mechanisms to the simulator and incorporate them in our neurons.
abonard 7.1 29 === [[Construction and Use of Models: Part 1. Elementary tools>>https://neuron.yale.edu/neuron/static/docs/elementarytools/outline.htm||rel=" noopener noreferrer" target="_blank"]] ===
abonard 6.1 30
abonard 7.1 31 **Level**: beginner(%%) **Type**: user documentation
32
33 A good beginner's tutorial to get an introduction to some of NEURON's basic GUI tools.
abonard 8.1 34 === [[A NEURON Programming Tutorial - Introduction>>https://web.mit.edu/neuron_v7.4/nrntuthtml/index.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 7.1 35
abonard 8.1 36 **Level**: beginner(%%) **Type**: user documentation
37
38 This is a web based tutorial in the NEURON Simulation package. It will hopefully take you step by step, through the process of creating a complex simulation of a small network of neurons.
39 Starting by creating a single compartment neuron model with Hodgkin-Huxley conductances, how to run the simulator and how to display the simulation results, building multi-compartmental neurons, using different types of graphs to display the results, how to replicate neurons using templates, add new membrane mechanisms to the simulator and incorporate them into our neurons, increasing simulation speed and ways of getting data out of NEURON.
abonard 9.1 40 === [[Outline of "Construction and Use of Models: Part 1. Elementary tools">>https://neuron.yale.edu/neuron/static/docs/elementarytools/outline.htm||rel=" noopener noreferrer" target="_blank"]] ===
abonard 8.1 41
abonard 9.1 42 **Level**: beginner(%%) **Type**: interactive tutorial
43
44 In this beginner tutorial you will learn how to make a simple model using hoc and how to use NEURON's graphical tools to create an interface for running simulations and to modify the model itself.
abonard 10.1 45 === [[The hoc programming language>>https://neuron.yale.edu/neuron/static/docs/programming/hoc_slides.pdf||rel=" noopener noreferrer" target="_blank"]] ===
abonard 9.1 46
abonard 10.1 47 **Level**: beginner(%%) **Type**: slide deck
48
49 Slides from a presentation on hoc syntax. Clear and concise. Includes an example of program analysis (walkthrough of code for a model cell generated by the CellBuilder).
abonard 11.1 50 === [[A NEURON Programming Tutorial - Part E>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutE.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 10.1 51
abonard 11.1 52 **Level**: beginner(%%) **Type**: user documentation
53
54 After this tutorial, students will be able to save data from the simulations and methods for increasing simulation speed.
abonard 12.1 55 === **Advanced** ===
abonard 11.1 56
abonard 12.1 57 === [[Reaction-Diffusion – Radial Diffusion>>https://neuron.yale.edu/neuron/docs/radial-diffusion||rel=" noopener noreferrer" target="_blank"]] ===
58
59 **Level**: advanced(%%) **Type**: -
60
61 Using NEURON 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.
abonard 13.1 62 === [[Reaction-Diffusion Example – Calcium Wave>>https://neuron.yale.edu/neuron/docs/reaction-diffusion-calcium-wave||rel=" noopener noreferrer" target="_blank"]] ===
abonard 12.1 63
abonard 13.1 64 **Level**: advanced(%%) **Type**: interactive tutorial
65
66 The model presented in this tutorial generates Ca2+ waves and is a simplification of the model we used in Neymotin et al., 2015.
abonard 14.1 67 === [[Reaction-Diffusion – 3D/Hybrid Intracellular Tutorial>>https://neuron.yale.edu/neuron/docs/3dhybrid-intracellular-tutorial||rel=" noopener noreferrer" target="_blank"]] ===
abonard 13.1 68
abonard 14.1 69 **Level**: advanced(%%) **Type**: interactive tutorial
70
71 This tutorial provides an overview of how to set up a simple travelling wave in both cases.
abonard 15.1 72 === [[Reaction-Diffusion – Initialization strategies>>https://neuron.yale.edu/neuron/docs/initialization-strategies||rel=" noopener noreferrer" target="_blank"]] ===
abonard 14.1 73
abonard 15.1 74 **Level**: advanced(%%) **Type**: interactive tutorial
75
76 In this tutorial you will learn how to implement cell signalling function in the reaction-diffusion system by characterising your problems by the answers to three questions: (1) Where do the dynamics occur, (2) Who are the actors, and (3) How do they interact?
abonard 16.1 77 === [[Ball and Stick model part 3>>https://neuron.yale.edu/neuron/docs/ball-and-stick-model-part-3||rel=" noopener noreferrer" target="_blank"]] ===
abonard 15.1 78
abonard 16.1 79 **Level**: advanced(%%) **Type**: user documentation
80
abonard 17.1 81 === [[Using the CellBuilder – Introduction>>https://neuron.yale.edu/neuron/static/docs/cbtut/main.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 16.1 82
abonard 17.1 83 **Level**: advanced(%%) **Type**: interactive tutorial
84
85 The following tutorials show how to use the CellBuilder, a powerful and convenient tool for constructing and managing models of individual neurons. It breaks the job of model specification into a sequence of tasks:
86 1. Setting up model topology (branching pattern).
87 2. Grouping sections with shared properties into subsets.
88 3. Assigning geometric properties (length, diameter) to subsets or individual sections, and specifying a discretization strategy (i.e. how to set nseg).
89 4. Assigning biophysical properties (Ra, cm, ion channels, buffers, pumps, etc.) to subsets or individual sections.
abonard 18.1 90 === [[Using Import3D – Exploring morphometric data and fixing problems>>https://neuron.yale.edu/neuron/docs/import3d/fix_problems||rel=" noopener noreferrer" target="_blank"]] ===
abonard 17.1 91
abonard 18.1 92 **Level**: advanced(%%) **Type**: user documentation
93
94 Import3D tool can be used to translate common varieties of cellular morphometric data into a CellBuilder that specifies the anatomical properties of a model neuron. This Tutorial will guide you through how to fix problems in your morphometric data.
abonard 19.1 95 === [[Randomness in NEURON models– The solution>>https://neuron.yale.edu/neuron/docs/solution||rel=" noopener noreferrer" target="_blank"]] ===
abonard 18.1 96
abonard 19.1 97 **Level**: advanced(%%) **Type**: user documentation
98
99 In this part of the tutorial we will show you how to give NetStim its own random number generator.
abonard 20.1 100 === [[Segmentation intro: Dealing with simulations that generate a lot of data>>https://neuron.yale.edu/neuron/docs/dealing-simulations-generate-lot-data||rel=" noopener noreferrer" target="_blank"]] ===
abonard 19.1 101
abonard 20.1 102 **Level**: advanced(%%) **Type**: user documentation
103
104 How to deal with simulations that generate a lot of data that must be saved? We will showcase different approaches.
abonard 21.1 105 === [[Using the Channel Builder – Creating a channel from an HH-style specification>>https://neuron.yale.edu/neuron/static/docs/chanlbild/hhstyle/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 20.1 106
abonard 21.1 107 **Level**: advanced(%%) **Type**: interactive tutorial
108
109 Our goal is to implement a new voltage-gated macroscopic current whose properties are described by HH-style equations.
abonard 22.1 110 === [[Using the Channel Builder – Creating a channel from a kinetic scheme specification>>https://neuron.yale.edu/neuron/static/docs/chanlbild/kinetic/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 21.1 111
abonard 22.1 112 **Level**: advanced(%%) **Type**: interactive tutorial
113
114 Here we will implement a new voltage-gated macroscopic current whose properties are described by a family of chemical reactions.
abonard 23.1 115 === [[Randomness in NEURON models– Source code that demonstrates the solution>>https://neuron.yale.edu/neuron/docs/source-code-demonstrates-solution||rel=" noopener noreferrer" target="_blank"]] ===
abonard 22.1 116
abonard 23.1 117 **Level**: advanced(%%) **Type**: user documentation
118
abonard 24.1 119 === [[Using the Network Builder – Introduction to Network Construction>>https://neuron.yale.edu/neuron/static/docs/netbuild/intro.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 23.1 120
abonard 24.1 121 **Level**: advanced(%%) **Type**: user documentation
122
abonard 25.1 123 === [[Python introduction>>https://neuron.yale.edu/neuron/docs/python-introduction||rel=" noopener noreferrer" target="_blank"]] ===
abonard 24.1 124
abonard 25.1 125 **Level**: advanced(%%) **Type**: user documentation
126
127 This page provides a brief introduction to Python syntax, Variables, Lists and Dicts, For loops and iterators, Functions, Classes, Importing modules, Writing and reading files with Pickling.
abonard 26.1 128 === [[Reaction-Diffusion Example – RxD with MOD files>>https://neuron.yale.edu/neuron/docs/rxd-mod-files||rel=" noopener noreferrer" target="_blank"]] ===
abonard 25.1 129
abonard 26.1 130 **Level**: advanced(%%) **Type**: user documentation
131
132 NEURON's reaction-diffusion infrastructure can be used to readily allow intracellular concentrations to respond to currents generated in MOD files. This example shows you a simple model with just a single point soma, of length and diameter 10 microns, with Hodgkin-Huxley kinetics, and dynamic sodium (declared using rxd but without any additional kinetics).
abonard 27.1 133 === [[Segmenting a simulation of a model network - Introduction>>https://neuron.yale.edu/neuron/docs/segmenting-simulation-model-network||rel=" noopener noreferrer" target="_blank"]] ===
abonard 26.1 134
abonard 27.1 135 **Level**: advanced(%%) **Type**: user documentation
136
abonard 28.1 137 === [[Using the Network Builder – Tutorial 1: Making Networks of Artificial Neurons>>https://neuron.yale.edu/neuron/static/docs/netbuild/artnet/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
abonard 27.1 138
abonard 28.1 139 **Level**: advanced(%%) **Type**: interactive tutorial
140
141 Learn how to Artificial Integrate and Fire cell with a synapse that is driven by an afferent burst of spikes.
abonard 29.1 142 === [[Reaction-Diffusion Example – Restricting a reaction to part of a region>>https://neuron.yale.edu/neuron/docs/example-restricting-reaction-part-region||rel=" noopener noreferrer" target="_blank"]] ===
abonard 28.1 143
abonard 29.1 144 **Level**: advanced(%%) **Type**: user documentation
145
146 Implementation example for the restriction of the reaction to part of a region.
abonard 30.1 147 === [[Segmenting a simulation of a model cell - Introduction>>https://neuron.yale.edu/neuron/docs/segmenting-simulation-model-cell||rel=" noopener noreferrer" target="_blank"]] ===
abonard 29.1 148
abonard 30.1 149 **Level**: advanced(%%) **Type**: user documentation
150
abonard 31.1 151 === [[Scripting NEURON basics>>https://neuron.yale.edu/neuron/docs/scripting-neuron-basics||rel=" noopener noreferrer" target="_blank"]] ===
abonard 30.1 152
abonard 31.1 153 **Level**: advanced(%%) **Type**: user documentation
154
155 The objectives of this part of the tutorial are to get familiar with basic operations of NEURON using Python. In this worksheet we will: Create a passive cell membrane in NEURON. Create a synaptic stimulus onto the neuron. Modify parameters of the membrane and stimulus. Visualize results with bokeh.
abonard 32.1 156 === [[Reaction-Diffusion – Thresholds>>https://neuron.yale.edu/neuron/docs/reaction-diffusion-thresholds||rel=" noopener noreferrer" target="_blank"]] ===
abonard 31.1 157
abonard 32.1 158 **Level**: advanced(%%) **Type**: interactive tutorial
159
160 Learn how to scale reaction rates by a function of the form f(x) for suitably chosen a and m to approximately threshold them by a concentration.
abonard 33.1 161 === [[Randomness in NEURON models>>https://neuron.yale.edu/neuron/docs/randomness-neuron-models||rel=" noopener noreferrer" target="_blank"]] ===
abonard 32.1 162
abonard 33.1 163 **Level**: advanced(%%) **Type**: user documentation
164
165 We will touch upon the following subjects in this tutorial:
166 How to create model specification code that employs randomization to avoid undesired correlations between parameters, and to produce a model cell or network that has the same architecture and biophysical properties, and generates the same simulation results regardless of whether it is run on serial or parallel hardware.
167 How to generate spike streams or other signals that fluctuate in ways that are statistically independent of each other.
168