Page 1 of 1

AP propagates too slow

Posted: Sat Apr 30, 2016 4:23 am
by youngJose
Hi everyone!
I'm doing simulation of AP propagation in pyramidal neuron. However, the propagation speed of AP is very slow, only 0.025 m/s.
In the simulation, I used the classical Hodgkin-Huxley model with classical parameters adapted from paper. (Larkum, Matthew E., et al. "Dendritic properties of turtle pyramidal neurons.")
According to experiment results, the propagation speed of AP in unmyelinated neuron should 0.5-2 m/s. (https://en.wikipedia.org/wiki/Nerve_conduction_velocity)
Also I used the same parameters to run the HH model with a MATLAB code, and I got 1 m/s for speed.
So I'm just wondering what the determinants of propagation speed of AP in the NEURON.
Any suggestions?
Image

Image

Code: Select all

cell_parameters = {
            'morphology': self.morphology_name,
            'v_init': -65,
            'rm': 54000,
            'passive': False,
            'nsegs_method': 'lambda_f',
            'lambda_f': 400,  # Higher number means higher spatial resolution of the cell
            'timeres_NEURON': 2**-3,  # Should be a power of 2
            'timeres_python': 2**-3,
            'tstartms': 0,
            'tstopms': 50,
        }
        cell = LFPy.Cell(**cell_parameters)

        for i,sec in enumerate(cell.allseclist):
            if i == 0:
                sec.Ra = 75  # Ohm cm
                sec.cm = 1.5  # uF / cm2
                sec.insert('hh')
                sec.gnabar_hh = 0.083 # S/cm2
                sec.gkbar_hh = 0.03 # S/cm2
                sec.gl_hh = 0.0003 # S/cm2
                sec.ena = 55 # mV
                sec.ek = -72 # mV
                sec.el_hh = -49.3 # mV
	
            else:   
                sec.Ra = 75  # Ohm cm
                sec.cm = 3  # uF / cm2
                sec.insert('hh')
                sec.gnabar_hh = 0.083 # S/cm2
                sec.gkbar_hh = 0.03 # S/cm2
                sec.gl_hh = 0.0003 # S/cm2
                sec.ena = 55 # mV
                sec.ek = -72 # mV
                sec.el_hh = -49.3 # mV

Re: AP propagates too slow

Posted: Sat Apr 30, 2016 9:27 am
by ramcdougal
Is the morphology (in particular, the diameter) the same?

Re: AP propagates too slow

Posted: Sun May 01, 2016 4:53 am
by youngJose
ramcdougal wrote:Is the morphology (in particular, the diameter) the same?
Not quite. In MATLAB code, I used a simplified model with the same diameter.
But I don't think that's the reason of the difference. Because according to the theory of HH model, it should be irrelevant with the morphology of the entire neuron, but dependent on the physical dimension, such as diameter.

Re: AP propagates too slow

Posted: Sun May 01, 2016 1:36 pm
by ted
Typical causes of "unexpected results"--
-1. Comparing apples with oranges. If your expectations are based on a Matlab model that has anatomical properties A and biophysical properties B, then your first comparison should be with a NEURON model with identical properties.
0. Inadequate instrumentation. What is your operational definition for conduction velocity? Are you measuring actual spike propagation latency over a path of known length, or just eyeballing color changes? If you're measuring propagation latency, are you comparing times of spike peaks (not terribly accurate), or times on the rising phase of the spike--when dv/dt is near max--at which v crosses a particular level? Is the spike propagation path sufficiently long for conductance latency to be long enough for accuracy? Are the observation points far enough from boundary conditions and other things that can affect spike initiation and propagation, such as branch points, points at which diameter changes, terminations, the site of current injection? If you are unfamiliar with those effects, you might want to explore them in a model with simple morphology, taking advantage of NEURON's space plots and Keep Lines features to visualize what they do to spike propagation.
1. Bad stimulus parameters. It is best to initiate the spike with a brief stimulus whose amplitude is about 2 x threshold. Brief means no longer than 0.1 ms. Longer duration allows stimulus current to spread out of the immediate vicinity of the electrode, which slows propagation by deactivating Na channels and activating K channels.
2. Model specification differs from what one assumed. In particular make sure channel densities are correct.
3. Spatial grid is too coarse. This decouples compartments from each other, and can slow or completely abolish spike propagation. What happens if you triple nseg?
4. Running a simulation at the wrong operating temperature. Make sure that celsius is correct.

Re: AP propagates too slow

Posted: Thu May 05, 2016 4:49 am
by youngJose
ted wrote:Typical causes of "unexpected results"--
-1. Comparing apples with oranges. If your expectations are based on a Matlab model that has anatomical properties A and biophysical properties B, then your first comparison should be with a NEURON model with identical properties.
0. Inadequate instrumentation. What is your operational definition for conduction velocity? Are you measuring actual spike propagation latency over a path of known length, or just eyeballing color changes? If you're measuring propagation latency, are you comparing times of spike peaks (not terribly accurate), or times on the rising phase of the spike--when dv/dt is near max--at which v crosses a particular level? Is the spike propagation path sufficiently long for conductance latency to be long enough for accuracy? Are the observation points far enough from boundary conditions and other things that can affect spike initiation and propagation, such as branch points, points at which diameter changes, terminations, the site of current injection? If you are unfamiliar with those effects, you might want to explore them in a model with simple morphology, taking advantage of NEURON's space plots and Keep Lines features to visualize what they do to spike propagation.
1. Bad stimulus parameters. It is best to initiate the spike with a brief stimulus whose amplitude is about 2 x threshold. Brief means no longer than 0.1 ms. Longer duration allows stimulus current to spread out of the immediate vicinity of the electrode, which slows propagation by deactivating Na channels and activating K channels.
2. Model specification differs from what one assumed. In particular make sure channel densities are correct.
3. Spatial grid is too coarse. This decouples compartments from each other, and can slow or completely abolish spike propagation. What happens if you triple nseg?
4. Running a simulation at the wrong operating temperature. Make sure that celsius is correct.
Thanks for your help! I have caught the criminal. It's the temperature. I didn't this temperature thing before, so I used the default value 6.3 Celsius. After I changed the temperature to 20 Celsius. Everything is okay.
By the way, do you know how to set temperature in Python? (Now I set it in hoc file) Because I want to put all parameters in the same place.
Wenbin

Re: AP propagates too slow

Posted: Thu May 05, 2016 10:32 am
by ramcdougal
To set the temperature via Python:

Code: Select all

h.celsius = 20
With important exceptions, the Python interface is essentially the same as the HOC interface, but prefaced with an "h."

Re: AP propagates too slow

Posted: Thu May 05, 2016 11:03 am
by youngJose
ramcdougal wrote:To set the temperature via Python:

Code: Select all

h.celsius = 20
With important exceptions, the Python interface is essentially the same as the HOC interface, but prefaced with an "h."
Thanks a lot!

Re: AP propagates too slow

Posted: Thu May 05, 2016 11:24 am
by ted
Of course, the existence of anything called h.foo presupposes that your Python code previously did something like
h = neuron.h
or
from neuron import h

You may find it useful to read
Python Accessing HOC
https://www.neuron.yale.edu/neuron/stat ... essing-hoc[/url]
in the Programmer's Reference.

This small cluster of black pearls is a bit of a hidden treasure because the string "Python Accessing HOC" doesn't appear in the Index. However, if you remember that string you can use Quick search to find it. It also appears if you take the more direct approach of clicking on the Python Language link in the Table of Contents at
https://www.neuron.yale.edu/neuron/stat ... index.html
which is not quite as hard as looking for the lost city of Cibola.