Sodium and Potassium current
-
- Posts: 49
- Joined: Thu Jun 07, 2018 10:57 am
Sodium and Potassium current
I am working on model of soam using three different voltage gated channels Na,K and Ca, three different leak channels and three different channels of pump for the same ion. I am trying to use theses channels to get a resting value of concentrations after injecting it with certain current u=in the middle of the soma. without using injected current, got 0.049 mA/cm2 for sodium current and -0.035 mA/cm2 at resting potential is that right value or it should be zero at resting situation. Anyone can help me please.
-
- Site Admin
- Posts: 6299
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: Sodium and Potassium current
Usually models have only one "leak" current, and that one current generates a "nonspecific current" i.e. a current that is not attributed to any particular ionic species. Are your leak currents ion-specific?
The hoc variable ina reports the net sodium current that passes through the membrane of a compartment (segment)--that is, the sum of all sodium currents generated by mechanisms that WRITE ina. Usually those mechanisms are ion channels, but ion exchangers or pumps that generate a transmembrane sodium flux will also WRITE ina. If there is no net flux of na across the membrane, hoc's ina should equal 0.without using injected current, got 0.049 mA/cm2 for sodium current and -0.035 mA/cm2 at resting potential is that right value or it should be zero at resting situation.
However, there is an important exception. Some pump mechanisms do not WRITE ina; instead they READ ina and WRITE nai. Those mechanisms contain a DERIVATIVE block that contains a formula that looks something like
nai' = -ina * 4/(diam*FARADAY) * (1e4) + (nai0 - nai)/tau
where diam is segment diameter and FARADAY is Faraday's constant.
This is the mathematical description of a sodium pump that is nonelectrogenic (generates no net charge movement across the membrane) and pumps at a rate that is proportional to the difference between nai and the parameter nai0. The important thing to note about this kind of pump is that it affects nai directly--that is, without generating a net sodium current. A model that uses such a pump can be at rest, with nai perfectly constant, but at the same time ina will be nonzero.
-
- Posts: 49
- Joined: Thu Jun 07, 2018 10:57 am
Re: Sodium and Potassium current
Thank you for replay. The problem is that after injecting current inside soma, it should all concentrations (Na,Kand ca) get back to them resting value, but I got the sodium concentration lower than the resting value (initial 10 mM while Igot 5mM),and for potassium concentration i got higher than the resting value (initial value 140 mM while I got 144mM). I do not know is that so because I used wrong parameters or wrong expression or may be it is correct get theses results? thank you in advance.
-
- Site Admin
- Posts: 6299
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: Sodium and Potassium current
Models that include ion transport and accumulation can be difficult to stabilize. I can only suggest that you examine published models to see how their authors dealt with problems, and/or find someone at or near your academic institution who can collaborate with you on your own modeling project.
-
- Posts: 49
- Joined: Thu Jun 07, 2018 10:57 am
Re: Sodium and Potassium current
Than again. no one near me can help me, but can i post my code and then maybe you can guide me to get the solution?
-
- Posts: 49
- Joined: Thu Jun 07, 2018 10:57 am
Re: Sodium and Potassium current
Dear Ted,
I have problem with my result for potassium,so it goes down the resting value while potential and sodium go to them resting value.
this is pimp.mod
TITLE PUMP
UNITS {
(molar) = (1/liter)
(pA) = (picoamp)
(mV) = (millivolt)
(uS) = (micromho)
(mA) = (milliamp)
(mM) = (millimolar)
}
INDEPENDENT {v FROM -100 TO 50 WITH 50 (mV)}
NEURON {
SUFFIX pump
USEION na READ nai WRITE ina
USEION k READ ki WRITE ik
RANGE inapump,ipumpmax,n,km
}
PARAMETER {
dt (ms)
nai (mM)
ki (mM)
ipumpmax = 0.04(mA/cm2)
km = 10.0 (mM)
n=1.5
nainit = 4 (mM)
celsius = 35 (degC)
}
ASSIGNED {
ina (mA/cm2)
ik (mA/cm2)
inapump (mA/cm2)
}
BREAKPOINT {
inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:if(nai <= 10 ){
:inapump = 0
:}else{
:inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:}
if (inapump <=0) {inapump=0 }
ina = 3.0*inapump
:inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:if(ki >= 140 ){
:inapump = 0
:}else{
:inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:}
ik = -2.0*inapump
}
COMMENT
INITIAL{
nai = nainit}
ENDCOMMENT
this is kdifl.mod
COMMENT
Longitudinal diffusion of sodium (no buffering)
(equivalent modified euler with standard method and
equivalent to diagonalized linear solver with CVODE )
ENDCOMMENT
NEURON {
SUFFIX kdifl
USEION k READ ik,ki WRITE ki
RANGE D
}
UNITS {
(mM) = (milli/liter)
(um) = (micron)
FARADAY = (faraday) (coulomb)
PI = (pi) (1)
}
PARAMETER {
D = 1.96 (um2/ms)
}
ASSIGNED {
ik (milliamp/cm2)
diam (um)
}
STATE {
ki (mM)
}
BREAKPOINT {
SOLVE conc METHOD sparse
}
KINETIC conc {
COMPARTMENT PI*diam*diam/4 {ki}
LONGITUDINAL_DIFFUSION D*PI*diam*diam/4 {ki}
~ ki << (-ik/(FARADAY)*PI*diam*(1e4))
}
enk.mod
COMMENT
Longitudinal diffusion of sodium (no buffering)
(equivalent modified euler with standard method and
equivalent to diagonalized linear solver with CVODE )
ENDCOMMENT
NEURON {
SUFFIX eke
USEION k READ ki,ko WRITE ek
RANGE F1
}
UNITS {
(mM) = (milli/liter)
(mV)=(millivolt)
}
PARAMETER {
F1=26.71 (mV)
}
ASSIGNED {
ki (milli/liter)
ko (milli/liter)
}
STATE {
ek (mV)
}
BREAKPOINT {
ek=F1*log(ko/ki)
}
So can you help me to solve the problem please.
I have problem with my result for potassium,so it goes down the resting value while potential and sodium go to them resting value.
this is pimp.mod
TITLE PUMP
UNITS {
(molar) = (1/liter)
(pA) = (picoamp)
(mV) = (millivolt)
(uS) = (micromho)
(mA) = (milliamp)
(mM) = (millimolar)
}
INDEPENDENT {v FROM -100 TO 50 WITH 50 (mV)}
NEURON {
SUFFIX pump
USEION na READ nai WRITE ina
USEION k READ ki WRITE ik
RANGE inapump,ipumpmax,n,km
}
PARAMETER {
dt (ms)
nai (mM)
ki (mM)
ipumpmax = 0.04(mA/cm2)
km = 10.0 (mM)
n=1.5
nainit = 4 (mM)
celsius = 35 (degC)
}
ASSIGNED {
ina (mA/cm2)
ik (mA/cm2)
inapump (mA/cm2)
}
BREAKPOINT {
inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:if(nai <= 10 ){
:inapump = 0
:}else{
:inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:}
if (inapump <=0) {inapump=0 }
ina = 3.0*inapump
:inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:if(ki >= 140 ){
:inapump = 0
:}else{
:inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
:}
ik = -2.0*inapump
}
COMMENT
INITIAL{
nai = nainit}
ENDCOMMENT
this is kdifl.mod
COMMENT
Longitudinal diffusion of sodium (no buffering)
(equivalent modified euler with standard method and
equivalent to diagonalized linear solver with CVODE )
ENDCOMMENT
NEURON {
SUFFIX kdifl
USEION k READ ik,ki WRITE ki
RANGE D
}
UNITS {
(mM) = (milli/liter)
(um) = (micron)
FARADAY = (faraday) (coulomb)
PI = (pi) (1)
}
PARAMETER {
D = 1.96 (um2/ms)
}
ASSIGNED {
ik (milliamp/cm2)
diam (um)
}
STATE {
ki (mM)
}
BREAKPOINT {
SOLVE conc METHOD sparse
}
KINETIC conc {
COMPARTMENT PI*diam*diam/4 {ki}
LONGITUDINAL_DIFFUSION D*PI*diam*diam/4 {ki}
~ ki << (-ik/(FARADAY)*PI*diam*(1e4))
}
enk.mod
COMMENT
Longitudinal diffusion of sodium (no buffering)
(equivalent modified euler with standard method and
equivalent to diagonalized linear solver with CVODE )
ENDCOMMENT
NEURON {
SUFFIX eke
USEION k READ ki,ko WRITE ek
RANGE F1
}
UNITS {
(mM) = (milli/liter)
(mV)=(millivolt)
}
PARAMETER {
F1=26.71 (mV)
}
ASSIGNED {
ki (milli/liter)
ko (milli/liter)
}
STATE {
ek (mV)
}
BREAKPOINT {
ek=F1*log(ko/ki)
}
So can you help me to solve the problem please.
-
- Posts: 49
- Joined: Thu Jun 07, 2018 10:57 am
Re: Sodium and Potassium current
Anyone here can help me please?