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.
Three questions on extracellular stimulation and recording
-
- Posts: 18
- Joined: Mon Sep 17, 2007 9:55 pm
-
- Site Admin
- Posts: 6300
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: Three questions on extracellular stimulation and recordi
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().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.
The documentation of the Vector class's record() method saysI 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.
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 callvdest.record(&var)
. . .
Save the stream of values of "var" during a simulation into the vdest vector.
run()
and vec will contain data, and then you will be able to write the recorded variables to a file.
-
- Posts: 18
- Joined: Mon Sep 17, 2007 9:55 pm
Re: Three questions on extracellular stimulation and recordi
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.
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.
-
- Site Admin
- Posts: 6300
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: Three questions on extracellular stimulation and recordi
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.
-
- Posts: 18
- Joined: Mon Sep 17, 2007 9:55 pm
Re: Three questions on extracellular stimulation and recordi
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?
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?
-
- Site Admin
- Posts: 6300
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: Three questions on extracellular stimulation and recordi
Quoting from your first post in this threadI 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?
Then in your second postI found a relative program on extracellular stimulation and recording with -65 mV resting potential on NEURON website.
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.the decrease of transmembrane voltage from -60 mV to -65 mV before stimulation still exists.
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.
-
- Posts: 18
- Joined: Mon Sep 17, 2007 9:55 pm
Re: Three questions on extracellular stimulation and recordi
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.
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.
Re: Three questions on extracellular stimulation and recording
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.
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.