Talk:Neuron simulation environment
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: <review> Something like section 2 of your <a href="http://www.neuron.yale.edu/neuron/papers/nc97/nctoc.htm">Neural Computation Paper</a>.
Reply by NTC: First, please excuse the fact that this is buried inside your comment, but this markup scheme is almost as baffling to me as the finer points of Japanese grammar. The material you cite is very similar to what is already in this Scholarpedia article. Any more similar, and it would start to look like I was plagiarizing myself. </review>
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: <review> Yes, because someone who has just read the article on the General Network Simulator GENESIS may be as confused as I was.
Reply by NTC: Well, that's because, for whatever reason, those authors claim generality for what is clearly a domain-specific simulator. In my judgment, many more people will find it excessively pedantic to point out that MAPLE, MATHEMATICA, and MATLAB are general purpose simulation tools.</review>
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:<review> But the reader is reading this article.
If somebody looks up NEURON in scholarpedia, then because he does not yet know about it. Thus, this article should be an entry point, rather than an appendix to the existing documents.
Reply by NTC--One could as well take the viewpoint--as I did--that it is an opportunity to induce the reader to learn more, e.g. by reading the cited references. </review>
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: <review> I was not suggesting to be more specific, but rather the opposite: Don't explain the d_lambda rule (or any other specific algorithm), but tell us what problem is solved. Most readers will be content with knowing that NEURON assists you in choosing appropriate discretizations (in time and space).
Reply by NTC--Now I am confused. Elsewhere you want more detail, here you want less. </review>
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: <review> Could you be a bit more specific on what could be customized. Otherwise you may as well delete this section.
Reply by NTC: Done, although to me the details seem both too much and too little. </review>