Re: Modeling a demyelinated axon
Posted: Wed Jul 25, 2012 1:25 pm
here is the original code:
Here is my modified code:
I think I have fixed the error problem in the secod code. That's not giving any trouble when highlighting the shape plot line to get the space plot.
From my understanding, with the current parameters set in the second code, I should get the same results when I graph both codes on the space plot because the first code is one loop, and for the second code I have broken that same one loop into two loops. I hae a nice continuous action potentil for the first code. However, when I graph the second code on the space plot I get a graph that looks like the stimulis has died out in the first myelin compartment, and that also, after I set a much greater current in the IClamp than for the first model. I can't seem to figure out the problem.
I suspect the problem to be here somewhere but I cant pinpoint it:
Do you think maybe I should be viewing the results of my code with a different kind of graph? By the end, what i think should happend is that when I change the capacitance of demyelin section, I should see a solid action potential through half of the axon modeled and see failure for the second half.
Thanks for all your help!
Code: Select all
load_file("nrngui.hoc")
create node[1], myelin[1]
objref nodes, myelins
// topol(nnode) connects an alternating sequence of node/myelin pairs.
proc topol() {local i
nnode = $1
create node[nnode], myelin[nnode-1]
nodes = new SectionList()
myelins = new SectionList()
forsec "node" nodes.append
forsec "myelin" myelins.append
access node[0]
for i=0, nnode-2 {
connect myelin[i](0), node[i](1)
connect node[i+1](0), myelin[i](1)
}
forsec myelins { nseg = 10 }
}
proc geom() {
forsec nodes { // area = 100 um2
L = 3.183
diam = 10
}
forsec myelins {
L = $1
diam = 10
}
}
proc biophys() {local fac
// ohm/cm must be converted to ohm-cm by multiplying by
// cross sectional area
fac = PI*diam^2/4 * 1e-8
forall {
Ra = 100
}
// paper relative to rest=0 but following values relative to -65
forsec nodes {
insert hh
gnabar_hh = 1.2
gkbar_hh = .36
gl_hh = .003
ena = 115 - 65
ek = -12 - 65
cm = 1 // uF/cm2
}
forsec myelins {
insert pas
e_pas = -65
g_pas = 1.5e-6 // S/cm2
cm = 0.005 // uF/cm2
}
celsius = 18.5
}
proc make() {
topol($1)
geom($2)
biophys()
}
make(21, 2000) // appropriate down to 25um internode length
Code: Select all
load_file("nrngui.hoc")
create node[1], myelin[1], demyel[1]
objref nodes, myelins, demyels
// topol(nnode) connects an alternating sequence of node/myelin pairs.
proc topol() {local i
nnode = $1
create node[2*nnode+1], myelin[nnode], demyel[nnode]
nodes = new SectionList()
myelins = new SectionList()
demyels = new SectionList()
forsec "nodes" nodes.append
forsec "myelin" myelins.append
forsec "demyel" demyels.append
access node[0]
for i=0, 9 {
connect myelin[i](0), node[i](1)
connect node[i+1](0), myelin[i](1)
}
for i=10, 19 {
connect demyel[i-10](0), node[i](1)
connect node[i+1](0), demyel[i-10](1)
}
forsec myelins { nseg = 10 }
forsec demyels { nseg = 10 }
}
proc geom() {
forsec nodes { // area = 100 um2
L = 3.183
diam = 10
}
forsec myelins {
L = $1
diam = 10
}
forsec demyels{
L = $1
diam = 10
}
}
proc biophys() {local fac
// ohm/cm must be converted to ohm-cm by multiplying by
// cross sectional area
fac = PI*diam^2/4 * 1e-8
forall {
Ra = 100
}
// paper relative to rest=0 but following values relative to -65
forsec nodes {
insert hh
gnabar_hh = 1.2
gkbar_hh = .36
gl_hh = .003
ena = 115 - 65
ek = -12 - 65
cm = 1 // uF/cm2
}
forsec myelins {
insert pas
e_pas = -65
g_pas = 1.5e-6 // S/cm2
cm = 0.005 // uF/cm2
}
forsec demyels {
insert pas
e_pas = -65
g_pas = 1.5e-6 // S/cm2
cm = 0.005 // uF/cm2
}
celsius = 18.5
}
proc make() {
topol($1)
geom($2)
biophys()
}
make(10, 2000) // appropriate down to 25um internode length
From my understanding, with the current parameters set in the second code, I should get the same results when I graph both codes on the space plot because the first code is one loop, and for the second code I have broken that same one loop into two loops. I hae a nice continuous action potentil for the first code. However, when I graph the second code on the space plot I get a graph that looks like the stimulis has died out in the first myelin compartment, and that also, after I set a much greater current in the IClamp than for the first model. I can't seem to figure out the problem.
I suspect the problem to be here somewhere but I cant pinpoint it:
Code: Select all
proc topol() {local i
nnode = $1
create node[2*nnode+1], myelin[nnode], demyel[nnode]
nodes = new SectionList()
myelins = new SectionList()
demyels = new SectionList()
forsec "nodes" nodes.append
forsec "myelin" myelins.append
forsec "demyel" demyels.append
access node[0]
Do you think maybe I should be viewing the results of my code with a different kind of graph? By the end, what i think should happend is that when I change the capacitance of demyelin section, I should see a solid action potential through half of the axon modeled and see failure for the second half.
Thanks for all your help!