Three questions on extracellular stimulation and recording

NMODL and the Channel Builder.
Post Reply
luckychild
Posts: 18
Joined: Mon Sep 17, 2007 9:55 pm

Three questions on extracellular stimulation and recording

Post by luckychild »

Hello,everyone!
I am simulating the extracellular potential recording with extracellular stimulation by NEURON and have three questions.
1. I found a relative program on extracellular stimulation and recording with -65 mV resting potential on NEURON website. Since the resting potential in my model is -60 mV, I have to add some additional program. Fortunately, there are such examples in the Chapter 8 of the NEURON Book and the forum. I try to apply them in my program. The detailed steps are below

(1) Write a "constant" mechanism and insert it into the “cell.ses” file.
The "constant" mechanism is shown as follows

:constant current for custom initialization
NEURON{
SUFFIX constant
NONSPECIFIC_CURRENT i
RANGE i,ic
}
UNITS{
(mA)=(milliamp)
}
PARAMETER{
ic=0(mA/cm2)
}
ASSIGNED{
i(mA/cm2)
}
BREAKPOINT{
i=ic
}

The program after inseting the "constant" mechanism is below
......
{
tobj = new MechanismStandard("constant")
tobj.set("ic_constant", 0, 0)
tobj = new MStanWrap(tobj, 1)
bild.topol.slist.object(0).ml.append(tobj)
}
......

(2) write some program to set resting potential.

vrec = 0 // extracellularly recorded potential
func fieldrec() { local sum
sum = 0
forall {
if (ismembrane("xtra")) {
for (x) if ((x>0) && (x<1)) sum += er_xtra(x)
}
}
return sum
}
proc init() {
finitialize(v_init)
//el_hh=(ina+ik+gl_hh*v)/gl_hh
ic_constant=-(ina+ik+il_hh)
if(cvode.active()){
cvode.re_init()
}else{
fcurrent()
}frecord_init()
vrec = fieldrec()
}

(3) the el_hh in Biophysics of CellBuilder GUI is set to be -39.387.
However, the computational results still seem a bit abnormal.
It seems that the -60 mV resting potential setting is not correct yet since the curve of dend.v(0.5) decreases gradually from -60 mV and approachs -65 mV which is a default resting potential in NEURON during the first millisecond when the stimulation is not applied. Therefore I suspect that the given resting potential -60 mV is not set correctly. Where is the mistake?

2. There are two "proc init()" in the chapter 8 of the NEURON Book to set given resting potential.

proc init() {
finitialize(v_init)
el_hh=(ina+ik+gl_hh*v)/gl_hh
if(cvode.active()){
cvode.re_init()
}else{
fcurrent()
}frecord_init()
vrec = fieldrec()
}

proc init() {
finitialize(v_init)
ic_constant=-(ina+ik+il_hh)
if(cvode.active()){
cvode.re_init()
}else{
fcurrent()
}frecord_init()
vrec = fieldrec()
}
while there is still an analogous proc init() in the forum

proc init() {
finitialize(v_init)
forall {
if (ismembrane("hh")) ic_constant = -(ina + ik + il_hh)
if (ismembrane("pas")) ic_constant = -i_pas
}
if (cvode.active()) {
cvode.re_init()
} else {
fcurrent()
} frecord_init()
}

Why does the statement el_hh=(ina+ik+el_hh*v)/ el_hh disappear in the last two "proc int()"? In other words, what function does this statement have?

3. I tried to output the soma.v(0.5) to a .txt file as follows

objref vec
vec=new Vector()
vec.record(&soma.v(0.5))
objref file
file=new File()
file.wopen("temp")
vec.printf(file)
file.close()

and failed. The problem is that soma.v(0.5) is not recorded in vec at all. How to solve this problem?

Thank you very much for your attention and help.
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Three questions on extracellular stimulation and recordi

Post by ted »

luckychild wrote:I found a relative program on extracellular stimulation and recording with -65 mV resting potential on NEURON website. Since the resting potential in my model is -60 mV, I have to add some additional program.
If you have a model cell that has a resting potential of -60 mV, then all you have to do is set v_init to -60 mV. No need to use a bias current mechanism, no need for a custom proc init().
I tried to output the soma.v(0.5) to a .txt file
. . .
and failed. The problem is that soma.v(0.5) is not recorded in vec at all.
The documentation of the Vector class's record() method says
vdest.record(&var)
. . .
Save the stream of values of "var" during a simulation into the vdest vector.
That sentence "Save the stream . . . " means that, after you tell NEURON to record some variable to a Vector, you have to run a simulation. Your hoc statements do indeed tell NEURON that it should capture the values of soma.v(0.5) into vec, but vec is empty and will remain empty until you run a simulation. Just call
run()
and vec will contain data, and then you will be able to write the recorded variables to a file.
luckychild
Posts: 18
Joined: Mon Sep 17, 2007 9:55 pm

Re: Three questions on extracellular stimulation and recordi

Post by luckychild »

Dear Ted,
Thank you for your reply.
The problem for "vec.record" and "file.wopen" has been solved. According to your suggestion, I add a "run()" statement in the program,which is shown below
objref vec
vec=new Vector()
vec.record(&soma.v(0.5))
run()
objref file
file=new File()
file.wopen("temp")
vec.printf(file)
file.close()
However, there still exist the problem for setting -60 mV resting potential.First, I delete all the relative mechanism and statements. Then, I input -60 mV into the v_init.Finally, I assign the el_hh -49.387 which is determinded by the resting potential. But the decrease of transmembrane voltage from -60 mV to -65 mV before stimulation still exists.
I wonder if you have any other suggesions?
Thank you.
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Three questions on extracellular stimulation and recordi

Post by ted »

You have a model that has a resting potential of -65 mV. Why do you want to force it to have a resting potential of -60 mV. It's doable, but before we get into how, the most important question is why.
luckychild
Posts: 18
Joined: Mon Sep 17, 2007 9:55 pm

Re: Three questions on extracellular stimulation and recordi

Post by luckychild »

The resting potential in my model is always -60 mV.The parameter is from the following paper
Celine Moulin, Alain Gliere, Danier Barbier, etc. A New 3-D Finite-Element Model Based on Thin-Film Approximation for Microelectrode Array Recording of Extracellular Action Potential. IEEE Trans. Biomedical Engineering, Vol. 55, No. 2, pp:683-692, 2008.
I never use -65 mV and never mentioned I have a model with -65 mV and intend to force it to -60 mV in the forum. Is there any ambiguity in my description on my model?
ted
Site Admin
Posts: 6289
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Three questions on extracellular stimulation and recordi

Post by ted »

I never use -65 mV and never mentioned I have a model with -65 mV and intend to force it to -60 mV in the forum. Is there any ambiguity in my description on my model?
Quoting from your first post in this thread
I found a relative program on extracellular stimulation and recording with -65 mV resting potential on NEURON website.
Then in your second post
the decrease of transmembrane voltage from -60 mV to -65 mV before stimulation still exists.
So it's pretty clear that the model you're working with has a -65 mV resting potential. The model that you're working with is "your model" because you're working with it. Clearly you're not working with a model that has a resting potential of -60 mv, because if you were, we wouldn't be having this discussion.

Which leads me to ask two questions and make a suggestion. First question: if Moulin et al. used a model with a -60 mV resting potential, why aren't you using that one instead? Second question: what difference does the resting potential of "your model" make? The extracellular field produced by neural activity is generated by transmembrane current, not by the cell's resting potential. An extracellular stimulus works by forcing current to flow through the cell membrane; for any reasonable stimulus amplitude and duration, most of this current flows through the cell's membrane capacitance, and membrane capacitive current has nothing to do with the cell's resting potential. But tinkering with the cell's resting potential by changing model parameters will affect the degree to which ion channels are open or closed when the cell is at rest, and that will change the excitability of the cell, which is not a good idea unless your primary intent is to study how changing the resting potential affects cell excitability.

Finally the suggestion: if you're bound and determined to use the model that Moulin et al. used, go right ahead. Implement it yourself if necessary. If not, then pick some other axon model and use it instead, but don't mess with its resting potential.
luckychild
Posts: 18
Joined: Mon Sep 17, 2007 9:55 pm

Re: Three questions on extracellular stimulation and recordi

Post by luckychild »

I know what you mean. In your opinion, "my model" means the model I work with. While, in my opinion, "my model" means the model I want. I am doing some research on computational neuroscience and want to use Neuron to validate my numerical method. Since I happen to read the aforementioned paper first, I adopt the parameter in it. Later I found the Neuron and relative program. However, When I tried to change the resting potential according to the relative content on the forum, I failed. My curiosity makes me to ask the aforementioned question. I will use the model which resting potential is -65 mV to validate my program. As a matter of fact, it really do not affect my results and conclusion. By the way, there is a mistake in my preceding description."the decrease of transmembrane voltage from -60 mV to -65 mV before stimulation still exists."should be "the decrease of transmembrane voltage from -60 mV to -65 mV before stimulation exists."
In fact, Neuron is a powerful software for neuron computation and you really make a lot of valuable suggestions on my questions. Thank you for your time and effort in NEURON software and the forum and thank you for your help.
luciana
Posts: 17
Joined: Sun Mar 09, 2014 2:29 pm

Re: Three questions on extracellular stimulation and recording

Post by luciana »

Hi everyone,

I would like to know what is the main difference between NEURON xtra mechanism and LFPy (https://lfpy.github.io) in the calculation of extracellular potential in a particular spatial location (x,y,z) ?

Thank you very much

Luciana.
Post Reply