AP propagates too slow

When Python is the interpreter, what is a good
design for the interface to the basic NEURON
concepts.

Moderator: hines

Post Reply
youngJose

AP propagates too slow

Post 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
ramcdougal
Posts: 267
Joined: Fri Nov 28, 2008 3:38 pm
Location: Yale School of Public Health

Re: AP propagates too slow

Post by ramcdougal »

Is the morphology (in particular, the diameter) the same?
youngJose

Re: AP propagates too slow

Post 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.
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: AP propagates too slow

Post 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.
youngJose

Re: AP propagates too slow

Post 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
ramcdougal
Posts: 267
Joined: Fri Nov 28, 2008 3:38 pm
Location: Yale School of Public Health

Re: AP propagates too slow

Post 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."
youngJose

Re: AP propagates too slow

Post 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!
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: AP propagates too slow

Post 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.
Post Reply