Mechanisms of magnetic stimulation of central nervous system neurons (Pashut et al. 2011)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:138321
Transcranial magnetic stimulation (TMS) is a widely applied tool for probing cognitive function in humans and is one of the best tools for clinical treatments and interfering with cognitive tasks. Surprisingly, while TMS has been commercially available for decades, the cellular mechanisms underlying magnetic stimulation remain unclear. Here we investigate these mechanisms using compartmental modeling. We generated a numerical scheme allowing simulation of the physiological response to magnetic stimulation of neurons with arbitrary morphologies and active properties. Computational experiments using this scheme suggested that TMS affects neurons in the central nervous system (CNS) primarily by somatic stimulation.
Reference:
1 . Pashut T, Wolfus S, Friedman A, Lavidor M, Bar-Gad I, Yeshurun Y, Korngreen A (2011) Mechanisms of magnetic stimulation of central nervous system neurons. PLoS Comput Biol 7:e1002022 [PubMed]
Citations  Citation Browser
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): Neocortex V1 L6 pyramidal corticothalamic GLU cell; Squid axon;
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Action Potential Initiation; Magnetic stimulation;
Implementer(s): Korngreen, Alon [alon.korngreen at gmail.com]; Pashut, Tamar [tamar.pashut at gmail.com];
Search NeuronDB for information about:  Neocortex V1 L6 pyramidal corticothalamic GLU cell;
/
pashut2011
TwoDimensions
Neuron
cells
cad2.mod *
child.mod *
childa.mod *
epsp.mod *
it2.mod *
kaprox.mod *
kca.mod *
km.mod *
kv.mod *
na.mod *
SlowCa.mod *
xtra.mod *
alon.ses
BACModel.hoc
BACModel_mag.hoc
Display.ses *
magstim.hoc
                            
{load_file("nrngui.hoc")}
objectvar save_window_, rvp_
objectvar scene_vector_[5]
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")
}
{
somaA ocbox_ = new PointProcessManager(0)
}
{object_push(ocbox_)}
{
mt.select("IClamp") i = mt.selected()
ms[i] = new MechanismStandard("IClamp")
ms[i].set("del", 1020, 0)
ms[i].set("dur", 5, 0)
ms[i].set("amp", 1.8, 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", 813, 555, 244.8, 270.9)
}
objref ocbox_
//End PointProcessManager


//Begin PointProcessManager
{
load_file("pointman.hoc")
}
{
dendA1_0000000000001 ocbox_ = new PointProcessManager(0)
}
{object_push(ocbox_)}
{
mt.select("IClamp") i = mt.selected()
ms[i] = new MechanismStandard("IClamp")
ms[i].set("del", 1080, 0)
ms[i].set("dur", 5, 0)
ms[i].set("amp", 1.8, 0)
mt.select("IClamp") i = mt.selected() maction(i)
hoc_ac_ = 0.833333
sec.sec move() d1.flip_to(0)
}
{object_pop() doNotify()}
{
ocbox_ = ocbox_.v1
ocbox_.map("PointProcessManager", 813, 188, 232.2, 267.3)
}
objref ocbox_
//End PointProcessManager

{
xpanel("RunControl", 0)
v_init = -70
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 = 1200
xvalue("t","t", 2 )
tstop = 1200
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 = 25.01
xvalue("Real Time","realtime", 0,"", 0, 1 )
xpanel(1176,61)
}
{
save_window_ = new Graph(0)
save_window_.size(1000,1200,-80,40)
scene_vector_[3] = save_window_
{save_window_.view(1000, -80, 200, 120, 114, 414, 471.6, 330.4)}
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("dendA1_0000000000001.v(1)", 2, 1, 0.8, 0.9, 2)
}
objectvar scene_vector_[1]
{doNotify()}