pump mechanism

Anything that doesn't fit elsewhere.

pump mechanism

Postby menica » Tue Apr 25, 2017 2:30 pm

Hi,
generally, in the Hodgkin-Huxley style model, the Na/K ion-pump is not explicitly modeled, instead, it is assumed that the passive conductance restores the resting membrane potential.
I want to model the explicit effect that the Na/K pump has on the Na and K concentrations and then on membrane potential.
I considered a single compartment. I inserted the following HH mechanism which contains the voltage-gated K and Na channel mechanisms, the Na/K pump and ion accumulation mechanisms:
Code: Select all
TITLE HH channels
:
: Fast Na+ and K+ currents responsible for action potentials
: Iterative equations
:
: Equations modified by Traub, for Hippocampal Pyramidal cells, in:
: Traub & Miles, Neuronal Networks of the Hippocampus, Cambridge, 1991
:
: range variable vtraub adjust threshold
:
: Written by Alain Destexhe, Salk Institute, Aug 1992
:
: Modifications by Arthur Houweling for use in MyFirstNEURON
: Modifications by Paulo Aguiar: vh changed from 5 to 6 - NOT ANYMORE: vh=5 as originally set

INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

NEURON {
   SUFFIX HH2
   USEION na READ ena WRITE ina
   USEION k READ ek WRITE ik
   RANGE gnabar, gkbar, vtraub
   RANGE m_inf, h_inf, n_inf
   RANGE tau_m, tau_h, tau_n
   RANGE m_exp, h_exp, n_exp
   RANGE ik, ina
}


UNITS {
   (mA) = (milliamp)
   (mV) = (millivolt)
}

PARAMETER {
   gnabar   = .1    (mho/cm2)
   gkbar   = .06    (mho/cm2)

   ena      (mV)
   ek      (mV)
   celsius      (degC)
   dt              (ms)
   v               (mV)
   vtraub   = -55   (mV)   : adjusts threshold
}

STATE {
   m h n
}

ASSIGNED {
   ina   (mA/cm2)
   ik   (mA/cm2)
   il   (mA/cm2)
   m_inf
   h_inf
   n_inf
   tau_m
   tau_h
   tau_n
   m_exp
   h_exp
   n_exp
   tadj
}


BREAKPOINT {
   SOLVE states
   ina = gnabar * m*m*m*h * (v - ena)
   ik  = gkbar * n*n*n*n * (v - ek)
}


:DERIVATIVE states {   : use this for exact Hodgkin-Huxley equations
:   evaluate_fct(v)
:   m' = (m_inf - m) / tau_m
:   h' = (h_inf - h) / tau_h
:   n' = (n_inf - n) / tau_n
:}

PROCEDURE states() {   : this discretized form is more stable
   evaluate_fct(v)
   m = m + m_exp * (m_inf - m)
   h = h + h_exp * (h_inf - h)
   n = n + n_exp * (n_inf - n)
   VERBATIM
   return 0;
   ENDVERBATIM
}

UNITSOFF
INITIAL {
:
:  Q10 was assumed to be 3 for both currents
:
   tadj = 3.0 ^ ((celsius-36)/ 10 )
   evaluate_fct(v)
   m= m_inf
   h= h_inf
   n= n_inf
}

PROCEDURE evaluate_fct(v(mV)) { LOCAL a,b,v2,vh

   v2 = v - vtraub : convert to traub convention
   vh = 5
   
   a = 0.32 * (13-v2) / ( exp((13-v2)/4) - 1)
   b = 0.28 * (v2-40) / ( exp((v2-40)/5) - 1)
   tau_m = 1 / (a + b) / tadj
   m_inf = a / (a + b)

   :a = 0.128 * exp((17-v2)/18)
   :b = 4 / ( 1 + exp((40-v2)/5) )
   :tau_h = 1 / (a + b) / tadj
   :h_inf = a / (a + b)
   
   a = 0.128 * exp((17-v2-vh)/18)
   b = 4 / ( 1 + exp((40-v2-vh)/5) )
   tau_h = 1 / (a + b) / tadj
   h_inf = a / (a + b)   
   
   
   a = 0.032 * (15-v2) / ( exp((15-v2)/5) - 1)
   b = 0.5 * exp((10-v2)/40)
   tau_n = 1 / (a + b) / tadj
   n_inf = a / (a + b)

   m_exp = 1 - exp(-dt/tau_m)
   h_exp = 1 - exp(-dt/tau_h)
   n_exp = 1 - exp(-dt/tau_n)
}

UNITSON

Code: Select all
TITLE sodium potassium pump
:  from Lindblad et al Am J Physiol 1996 275:H1666

NEURON {
   SUFFIX nkpump
   USEION k READ ko, ki WRITE ik
   USEION na READ nao, nai WRITE ina
   RANGE ik, ina , INaKmax, ink, Kmko, Kmnai,inapump
   GLOBAL dummy : prevent vectorization for use with CVODE
}

UNITS {
   (mA) = (milliamp)
   (mV) = (millivolt)
   
}

PARAMETER {
   INaKmax = 2.18660e-3       (mA/cm2) <0,1e6>
   Kmnai =    10          (mM)    <0,1e6>
   Kmko =     1.5         (mM)    <0,1e6>
}

ASSIGNED {
   celsius (degC)
   v (mV)
   ik (mA/cm2)
   ina (mA/cm2)
   ko (mM)
        ki (mM)
   nao (mM)
   nai (mM)
   ink (mA/cm2)
   dummy
}

BREAKPOINT {
      
   ink= INaKmax/((1 + (Kmnai/nai)^1.5)*(1 + Kmko/ko))
        ina = 3*ink
   ik = -2*ink
}


Code: Select all
NEURON {
  SUFFIX nacumst
  USEION na READ ina WRITE nai
  RANGE tau, C0
}

UNITS {
  (mA) = (milliamp)
  (mol) = (1)
  (molar) = (mol/liter)
  (mM) = (millimolar)
  (uM) = (micromolar)
  (um) = (micrometer)
  FARADAY = (faraday) (coulombs)
}

PARAMETER {
  tau = 5 (ms) : AB soma; 300 ms for PD soma
  C0 = 10 (mM)
}

ASSIGNED {
  ina (mA/cm2)
  diam (um)
}

STATE {
  nai (mM)
}

INITIAL {
  nai = C0
}

BREAKPOINT {
  SOLVE states METHOD cnexp
}

DERIVATIVE states {
  nai' = -(1e4)*2*ina/(FARADAY*diam) + (C0 - nai)/tau
}


I would like to change the pump mechanism in order to obtain this: when I insert an IClamp stimulus with a certain duration and amplitude able to generate a spike, after a certain time v returns back to the resting membrane potential because the pump has been able to pump ions against the concentration gradients. Basically, if the voltage-gated channels moved a certain amount of Na (k) ions inside (outside) the cell (quickly), the pump in order to restore the equilibrium should pump in the opposite direction the same amount of ions on a different time scale (slowly). I would like to correctly count this amont of ions.
At the moment, of course, I have that the v is going below the resting potential because the currents generated by the pump is not balancing the current genereted by the the channels.
Here figures for the Na:
Image
The ink is dependent on the change of ionic concentration (nai and ko). The change of ionic concentrations is own to the activated currents.
I think would be useful to keep track of the numbers of ions are moving in or out the cell, but how?
I think I should modify something in
ink= INaKmax/((1 + (Kmnai/nai)^1.5)*(1 + Kmko/ko))
but, in which direction to go?
Or I can use persistent Na and K channels inseatd?
Best
Menica
menica
 
Posts: 41
Joined: Wed Sep 02, 2015 11:02 am

Re: pump mechanism

Postby menica » Mon May 08, 2017 6:10 am

Hi, I tried to step back and consider a single compartment where I inserted a Na leak current, pump Na, and Na accumulation mechanisms:

Na leak:
Code: Select all
NEURON {
   SUFFIX ionleak
   USEION na READ ena,nai WRITE ina
   RANGE  gna,  ina
}

UNITS {
   (mV) = (millivolt)
   (mA) = (milliamp)
   (S) = (siemens)
        F = (faraday) (coulomb)
        R = (mole k) (mV-coulomb/degC)
}

PARAMETER {
   gna = 0 (S/cm2)
celsius = 35  (degC)
nao = 145 (mM)
nai = 10   (mM)
}

ASSIGNED {
   v (mV)
   ena (mV)
   ina (mA/cm2)
}

BREAKPOINT {
ena = R*(celsius+273.15)/F*log(nao/nai)
   ina = gna*(v - ena)
}


Na pump:
Code: Select all
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
   RANGE  inapump,ipumpmax,n,km, ina, Rna
}

PARAMETER {
        dt (ms)
        nai   (mM)
        ipumpmax  = 0.04   (mA/cm2)
        km = 10.0        (mM)
        n=1.5
        nainit = 10  (mM)
        celsius = 35  (degC)
}

ASSIGNED {
           ina      (mA/cm2)
        inapump (mA/cm2)
}

BREAKPOINT {
        inapump = ipumpmax*(1/(1 + pow(km/nai,n)))
   ina = inapump
}


Na accumulation:
Code: Select all
NEURON {
  SUFFIX nacumst
  USEION na READ ina WRITE nai
  RANGE tau, C0
}

UNITS {
  (mA) = (milliamp)
  (mol) = (1)
  (molar) = (mol/liter)
  (mM) = (millimolar)
  (uM) = (micromolar)
  (um) = (micrometer)
  FARADAY = (faraday) (coulombs)
}

PARAMETER {
  tau = 5 (ms)
  C0 = 10 (mM)
}

ASSIGNED {
  ina (mA/cm2)
  diam (um)
}

STATE {
  nai (mM)
}

INITIAL {
  nai = C0
}

BREAKPOINT {
  SOLVE states METHOD cnexp
}

DERIVATIVE states {
  nai' = -(1e4)*2*ina/(FARADAY*diam) + (C0 - nai)/tau
}


I stimulated the system with a IClamp impulse.
I expected to obtain an ina net current which is the sum of the ina_ionleak +ina_pump, and that is.
But I expect also to have the same amount of na ions moved in by the leak current be equal to the amount of na ions pumped out by the pump...but this does not happen.
What should I change in my mechanisms?
menica
 
Posts: 41
Joined: Wed Sep 02, 2015 11:02 am


Return to Other questions

Who is online

Users browsing this forum: Bing [Bot] and 0 guests