Movie run

The basics of how to develop, test, and use models.
Post Reply
chang

Movie run

Post by chang »

Hello,

I have confused with movie run option in Neuron. instate of signal only i see several lines! what i have done are:

1- create a model
2- insert current
3-Run
4-open voltage graph (i see a Action potential)
5- shape plot
6-space plot (keep line)
7- movie run
8- result in space plot for (v) is only several lines!!

what i have don wrong? i expect to see action potential waveform.
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Movie run

Post by ted »

Maybe your space plot's path is shorter than the action potential wavelength.
Explanation:
A space plot shows membrane potential vs. distance along a path through your model cell.
A propagating action potential has a wavelength which equals (conduction velocity) x (spike duration).
If the path is shorter than the wavelength of an action potential, the space plot will show only a piece of the action potential waveform.
chang

Re: Movie run

Post by chang »

Actually the x-axis in space plot has the same length as the distance between soma and end of dendritic section. As i mentioned , the result in space plot graph is only a straight line that moves up and down.

i'm using Neuron 7.0 on a Winxp.

Other possible source of error?
chang

Re: Movie run

Post by chang »

The code, i'm using has the following simple stracture:

Code: Select all

load_file("nrngui.hoc")

create soma,dend
connect dend(0),soma(1)
soma {L=18 diam=18}
dend {L=100 diam=4}
forall { cm = 1 Ra = 173}
forall {insert pas }
soma {insert hh }
 	
xopen("TestA.ses")
and the TestA.ses file is as follow . please tell me why i can not get a traveling waveform in space plot graph.

Code: Select all

{load_file("nrngui.hoc")}
objectvar save_window_, rvp_
objectvar scene_vector_[6]
objectvar ocbox_, ocbox_list_, scene_, scene_list_
{ocbox_list_ = new List()  scene_list_ = new List()}
{pwman_place(0,0,0)}

//Begin PointProcessManager
{
load_file("pointman.hoc")
}
{
soma ocbox_ = new PointProcessManager(0)
}
{object_push(ocbox_)}
{
mt.select("IClamp") i = mt.selected()
ms[i] = new MechanismStandard("IClamp")
ms[i].set("del", 1, 0)
ms[i].set("dur", 2, 0)
ms[i].set("amp", 1, 0)
mt.select("IClamp") i = mt.selected() maction(i)
hoc_ac_ = 0.5
sec.sec move() d1.flip_to(0)
}
{object_pop() doNotify()}
{
ocbox_ = ocbox_.v1
ocbox_.map("PointProcessManager", 1333, 608, 215.1, 334.8)
}
objref ocbox_
//End PointProcessManager

{
save_window_ = new Graph(0)
save_window_.size(0,7,-80,40)
scene_vector_[2] = save_window_
{save_window_.view(0, -80, 7, 120, 1286, 51, 300.6, 200.8)}
graphList[0].append(save_window_)
save_window_.save_name("graphList[0].")
save_window_.addexpr("v(.5)", 1, 1, 0.8, 0.9, 2)
}
{
xpanel("RunControl", 0)
v_init = -65
xvalue("Init","v_init", 1,"stdinit()", 1, 1 )
xbutton("Init & Run","run()")
xbutton("Stop","stoprun=1")
runStopAt = 5
xvalue("Continue til","runStopAt", 1,"{continuerun(runStopAt) stoprun=1}", 1, 1 )
runStopIn = 1
xvalue("Continue for","runStopIn", 1,"{continuerun(t + runStopIn) stoprun=1}", 1, 1 )
xbutton("Single Step","steprun()")
t = 7
xvalue("t","t", 2 )
tstop = 7
xvalue("Tstop","tstop", 1,"tstop_changed()", 0, 1 )
dt = 0.025
xvalue("dt","dt", 1,"setdt()", 0, 1 )
steps_per_ms = 40
xvalue("Points plotted/ms","steps_per_ms", 1,"setdt()", 0, 1 )
screen_update_invl = 0.05
xvalue("Scrn update invl","screen_update_invl", 1,"", 0, 1 )
realtime = 3.31
xvalue("Real Time","realtime", 0,"", 0, 1 )
xpanel(352,672)
}
{
save_window_ = new PlotShape(0)
save_window_.size(-4.54167,115.542,-60.0417,60.0417)
save_window_.variable("v")
scene_vector_[4] = save_window_
{save_window_.view(-4.54167, -60.0417, 120.083, 120.083, 979, 658, 200.7, 200.8)}
fast_flush_list.append(save_window_)
save_window_.save_name("fast_flush_list.")
}
{
save_window_ = new Graph(0)
save_window_.size(0,118,-80,40)
scene_vector_[5] = save_window_
{save_window_.view(0, -80, 118, 120, 884, 318, 300.6, 200.8)}
flush_list.append(save_window_)
save_window_.save_name("flush_list.")
objectvar rvp_
rvp_ = new RangeVarPlot("v")
soma rvp_.begin(0)
dend rvp_.end(1)
rvp_.origin(0)
save_window_.addobject(rvp_, 2, 1, 0.8, 0.9)
}

//Begin Movie Run
{
movie_frame_dur_ = 0.01

movierunpanel(0)
ocbox_ = movierunbox
ocbox_.map("Movie Run", 660, 991, 287.1, 134.1)
}
objref ocbox_
//End Movie Run

objectvar scene_vector_[1]
{doNotify()}
ted
Site Admin
Posts: 6299
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Movie run

Post by ted »

please tell me why i can not get a traveling waveform in space plot graph
Good question. The answer is that you are seeing a traveling wave, but only a very short piece of it.

In order to solve the cable equation by numerical integration on a digital computer, it is necessary to discretize both space and time. In NEURON, each section has a spatial discretization parameter called nseg.
1. Read about nseg in the Programmer's Reference
http://www.neuron.yale.edu/neuron/stati ... .html#nseg
2. Read your code and discover that your model has only two sections, each of which has nseg = 1.

So NEURON will solve for the time course of membrane potential at only two points in space, and the space plot shows the voltages at these two points, connected by a straight line.

"So all I have to do is increase nseg?"

The answer is: not for this model.

"Why not for this model?"

Because the diameters, anatomical lengths, and biophysical properties of both sections are such that both are (1) electrically very compact, and (2) electrically very closely coupled to each other. Consequently soma.v(0.5) and dend.v(0.5) will be very nearly equal to each other, and the straight line that is plotted in the space plot will be almost horizontal.

In other words, the traveling wave has a wavelength that is _very_ long compared to the distance between soma(0.5) and dend(0.5).

If you want to see membrane potential vary smoothly over the length of a cell, at least one neurite must have significant electrotonic extent, and the spatial grid must be fine enough to capture the curvature of the variation of v with distance. If you make the dendrite longer and narrower (1000 um and 1 um, respectively), and increase nseg, you'll see a very clear traveling wave.

To learn how to decide what value to use for nseg, read
Q: Why should I use an odd value for nseg?
and
Q: What's a good strategy for specifying nseg?
in NEURON's FAQ list
http://www.neuron.yale.edu/neuron/faq/general-questions
Post Reply