Wiki source code of Neuron

Version 120.1 by abonard on 2025/04/10 15:17

Show last authors
1
2
3 * ((( ==== **[[Beginner >>||anchor = "HBeginner-1"]]** ==== )))
4
5 * ((( ==== **[[Advanced >>||anchor = "HAdvanced-1"]]** ==== )))
6
7 === **Beginner** ===
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
11 **Level**: beginner(%%) **Type**: user documentation
12
13 After this tutorial, students will be able to replicate neurons using templates and connect these neurons together.
14 === [[A NEURON Programming Tutorial - Part A>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutA.html||rel=" noopener noreferrer" target="_blank"]] ===
15
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
19 === [[A NEURON Programming Tutorial - Part B>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutB.html||rel=" noopener noreferrer" target="_blank"]] ===
20
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
24 === [[A NEURON Programming Tutorial - Part D>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutE.html||rel=" noopener noreferrer" target="_blank"]] ===
25
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.
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"]] ===
30
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.
34 === [[A NEURON Programming Tutorial - Introduction>>https://web.mit.edu/neuron_v7.4/nrntuthtml/index.html||rel=" noopener noreferrer" target="_blank"]] ===
35
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.
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"]] ===
41
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.
45 === [[The hoc programming language>>https://neuron.yale.edu/neuron/static/docs/programming/hoc_slides.pdf||rel=" noopener noreferrer" target="_blank"]] ===
46
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).
50 === [[A NEURON Programming Tutorial - Part E>>http://web.mit.edu/neuron_v7.4/nrntuthtml/tutorial/tutE.html||rel=" noopener noreferrer" target="_blank"]] ===
51
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.
55 === **Advanced** ===
56
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.
62 === [[Reaction-Diffusion Example – Calcium Wave>>https://neuron.yale.edu/neuron/docs/reaction-diffusion-calcium-wave||rel=" noopener noreferrer" target="_blank"]] ===
63
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.
67 === [[Reaction-Diffusion – 3D/Hybrid Intracellular Tutorial>>https://neuron.yale.edu/neuron/docs/3dhybrid-intracellular-tutorial||rel=" noopener noreferrer" target="_blank"]] ===
68
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.
72 === [[Reaction-Diffusion – Initialization strategies>>https://neuron.yale.edu/neuron/docs/initialization-strategies||rel=" noopener noreferrer" target="_blank"]] ===
73
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?
77 === [[Ball and Stick model part 3>>https://neuron.yale.edu/neuron/docs/ball-and-stick-model-part-3||rel=" noopener noreferrer" target="_blank"]] ===
78
79 **Level**: advanced(%%) **Type**: user documentation
80
81 === [[Using the CellBuilder – Introduction>>https://neuron.yale.edu/neuron/static/docs/cbtut/main.html||rel=" noopener noreferrer" target="_blank"]] ===
82
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.
90 === [[Using Import3D – Exploring morphometric data and fixing problems>>https://neuron.yale.edu/neuron/docs/import3d/fix_problems||rel=" noopener noreferrer" target="_blank"]] ===
91
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.
95 === [[Randomness in NEURON models– The solution>>https://neuron.yale.edu/neuron/docs/solution||rel=" noopener noreferrer" target="_blank"]] ===
96
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.
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"]] ===
101
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.
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"]] ===
106
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.
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"]] ===
111
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.
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"]] ===
116
117 **Level**: advanced(%%) **Type**: user documentation
118
119 === [[Using the Network Builder – Introduction to Network Construction>>https://neuron.yale.edu/neuron/static/docs/netbuild/intro.html||rel=" noopener noreferrer" target="_blank"]] ===
120
121 **Level**: advanced(%%) **Type**: user documentation
122
123 === [[Python introduction>>https://neuron.yale.edu/neuron/docs/python-introduction||rel=" noopener noreferrer" target="_blank"]] ===
124
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.
128 === [[Reaction-Diffusion Example – RxD with MOD files>>https://neuron.yale.edu/neuron/docs/rxd-mod-files||rel=" noopener noreferrer" target="_blank"]] ===
129
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).
133 === [[Segmenting a simulation of a model network - Introduction>>https://neuron.yale.edu/neuron/docs/segmenting-simulation-model-network||rel=" noopener noreferrer" target="_blank"]] ===
134
135 **Level**: advanced(%%) **Type**: user documentation
136
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"]] ===
138
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.
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"]] ===
143
144 **Level**: advanced(%%) **Type**: user documentation
145
146 Implementation example for the restriction of the reaction to part of a region.
147 === [[Segmenting a simulation of a model cell - Introduction>>https://neuron.yale.edu/neuron/docs/segmenting-simulation-model-cell||rel=" noopener noreferrer" target="_blank"]] ===
148
149 **Level**: advanced(%%) **Type**: user documentation
150
151 === [[Scripting NEURON basics>>https://neuron.yale.edu/neuron/docs/scripting-neuron-basics||rel=" noopener noreferrer" target="_blank"]] ===
152
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.
156 === [[Reaction-Diffusion – Thresholds>>https://neuron.yale.edu/neuron/docs/reaction-diffusion-thresholds||rel=" noopener noreferrer" target="_blank"]] ===
157
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.
161 === [[Randomness in NEURON models>>https://neuron.yale.edu/neuron/docs/randomness-neuron-models||rel=" noopener noreferrer" target="_blank"]] ===
162
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 === [[Using the CellBuilder– Specifying parameterized variation of biophysical properties>>https://neuron.yale.edu/neuron/static/docs/cbtut/parameterized/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
169
170 **Level**: advanced(%%) **Type**: interactive tutorial
171
172 How to make one or more biophysical properties vary systematically with position in space.
173 === [[Using Import3D – An introduction>>https://neuron.yale.edu/neuron/docs/import3d||rel=" noopener noreferrer" target="_blank"]] ===
174
175 **Level**: advanced(%%) **Type**: user documentation
176
177 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 in reading a morphometric data file and converting it to a NEURON model as well as
178 exploring morphometric data and fixing problems.
179 === [[Segmenting a simulation of a model network – 1. Implement and test the computational model itself>>https://neuron.yale.edu/neuron/docs/1-implement-and-test-computational-model-itself-0||rel=" noopener noreferrer" target="_blank"]] ===
180
181 **Level**: advanced(%%) **Type**: user documentation
182
183 === [[Segmenting a simulation of a model network – 2. Run a "complete" simulation and save its results>>https://neuron.yale.edu/neuron/docs/2-run-complete-simulation-and-save-its-results-0||rel=" noopener noreferrer" target="_blank"]] ===
184
185 **Level**: advanced(%%) **Type**: user documentation
186
187 === [[Segmenting a simulation of a model cell – 2. Run a "complete" simulation and save its results>>https://neuron.yale.edu/neuron/docs/2-run-complete-simulation-and-save-its-results||rel=" noopener noreferrer" target="_blank"]] ===
188
189 **Level**: advanced(%%) **Type**: user documentation
190
191 === [[Segmenting a simulation of a model cell – 1. Implement and test the computational model itself>>https://neuron.yale.edu/neuron/docs/1-implement-and-test-computational-model-itself||rel=" noopener noreferrer" target="_blank"]] ===
192
193 **Level**: advanced(%%) **Type**: user documentation
194
195 === [[Using NEURON's Optimization Tools – Tutorial 2 : Fitting a model to data>>https://neuron.yale.edu/neuron/static/docs/optimiz/model/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
196
197 **Level**: advanced(%%) **Type**: user documentation
198
199 We will go over how to create an "unoptimized" model, set up a current clamp experiment on this model, configure a MultipleRunFitter to do a "run fitness" optimization, load the Experimental Data into the iclamp Run Fitness Generator, specify the parameters that will be adjusted and finally perform the optimization.
200 === [[Reaction-Diffusion – Hodgkin-Huxley using rxd>>https://neuron.yale.edu/neuron/docs/hodgkin-huxley-using-rxd||rel=" noopener noreferrer" target="_blank"]] ===
201
202 **Level**: advanced(%%) **Type**: interactive tutorial
203
204 In this tutorial you will learn how to set the proper parameters for the Hodgkin–Huxley model in NEURON.
205 === [[Using the CellBuilder – Creating a stylised ("stick-figure") model cell>>https://neuron.yale.edu/neuron/static/docs/cbtut/stylized/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
206
207 **Level**: advanced(%%) **Type**: -
208
209 Learn how to build an extremely simplified model of a pyramidal cell.
210 === [[Ball and Stick model part 2>>https://neuron.yale.edu/neuron/docs/ball-and-stick-model-part-2||rel=" noopener noreferrer" target="_blank"]] ===
211
212 **Level**: advanced(%%) **Type**: user documentation
213
214 === [[Reaction-Diffusion Example – Circadian rhythm>>https://neuron.yale.edu/neuron/docs/example-circadian-rhythm||rel=" noopener noreferrer" target="_blank"]] ===
215
216 **Level**: advanced(%%) **Type**: user documentation
217
218 Here we develop a NEURON implementation of the Leloup-Goldbeter model for circadian rhythms in Drosophila. In this example NEURON's h library and its standard run system are being used as well as matplotlib to plot concentrations of circadian proteins over time.
219 === [[Segmenting a simulation of a model cell – 3. Run a segmented simulation and save its results>>https://neuron.yale.edu/neuron/docs/3-run-segmented-simulation-and-save-its-results||rel=" noopener noreferrer" target="_blank"]] ===
220
221 **Level**: advanced(%%) **Type**: user documentation
222
223 === [[ModelView: Compact display of parameters for NEURON models.>>https://neuron.yale.edu/neuron/static/papers/mview/modelviewhbp2004.html||rel=" noopener noreferrer" target="_blank"]] ===
224
225 **Level**: advanced(%%) **Type**: user documentation
226
227 This example demonstrates how ModelView can explore a NEURON model.
228 === [[Segmenting a simulation of a model network – 3. Run a segmented simulation and save its results>>https://neuron.yale.edu/neuron/docs/3-run-segmented-simulation-and-save-its-results-0||rel=" noopener noreferrer" target="_blank"]] ===
229
230 **Level**: advanced(%%) **Type**: user documentation
231
232 === [[Segmenting a simulation of a model network – 4. Reconstitute and verify the "complete" simulation results>>https://neuron.yale.edu/neuron/docs/4-reconstitute-and-verify-complete-simulation-results-0||rel=" noopener noreferrer" target="_blank"]] ===
233
234 **Level**: advanced(%%) **Type**: user documentation
235
236 === [[Using NEURON's Optimization Tools – Tutorial 1 : Fitting a function to data>>https://neuron.yale.edu/neuron/static/docs/optimiz/func/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
237
238 **Level**: advanced(%%) **Type**: user documentation
239
240 We will look into how to bring up a Multiple Run Fitter, load the Experimental Data into the Multiple Run Fitter, specify the function we want to optimize, specify the parameters that will be adjusted, specify the criteria we want the function to satisfy and finally perform the optimization.
241 === [[Ball and Stick model part 4>>https://neuron.yale.edu/neuron/docs/ball-and-stick-model-part-4||rel=" noopener noreferrer" target="_blank"]] ===
242
243 **Level**: advanced(%%) **Type**: user documentation
244
245 === [[Reaction-Diffusion>>https://neuron.yale.edu/neuron/docs/reaction-diffusion||rel=" noopener noreferrer" target="_blank"]] ===
246
247 **Level**: advanced(%%) **Type**: interactive tutorial
248
249 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?
250 === [[Creating a stylized ("stick figure") model cell>>https://neuron.yale.edu/neuron/static/docs/cbtut/stylized/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
251
252 **Level**: advanced(%%) **Type**: user documentation
253
254 Our goal in this tutorial is to build an extremely simplified model of a pyramidal cell using the CellBuilder, a powerful and convenient tool for constructing and managing models of individual neurons. We will be looking into setting up model topology, grouping sections with shared properties into subsets, assigning geometric properties to subsets or individual sections, and specifying a discretization strategy, as well as assigning biophysical properties to subsets or individual sections.
255 === [[Randomness in NEURON models– Source code that demonstrates the problem>>https://neuron.yale.edu/neuron/docs/source-code-demonstrates-problem||rel=" noopener noreferrer" target="_blank"]] ===
256
257 **Level**: advanced(%%) **Type**: user documentation
258
259 The tutorial will show you how to declare important constants (model parameters and simulation parameters), load files that other stuff will depend on, create the model itself (just a collection of cells that spike at random times), specify instrumentation (in this case, recording of spike times), specify simulation control and execute one or more simulations with various model parameters in the source code.
260 === [[Using the Channel Builder – Creating a model of stochastic channel gating>>https://neuron.yale.edu/neuron/static/docs/chanlbild/stochastic/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
261
262 **Level**: advanced(%%) **Type**: interactive tutorial
263
264 Given a Channel Builder that implements a deterministic channel specified by a kinetic scheme, we create a new one that implements stochastic gating.
265 === [[Randomness in NEURON models - How to generate independent random spike streams>>https://neuron.yale.edu/neuron/docs/how-generate-independent-random-spike-streams||rel=" noopener noreferrer" target="_blank"]] ===
266
267 **Level**: advanced(%%) **Type**: user documentation
268
269 Learn how to generate random spike streams with the use of NetStim.
270 === [[Using Import3D – Reading a morphometric data file and converting it to a NEURON model>>https://neuron.yale.edu/neuron/docs/import3d/read_data||rel=" noopener noreferrer" target="_blank"]] ===
271
272 **Level**: advanced(%%) **Type**: user documentation
273
274 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 bringing up an Import3d tool, then specifying a file to be read and finally export the data as a NEURON model.
275 === [[Reaction-Diffusion – Varying initial concentrations and parameters>>https://neuron.yale.edu/neuron/docs/reaction-diffusion-varying-initial-concentrations-and-parameters||rel=" noopener noreferrer" target="_blank"]] ===
276
277 **Level**: advanced(%%) **Type**: interactive tutorial
278
279 This tutorial will show you how to manipulate the rxd.Species attribute to see how the choice of initial conditions affects the dynamics.
280 === [[Using the CellBuilder – Managing a model cell with complex anatomy>>https://neuron.yale.edu/neuron/static/docs/cbtut/pt3d/outline.html||rel=" noopener noreferrer" target="_blank"]] ===
281
282 **Level**: advanced(%%) **Type**: interactive tutorial
283
284 We use the CellBuilder to specify the spatial grid (nseg) and biophysical properties of a model based on detailed morphometric data.