MRG NEURON mechanics
Posted: Tue May 17, 2016 6:34 pm
Hello,
I am working on a purely Matlab implementation of the MRG 2002 double-cable model, and have run into issues I haven't been able to resolve following the NEURON book, tutorials, papers, and forum posts I have seen. Currently, my results are similar to those given by NEURON - steady state membrane voltage is the same, and the same general pattern appears when responding to an initial voltage - which leads me to believe that I am getting close. However, I am running into an issue where the number/timing of spikes my model predicts is slightly different from that given by NEURON.
I would very much appreciate it if you could please clarify a few points on how NEURON implements:
1. Implicit Euler advancement for ion channels.
I have been following Equation (9) of http://www.neuron.yale.edu/ftp/neuron/p ... ffic84.pdf and taking two half-delta-T steps, first advancing the channel state to that of (t+deltaT/2), then resolving all membrane voltages at (t+deltaT/2) following a variation of Equation (4), and repeating the process again to reach (t+deltaT). This does not feel correct, as the process is split into two half-steps. Would simply altering equations (4) and (9) to use deltaT rather than deltaT/2 be sufficient for implementing a full-step implicit Euler?
The documentation I have seen says that the ion channels and voltages are updated in a staggered manner for the Crank-Nicholson method, but that in more recent implementations they are computed simultaneously for Implicit Euler. I have been unable to find the equations for simultaneously solving the voltage equations and the ion channel progression. If this is the case, could you please direct me to an explanation of how this is done?
2. Voltage initialization.
Using finitialize, and referring specifically to http://www.neuron.yale.edu/neuron/stati ... racellular
I know that upon setting an initial membrane voltage, channel gate values are adjusted to their steady state for the given voltage. Would the same be true of VExt values in extracellular compartments, or would their voltage be set directly to a specific value?
3. Action Potential count.
My understanding of Neuron's record function is that it is generally set to record events specified by the user - in the case of action potentials, this seems to default to membrane voltage breaking 0 mv. Am I correct in assuming that this is the default spike counting method?
I'm trying to find a way to determine if a given time-varying current input (or a change in external voltage) would result in a propagating signal _far_ downstream in a model axon.
For example - when an initial voltage of, say, -40mV is set for a 15um fiber in the MRG model, there are a number of spikes - none of which break 0 mV - which appear before the membrane voltage drops to its resting value. None of these follow the traditional "all-or-nothing" shape, so I am unsure if they would propagate a reasonable distance or excite something more action-potential looking downstream.
Would there be an easy way of determining this without seeing a traditional action potential within the set of modeled nodes, or directly simulating a long axon?
Thank you for your help,
Platon
I am working on a purely Matlab implementation of the MRG 2002 double-cable model, and have run into issues I haven't been able to resolve following the NEURON book, tutorials, papers, and forum posts I have seen. Currently, my results are similar to those given by NEURON - steady state membrane voltage is the same, and the same general pattern appears when responding to an initial voltage - which leads me to believe that I am getting close. However, I am running into an issue where the number/timing of spikes my model predicts is slightly different from that given by NEURON.
I would very much appreciate it if you could please clarify a few points on how NEURON implements:
1. Implicit Euler advancement for ion channels.
I have been following Equation (9) of http://www.neuron.yale.edu/ftp/neuron/p ... ffic84.pdf and taking two half-delta-T steps, first advancing the channel state to that of (t+deltaT/2), then resolving all membrane voltages at (t+deltaT/2) following a variation of Equation (4), and repeating the process again to reach (t+deltaT). This does not feel correct, as the process is split into two half-steps. Would simply altering equations (4) and (9) to use deltaT rather than deltaT/2 be sufficient for implementing a full-step implicit Euler?
The documentation I have seen says that the ion channels and voltages are updated in a staggered manner for the Crank-Nicholson method, but that in more recent implementations they are computed simultaneously for Implicit Euler. I have been unable to find the equations for simultaneously solving the voltage equations and the ion channel progression. If this is the case, could you please direct me to an explanation of how this is done?
2. Voltage initialization.
Using finitialize, and referring specifically to http://www.neuron.yale.edu/neuron/stati ... racellular
I know that upon setting an initial membrane voltage, channel gate values are adjusted to their steady state for the given voltage. Would the same be true of VExt values in extracellular compartments, or would their voltage be set directly to a specific value?
3. Action Potential count.
My understanding of Neuron's record function is that it is generally set to record events specified by the user - in the case of action potentials, this seems to default to membrane voltage breaking 0 mv. Am I correct in assuming that this is the default spike counting method?
I'm trying to find a way to determine if a given time-varying current input (or a change in external voltage) would result in a propagating signal _far_ downstream in a model axon.
For example - when an initial voltage of, say, -40mV is set for a 15um fiber in the MRG model, there are a number of spikes - none of which break 0 mV - which appear before the membrane voltage drops to its resting value. None of these follow the traditional "all-or-nothing" shape, so I am unsure if they would propagate a reasonable distance or excite something more action-potential looking downstream.
Would there be an easy way of determining this without seeing a traditional action potential within the set of modeled nodes, or directly simulating a long axon?
Thank you for your help,
Platon