Talk:Neuron simulation environment
From Scholarpedia
I still find that the article talks at a too general level (meta-level) about NEURON. It is written from the perspective of a programmer and it assumes that the reader is already familiar with NEURON and its concepts. This is an article that I would like to read after I have read a Scholarpedia article on NEURON.
From experience I know that programmers or maintainers become "blind" of the problems that novices may have in understanding their software. This is a known phenomenon and the reason is simple: users and programmers have very different approaches to the same software. The programmer will focus on features that were difficult to implement. This is where he spent most of his time and attention: Adaptive integration step-size, numeric accuracy, and user-interfaces are difficult to implement. Hence they are important to the programmer and hence we read too much about them in the article.
But users want to know how they can solve their problems. They want to know how to express their neurons and experimental paradigms. What is the work-flow of a NEURON simulation? What does a minimal simulation look like? Which models can I simulate with NEURON? HH neurons, integrate and fire neurons? What are neuron models in NEURON anyway? Do I have to write equations or can I simply combine predefined building blocks? How do I express the morphology of a neuron? How do I express channels, channel dynamics, and channel densities? How do I express the connections in a network? Is it possible to model synaptic plasticity and how do I do it? Can I add external devices and stimuli? These are the questions that users ask. It is this view which is not addressed in the article.
Don't tell us that NEURON is great and easy to use - show us how easy it is. Scholarpedia gives us unique opportunities to illustrate an article with animations, scree-shots, listings, and so forth.
And of course most my more specific comments still apply.
Previous comments follow
This article is taken from NEURON's web site and has not been adapted to a format that is suitable for Scholarpedia (see Scholarpedia:Instructions for Authors). A good part of the article merely compares NEURON with "general purpose simulators", but does not give a concise description of NEURON, do we learn what "general purpose simulators" there are.
I find this section too unspecific.
- Every program claims to use "special algorithms that achieve high efficiency". It would be nice if this statement could be substantiated by specific examples or references.
- Could you give a short characterization on the mathematical/conceptual framework that neuron uses?
- What are typical questions that can be answered with NEURON?
- maybe you could give or link to a simple example of a neuron simulation.
- Could you refer to one or two general purpose simulators so that the reader can verify the arguments.
Here, the article gets too technical. For an encyclopedic article, I would expect an overview over the general modeling concepts of neuron, before I am confronted with implementation details like Cell Builder. I suggest to have
- one section that introduces the modeling concepts
- one that describes the work-flow of a typical simulation and which parts of neuron are involved in each step, and
- one that outlines the architecture of the software.
Throughout this section we read several times that the model description is independent from the integration method. But it would be more instructive if we also learned how this is done. An actual example could be instructive.
I find the last paragraph far too technical. Do I have to know about the d_lambda rule or the Tolerance Scale Tool? Or could you rather explain what problems they solve and how they solve them?
Comment: What is programming neuron? Later we lean about NMODL. Can you give an overview over the different languages/GUI's and their roles in NEURON. Again it would be helpful to see the workflow of NEURON modeling.
Section "Customizable initialization and simulation flow control" needs to be rewritten/expanded. As it is now, it is not comprehensible.
Replies by NTC
Reviewer: Every program claims to use "special algorithms that achieve high efficiency". It would be nice if this statement could be substantiated by specific examples or references.
NTC: Advantages over general-purpose simulators now mentions two examples.
Reviewer: Could you give a short characterization on the mathematical/conceptual framework that neuron uses?
NTC: I'm not sure what you mean by "mathematical/conceptual framework." Continuous system simulation vs. discrete event simulation? Functional models (high level abstractions) vs. mechanistic models? Something else?
Reviewer:
Reviewer: What are typical questions that can be answered with NEURON?
NTC: The introduction has been revised to help readers discover this.
Reviewer: maybe you could give or link to a simple example of a neuron simulation.
Reply by NTC: This initially seemed like a good idea, but what real purpose would it serve, and how representative could a "simple example" truly be? In the end, I decided to point readers to papers and ModelDB if they want to see simulations.
Reviewer: Could you refer to one or two general purpose simulators so that the reader can verify the arguments.
Reply by NTC: Would it be useful to mention MAPLE, MATHEMATICA, MATLAB by name?
Reviewer:
Reviewer: I suggest to have
- one section that introduces the modeling concepts
- one that describes the work-flow of a typical simulation and which parts of neuron are involved in each step, and
- one that outlines the architecture of the software.
Comment: What is programming neuron? Later we lean about NMODL. Can you give an overview over the different languages/GUI's and their roles in NEURON. Again it would be helpful to see the workflow of NEURON modeling.
Reply by NTC: These are good and interesting points, but they are already addressed elsewhere in books, articles, and extensive on-line tutorials and documentation. In writing this article, my aim was to present the features of NEURON that make it particularly well-suited to modeling biological neurons and networks, and describe its special advantages and strengths.
Reviewer:
Reviewer: Throughout this section we read several times that the model description is independent from the integration method. But it would be more instructive if we also learned how this is done.
Reply by NTC: Delving into NEURON's own implementation details, which allow users to switch between integrators without having to rewrite their model specifications, would require a level of detail that goes well beyond the scope of this article.
Reviewer: I find the last paragraph far too technical. Do I have to know about the d_lambda rule or the Tolerance Scale Tool? Or could you rather explain what problems they solve and how they solve them?
Reply by NTC: It seemed OK to mention the d_lambda rule in an article that already mentioned Euler's method, Crank-Nicholson method, IDA, and CVODEs. Ditto for the Absolute Tolerance Scale Tool, given that other GUI tools were already mentioned by name in previous paragraphs. Unfortunately explanations would require a level of detail that is beyond the scope of this article. Instead, readers are pointed to a reference on the d_lambda rule. As yet there is no publication that goes into similar detail about the algorithms used by the Absolute Tolerance Scale Tool. If you think it would be helpful, I could mention the specific file(s) that contain the source code for this tool and the algorithms it uses.
Reviewer:
Reviewer: Section "Customizable initialization and simulation flow control" needs to be rewritten/expanded. As it is now, it is not comprehensible.
Reply by NTC: True. This section now points readers to the chapters of The NEURON Book that provide all the gory details.
Reviewer:
