Spontaneous firing caused by stochastic channel gating (Chow, White 1996)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:50391
NEURON implementation of model of stochastic channel gating, resulting in spontaneous firing. Qualitatively reproduces the phenomena described in the reference.
Reference:
1 . Chow CC, White JA (1996) Spontaneous action potentials due to channel fluctuations. Biophys J 71:3013-21 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Channel/Receptor;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s): I K; I Sodium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Activity Patterns; Ion Channel Kinetics; Temporal Pattern Generation; Axonal Action Potentials; Action Potentials;
Implementer(s): Carnevale, Ted [Ted.Carnevale at Yale.edu]; Donnelly, David [david.donnelly at yale.edu];
Search NeuronDB for information about:  I K; I Sodium;
objectvar save_window_, rvp_
objectvar scene_vector_[9]
objectvar ocbox_, ocbox_list_, scene_, scene_list_
{ocbox_list_ = new List()  scene_list_ = new List()}

//Begin ChannelBuild[0] managed KSChan[0]
{
load_file("chanbild.hoc", "ChannelBuild")
}
{ion_register("na", 1)}
{ocbox_ = new ChannelBuild(0)}
{object_push(ocbox_)}
{genprop.set_data("DDINa", 0, 1, 5, "na")}
{genprop.set_defstr(0, 0)}
tobj = new ChannelBuildKSGate(this)
{gatelist.append(tobj)}
{tobj.begin_restore(1)}
{tobj.set_state("C", 0, 50, 120)}
{tobj.set_state("C2", 0, 100, 120)}
{tobj.set_state("C3", 0, 140, 120)}
{tobj.set_state("O", 1, 190, 120)}
{tobj.set_state("C4", 0, 50, 80)}
{tobj.set_state("C5", 0, 100, 80)}
{tobj.set_state("C6", 0, 140, 80)}
{tobj.set_state("C7", 0, 190, 80)}
{tobj.set_trans(0, 1, 0)}
{tobj.transitions.object(0).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
3
0.1
-40
{tobj.transitions.object(0).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
4
-0.055556
-65
{tobj.transitions.object(0).set_f(1, 2, tobj1)}
{tobj.set_trans(1, 2, 0)}
{tobj.transitions.object(1).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
2
0.1
-40
{tobj.transitions.object(1).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
8
-0.055556
-65
{tobj.transitions.object(1).set_f(1, 2, tobj1)}
{tobj.set_trans(2, 3, 0)}
{tobj.transitions.object(2).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
1
0.1
-40
{tobj.transitions.object(2).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
12
-0.055556
-65
{tobj.transitions.object(2).set_f(1, 2, tobj1)}
{tobj.set_trans(4, 5, 0)}
{tobj.transitions.object(3).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
3
0.1
-40
{tobj.transitions.object(3).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
4
-0.055556
-65
{tobj.transitions.object(3).set_f(1, 2, tobj1)}
{tobj.set_trans(5, 6, 0)}
{tobj.transitions.object(4).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
2
0.1
-40
{tobj.transitions.object(4).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
8
-0.055556
-65
{tobj.transitions.object(4).set_f(1, 2, tobj1)}
{tobj.set_trans(6, 7, 0)}
{tobj.transitions.object(5).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
1
0.1
-40
{tobj.transitions.object(5).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
12
-0.055556
-65
{tobj.transitions.object(5).set_f(1, 2, tobj1)}
{tobj.set_trans(4, 0, 0)}
{tobj.transitions.object(6).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.07
-0.05
-65
{tobj.transitions.object(6).set_f(0, 2, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
1
-0.1
-35
{tobj.transitions.object(6).set_f(1, 4, tobj1)}
{tobj.set_trans(5, 1, 0)}
{tobj.transitions.object(7).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.07
-0.05
-65
{tobj.transitions.object(7).set_f(0, 2, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
1
-0.1
-35
{tobj.transitions.object(7).set_f(1, 4, tobj1)}
{tobj.set_trans(6, 2, 0)}
{tobj.transitions.object(8).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.07
-0.05
-65
{tobj.transitions.object(8).set_f(0, 2, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
1
-0.1
-35
{tobj.transitions.object(8).set_f(1, 4, tobj1)}
{tobj.set_trans(7, 3, 0)}
{tobj.transitions.object(9).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.07
-0.05
-65
{tobj.transitions.object(9).set_f(0, 2, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
1
-0.1
-35
{tobj.transitions.object(9).set_f(1, 4, tobj1)}
{tobj.end_restore()}
end_restore()
{genprop.set_single(1)}
{object_pop()}
{
ocbox_.map("ChannelBuild[0] managed KSChan[0]", 0, 83, 198.72, 256.32)
}
objref ocbox_
//End ChannelBuild[0] managed KSChan[0]


//Begin ChannelBuild[1] managed KSChan[1]
{
load_file("chanbild.hoc", "ChannelBuild")
}
{ion_register("k", 1)}
{ocbox_ = new ChannelBuild(0)}
{object_push(ocbox_)}
{genprop.set_data("ddhhkp", 0, 1, 6, "k")}
{genprop.set_defstr(0.01, 0)}
tobj = new ChannelBuildKSGate(this)
{gatelist.append(tobj)}
{tobj.begin_restore(1)}
{tobj.set_state("C", 0, 60, 130)}
{tobj.set_state("C2", 0, 100, 130)}
{tobj.set_state("C3", 0, 140, 130)}
{tobj.set_state("C4", 0, 170, 130)}
{tobj.set_state("O", 1, 210, 130)}
{tobj.set_trans(0, 1, 0)}
{tobj.transitions.object(0).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.4
0.1
-55
{tobj.transitions.object(0).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.125
-0.0125
-65
{tobj.transitions.object(0).set_f(1, 2, tobj1)}
{tobj.set_trans(1, 2, 0)}
{tobj.transitions.object(1).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.3
0.1
-55
{tobj.transitions.object(1).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.25
-0.0125
-65
{tobj.transitions.object(1).set_f(1, 2, tobj1)}
{tobj.set_trans(2, 3, 0)}
{tobj.transitions.object(2).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.2
0.1
-55
{tobj.transitions.object(2).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.375
-0.0125
-65
{tobj.transitions.object(2).set_f(1, 2, tobj1)}
{tobj.set_trans(3, 4, 0)}
{tobj.transitions.object(3).settype(0, "")}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.1
0.1
-55
{tobj.transitions.object(3).set_f(0, 3, tobj1)}
{tobj1 = new Vector(3)  for (i=0; i < 3; i += 1) tobj1.x[i] = fscan() }
0.5
-0.0125
-65
{tobj.transitions.object(3).set_f(1, 2, tobj1)}
{tobj.end_restore()}
end_restore()
{genprop.set_single(1)}
{object_pop()}
{
ocbox_.map("ChannelBuild[1] managed KSChan[1]", 219, 83, 192, 256.32)
}
objref ocbox_
//End ChannelBuild[1] managed KSChan[1]


//Begin PointProcessManager
{
load_file("pointman.hoc")
}
{
soma ocbox_ = new PointProcessManager(0)
}
{object_push(ocbox_)}
{
mt.select("DDINa") i = mt.selected()
ms[i] = new MechanismStandard("DDINa")
ms[i].set("Nsingle", 6000, 0)
ms[i].set("gmax", 2e-05, 0)
mt.select("DDINa") 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", 0, 378, 208.32, 326.4)
}
objref ocbox_
//End PointProcessManager


//Begin PointProcessManager
{
load_file("pointman.hoc")
}
{
soma ocbox_ = new PointProcessManager(0)
}
{object_push(ocbox_)}
{
mt.select("ddhhkp") i = mt.selected()
ms[i] = new MechanismStandard("ddhhkp")
ms[i].set("Nsingle", 1800, 0)
ms[i].set("gmax", 2e-05, 0)
mt.select("ddhhkp") 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", 229, 378, 208.32, 326.4)
}
objref ocbox_
//End PointProcessManager

objectvar scene_vector_[1]
{doNotify()}