The cannula artifact (Chandler & Hodgkin 1965)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:230888
Chandler and Hodgkin 1965 describes how using a high impedance electrode can lead to squid axon recordings that appear to overshoot the sodium reversal potential, thus resolving controversial recordings at the time.
Reference:
1 . Chandler WK, Hodgkin AL (1965) The effect of internal sodium on the action potential in the presence of different internal anions. J Physiol 181:594-611 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s): Squid axon;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Methods; Action Potentials; Tutorial/Teaching;
Implementer(s): Hines, Michael [Michael.Hines at Yale.edu];
/
ChandlerHodgkin1965
readme.html
chandler1.ses
init.hoc
mosinit.hoc *
screenshot.png
screenshot1.png
var_time_step.ses
                            
{load_file("nrngui.hoc")}
objectvar save_window_, rvp_
objectvar scene_vector_[10]
objectvar ocbox_, ocbox_list_, scene_, scene_list_
{ocbox_list_ = new List()  scene_list_ = new List()}
{pwman_place(0,0,0)}

//Begin CellBuild[0]
{
load_file("celbild.hoc", "CellBuild")
}
{ocbox_ = new CellBuild(1)}
{object_push(ocbox_)}
{
version(5.7)
continuous = 1
}
{object_push(topol)}
{
first = 0
slist.remove_all()
sname = "axon"
objref tobj
}
{
tobj = new CellBuildSection("axon",0, 0, tobj, 0) slist.append(tobj)
  tobj.position(0,0,90,0) tobj.lx=43.7601 tobj.ly=-14.1869 tobj.i3d=0
all_init()
}
for i=0, slist.count-1 {slist.object(i).rdses()}
{object_pop()}
{
}
{object_push(subsets)}
{first = 0}
{ tobj = snlist.object(0)}
{consist()}
{object_pop()}
{
}
{object_push(geom)}
{
first = 0
tobj = new GeoSpec(2)
tobj.value = 40000
bild.topol.slist.object(0).geo.append(tobj)
tobj = new GeoSpec(3)
tobj.value = 830
bild.topol.slist.object(0).geo.append(tobj)
tobj = new GeoSpec(6)
tobj.value = 100
bild.topol.slist.object(0).geo.append(tobj)
set_default()
}
{object_pop()}
{
}
{object_push(memb)}
{first=0}
{
tobj = new FakeMechStan(0)
tobj.value = 35.4
tobj.set_default()
tobj = new MStanWrap(tobj, 0)
bild.topol.slist.object(0).ml.append(tobj)
}
{
tobj = new FakeMechStan(1)
tobj.value = 1
tobj.set_default()
tobj = new MStanWrap(tobj, 0)
bild.topol.slist.object(0).ml.append(tobj)
}
{
tobj = new MechanismStandard("hh")
tobj.set("gnabar_hh", 0.12, 0)
tobj.set("gkbar_hh", 0.036, 0)
tobj.set("gl_hh", 0.0003, 0)
tobj.set("el_hh", -54.3, 0)
tobj = new MStanWrap(tobj, 1)
bild.topol.slist.object(0).ml.append(tobj)
}
{object_pop()}
{
}
{object_push(manage)}
{
first = 0
classname = "Cell"
etop=1 esub=1 egeom=1 emem=1
itop=1 isub=0 igeom=0 imem=0
bild.topol.names_off = 0
bild.topol.circles_off = 0
output_index = 0  output_x = 1
thresh = 10
}
{object_pop()}
{
cexport()
}
{object_pop()}
{
save_window_=ocbox_.gtopol
save_window_.size(-200,200,-150,150)
scene_vector_[2] = save_window_
ocbox_.gtopol = save_window_
save_window_.save_name("ocbox_.gtopol")
}
{
ocbox_.map("CellBuild[0]", 376, 21, 766.08, 374.4)
}
objref ocbox_
//End CellBuild[0]


//Begin PointProcessManager
{
load_file("pointman.hoc")
}
{
axon ocbox_ = new PointProcessManager(0)
}
{object_push(ocbox_)}
{
mt.select("IClamp") i = mt.selected()
ms[i] = new MechanismStandard("IClamp")
ms[i].set("del", 0, 0)
ms[i].set("dur", 0.1, 0)
ms[i].set("amp", 30000, 0)
mt.select("IClamp") i = mt.selected() maction(i)
hoc_ac_ = 0
sec.sec move() d1.flip_to(0)
}
{object_pop() doNotify()}
{
ocbox_ = ocbox_.v1
ocbox_.map("PointProcessManager", 127, 535, 208.32, 326.4)
}
objref ocbox_
//End PointProcessManager

{
save_window_ = new Graph(0)
save_window_.size(0,5,-80,40)
scene_vector_[3] = save_window_
{save_window_.view(0, -80, 5, 120, 362, 440, 300.48, 200.32)}
graphList[0].append(save_window_)
save_window_.save_name("graphList[0].")
save_window_.addexpr("v(.5)", 1, 1, 0.8, 0.9, 2)
save_window_.addexpr("axon.v( 1 )", 1, 1, 0.8, 0.9, 2)
}
{
save_window_ = new Graph(0)
save_window_.size(0,40000,-80,40)
scene_vector_[4] = save_window_
{save_window_.view(0, -80, 40000, 120, 687, 440, 300.48, 200.32)}
flush_list.append(save_window_)
save_window_.save_name("flush_list.")
objectvar rvp_
rvp_ = new RangeVarPlot("v")
axon rvp_.begin(0)
axon rvp_.end(1)
rvp_.origin(0)
save_window_.addobject(rvp_, 2, 1, 0.8, 0.9)
}
{
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 = 5
xvalue("t","t", 2 )
tstop = 5
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 = 0.0300002
xvalue("Real Time","realtime", 0,"", 0, 1 )
xpanel(20,170)
}
{
xpanel("Movie Run", 0)
xbutton("Init & Run","movierun()")
movie_frame_dur_ = 0.01
xvalue("Seconds per step","movie_frame_dur_", 1,"", 0, 1 )
xpanel(374,719)
}
{
xpanel("Temperature", 0)
celsius = 20
xvalue("celsius","celsius", 1,"", 0, 1 )
xpanel(683,727)
}

//Begin LinearCircuit[0]
{
load_file("lincir.hoc", "LinearCircuit")
}
{
ocbox_ = new LinearCircuit(1)
}
{object_push(ocbox_)}
{mkelm(2, 130, 115, 2.5, -1.5708)}
0.03
{mklabel(0, "C", 15, 15)}
{mklabel(1, "Vcap", -1.49, 26.333)}
{restore_ic(1, -65)}
{mklabel(2, "Vend", 21.526, 5.3647)}
{mkelm(1, 150, 140, 2, 0)}
4
{mklabel(0, "R2", 4.404, 15.783)}
{mklabel(2, "Vin", 18.929, 7.152)}
{mkelm(1, 110, 140, 2, 0)}
4
{mklabel(0, "R1", 2.206, 17.702)}
{mklabel(1, "Vout", -18.0729, 5.234)}
{restore_ic(1, -65)}
{mkelm(7, 130, 70, 2, 0)}
{mklabel(0, "axon(1)", 0.428, -17.7916)}
{sel.extra_info.set("axon", 1) sel.extra_info.name(sel)}
{mkelm(7, 220, 100, 2, 0)}
{mklabel(0, "axon(0.855)", 9.208, -20.9388)}
{sel.extra_info.set("axon", 0.855) sel.extra_info.name(sel)}
{mkelm(0, 195, 130, 2.69258, -0.380506)}
{parasitic_ = 0  noconsist_ = 0}
{graphlist.append(new LincirGraph(this, 1))}
3
Vend (mV)
1 1 0.8 0.9 2
Vin (mV)
3 1 0.8 0.9 2
Vout (mV)
2 1 0.8 0.9 2
0 5 -80 100 // graph size
842 580 308.16 261.12 // box size
// end info
{g.exec_menu("Simulate")  tool(2)}
{sel = nil}
{object_pop()}
{
{
save_window_=ocbox_.g
save_window_.size(0,300,0,200)
scene_vector_[6] = save_window_
ocbox_.g = save_window_
save_window_.save_name("ocbox_.g")
save_window_.label(145, 130, "C", 1, 1, 0.5, 0.5, 1)
save_window_.label(128.51, 166.333, "Vcap", 1, 1, 0.5, 0.5, 1)
save_window_.label(151.526, 95.3647, "Vend", 1, 1, 0.5, 0.5, 1)
save_window_.label(154.404, 155.783, "R2", 1, 1, 0.5, 0.5, 1)
save_window_.label(188.929, 147.152, "Vin", 1, 1, 0.5, 0.5, 1)
save_window_.label(112.206, 157.702, "R1", 1, 1, 0.5, 0.5, 1)
save_window_.label(71.9271, 145.234, "Vout", 1, 1, 0.5, 0.5, 1)
save_window_.label(130.428, 52.2084, "axon(1)", 1, 1, 0.5, 0.5, 1)
save_window_.label(229.208, 79.0612, "axon(0.855)", 1, 1, 0.5, 0.5, 1)
}
ocbox_.map("LinearCircuit[0]", 615, 255, 519.36, 284.16)
}
objref ocbox_
//End LinearCircuit[0]

objectvar scene_vector_[1]
{doNotify()}

Loading data, please wait...