XPP model

This model was converted from XPP ode format to SBML using sbmlutils-0.1.5a6.

###############################################
# simulation code for Fig. 7;                 #
# with "chi=0.2" also Fig. 8b can be produced #
########################################################
# t:       time                             in [msec]  #
# v:       membrane potential               in [mV]    #
# n,h:     gating variables                 in [1]     #
# n_ki:    amount of potassium in the ICS   in [fmol]  #
# n_cli:   amount of chloride in the ICS    in [fmol]  #
# dnk:     amount of potassium that is                 #
#          exchanged with glia (negative               #
#          values when potassium goes into             #
#          glia cell)                       in [fmol]  #
# vli,vlg: ICS and glia volume              in [um^3]  #
########################################################

##################################################
# rate equations used by solver                  #
# factor 1000. converts from [x/msec] to [x/sec] #
##################################################
v'     = 1000. * V_DOT
n'     = 1000. * N_DOT
h'     = 1000. * H_DOT
n_ki'  = 1000. * N_KI_DOT
n_cli' = 1000. * N_CLI_DOT
dnk'   = 1000. * DNK_DOT
vli'   = 1000. * VLI_DOT
vlg'   = 1000. * VLG_DOT

############################################
# initial conditions: normal resting state #
############################################
init v=-67.
init n=0.070
init h=0.978
init n_ki=277.7
init n_cli=21.7
init dnk=0
init vli=2160.
init vlg=2160.

###################################################################
# by the parameter delta we set the duration of pump interruption #
# and interruption of glial ion regulation in [sec];              #
# f_pmp/gl: pump/glia factor in [1]                               #
###################################################################
par delta=20

f_pmp = (heav(50-t) + heav(t-50-delta))
f_gl  = (heav(50-t) + heav(t-50-delta))

################################################################################
# chi sets the fraction of chloride cotransport with glial potassium buffering #
################################################################################
par chi=0.8

########################################
# Hodgkin-Huxley like gating functions #
# adiabatic value for "M"              #
########################################
AN  = 0.01 * (v + 34.0) / (1.0 - exp(-0.1 * (v + 34.0))) 
BN  = 0.125 * exp(-(v + 44.0) / 80.0)
AM  = 0.1 * (v + 30.0) / (1.0 - exp(-0.1 * (v + 30.0))) 
BM  = 4.0 * exp(-(v + 55.0) / 18.0) 
AH  = 0.07 * exp(-(v + 44.0) / 20)
BH  = 1.0 / (1.0 + exp(-0.1 * (v + 14.0)))
M   = AM / (AM + BM)

#####################################################################
# - resting state ion and impermeant particle amounts in [fmol]     #
#   in the ICS (...i0) and the ECS (...e0)                          #
# - "k,na,cl,imp" means potassium, sodium, chloride and impermeant  #
#####################################################################
n_ki0  = 277.7
n_ke0  = 2.8
n_nai0 = 54.6
n_nae0 = 91.3
n_cli0 = 21.7
n_cle0 = 89.8
n_impi = 318.
n_impe = 40.

############################################################################
# electroneutrality (first line) and mass conservation (second to fourth)  #
# conditions to compute ion amounts other than intracellular potassium and #
# chloride                                                                 #
############################################################################
n_nai = n_nai0 + n_ki0  - n_ki - n_cli0 + n_cli
dnna  =-dnk * (1-chi)
dncl  = dnk * chi
n_nae = n_nae0 + n_nai0 - n_nai + dnna
n_ke  = n_ke0  + n_ki0  - n_ki  + dnk
n_cle = n_cle0 + n_cli0 - n_cli + dncl

##################################################################################
# ECS volume "vle" in [um^3]:                                                    #
# "vle_osm" is the value which follows from the other volumes and from           #
# conservation of the initial total volume "vl_tot0" - a value based only on     #
# osmosis. "vle" equals this value as long as "vle_osm" is not too small. For    #
# very small values of "vle_osm" the below function ensures that "vle > vle_osm" #
# note: the equation for "vle" can be converted to Eq. (49) in the manuscript by #
#       substituting "vle_osm" with "vl_tot0*n_e/n_tot"                          # 
##################################################################################
# n_i/e/g/tot: amount of particles in ICS/ECS/glia/whole system #
# vl_tot0: initial total volume                                 #
#################################################################
n_i     = n_nai + n_ki + n_cli + n_impi
n_e     = n_nae + n_ke + n_cle + n_impe
n_g     = (n_ki0 + n_nai0 + n_cli0 + n_impi) - (dnk + dnna + dncl)
n_tot   = n_i + n_e + n_g
vl_tot0 = 5040.
vle_osm = vl_tot0 - vli - vlg

p1  = 0.2
p2  = 5
p3  = 0.93
p4  = 0.2
p5  = 0.21
p6  =-0.095
vle = 1000. * ((p3 * (vle_osm/1000.-p6) - p4) / (1 + exp((p1-(vle_osm/1000.-p6)) * p2)) + p5)

vli_inf = n_i * vle / n_e
vlg_inf = n_g * vle / n_e

#################################################
# equilibrium volume "vli/g_inf" for glia and   #
# neuron based on osmotic balance of these      #
# compartments with the ECS                     # 
#################################################


########################################
# ion concentrations in [mM]=[mMol/l]  #
########################################
nai = n_nai / vli * 1000.
nae = n_nae / vle * 1000.
ki  = n_ki  / vli * 1000.
ke  = n_ke  / vle * 1000.
cli = n_cli / vli * 1000.
cle = n_cle / vle * 1000.

#####################
# Nernst potentials #
#####################
EK  = 26.64 * log(ke  / ki)
ENA = 26.64 * log(nae / nai)
ECL =-26.64 * log(cle / cli)

##############################################################################
# - different leak and gated currents             "IION_l/g"   in [umA/cm^2] #
# - leak and gated conductances for each channel  "gion_l/g"   in [mS/cm^2]  #
# - Na/K-exchange pump current "IP" with maximal turnover rate "max_p"       #
##############################################################################
gna_l  = 0.0175
gna_g  = 100.
gk_l   = 0.05
gk_g   = 40.
gcl_l  = 0.05
max_p  = 6.8

INA_l = gna_l            * (v - ENA)
INA_g = gna_g * M**3 * h * (v - ENA)
IK_l  = gk_l             * (v - EK)
IK_g  = gk_g * n**4      * (v - EK)
ICL_l = gcl_l            * (v - ECL)
IP    = max_p / (1.0 + exp((25 - nai)/3.)) / (1. + exp(5.5 - ke)) * f_pmp

#####################################
# full sodium and potassium current #
#####################################
INA = INA_l + INA_g + 3. * IP
IK  = IK_l  + IK_g  - 2. * IP

###################
# glial buffering #
###################
k1   = 1.75e-3
k2   = 6.2e-4
J_gl = (k2 - k1 / (1.0 + exp((5.5-ke)/2.5))) * f_gl

#############################
# list of all changes rates #
#####################################################################
# c: membrane capacitance                   in [uF/cm^2]            #
# conv: conversion from currents to fluxes  in [fmol/msec*cm^2/uA]  #
# phi: gating timescale parameter           in [1/msec]             #
# t_vl: timescale of volume dynamics        in [msec]               #
#####################################################################
c       = 1
conv    = 9.55589e-05
phi     = 3
t_vl    = 250

V_DOT     = -1. / c * (INA + IK + ICL_l)
N_DOT     =  phi * (AN * (1 - n) - BN * n)
H_DOT     =  phi * (AH * (1 - h) - BH * h)
N_KI_DOT  = -CONV * IK
N_CLI_DOT =  CONV * ICL_l
DNK_DOT   =  J_gl
VLI_DOT   =  1. / t_vl * (vli_inf - vli)
VLG_DOT   =  1. / t_vl * (vlg_inf - vlg)

####################################
# auxiliary variables for plotting #
####################################
aux _ki	 = ki
aux _ke	 = ke
aux _nai = nai
aux _nae = nae
aux _cli = cli
aux _cle = cle
aux _EK	 = EK
aux _ENA = ENA
aux _ECL = ECL

vli0         =  2160.
vlg0         =  2160.
vle0         =  vl_tot0 - vli0 - vlg0
aux vli_line =  vli         
aux vle_line = (vli+vle)    
aux vlg_line = (vli+vle+vlg)
aux dvli     = (vli - vli0) / vli0 * 100
aux dvle     = (vle - vle0) / vle0 * 100
aux dvlg     = (vlg - vlg0) / vlg0 * 100

############
# numerics #
############
@ meth=cvode
@ dt=1e-4
@ maxstor=10000000, bounds=10000000
@ total=500
@ bell=0

#############################################
# plot options corresponding to Fig. 7a/b/c #
#############################################
@ xhi=500
@ nplot=4, yp1=v,  yp2=_EK, yp3=_ENA, yp4=_ECL, ylo=-150, yhi=160
#@ nplot=3, yp1=vli_line, yp2=vle_line, yp3=vlg_line, ylo=0, yhi=6000
#@ nplot=3, yp1=dvli, yp2=dvle, yp3=dvlg,  ylo=-90, yhi=50

done
This file has been produced by sbmlutils.

Terms of use

Copyright © 2017 Matthias Koenig

Redistribution and use of any part of this model, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of this SBML file must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in a different form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
This model is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Model :

id
name
time
substance
extent
volume
area
length
Access SBML model  L3V1

FunctionDefinitions [4] name math sbo cvterm
max minimum x y x x y y
min maximum x y x x y y
heav heavyside x 0 x 0 0.5 x 0 1 x 0 0
mod modulo x y x y x y x 0 y 0 x y x y

Parameters [105] name constant value unit derived unit sbo cvterm
v v = -67. -67.0 None
n n = 0.070 0.07 None
h h = 0.978 0.978 None
n_ki n_ki = 277.7 277.7 None
n_cli n_cli = 21.7 21.7 None
dnk dnk = 0 0.0 None
vli vli = 2160. 2160.0 None
vlg vlg = 2160. 2160.0 None
delta delta = 20 20.0 None
chi chi = 0.8 0.8 None
f_pmp 0.0 dimensionless None
f_gl 0.0 dimensionless None
an 0.0 dimensionless None
bn 0.0 dimensionless None
am 0.0 dimensionless None
bm 0.0 dimensionless None
ah 0.0 dimensionless None
bh 0.0 dimensionless None
m 0.0 dimensionless None
n_ki0 0.0 dimensionless None
n_ke0 0.0 dimensionless None
n_nai0 0.0 dimensionless None
n_nae0 0.0 dimensionless None
n_cli0 0.0 dimensionless None
n_cle0 0.0 dimensionless None
n_impi 0.0 dimensionless None
n_impe 0.0 dimensionless None
n_nai 0.0 dimensionless None
dnna 0.0 dimensionless None
dncl 0.0 dimensionless None
n_nae 0.0 dimensionless None
n_ke 0.0 dimensionless None
n_cle 0.0 dimensionless None
n_i 0.0 dimensionless None
n_e 0.0 dimensionless None
n_g 0.0 dimensionless None
n_tot 0.0 dimensionless None
vl_tot0 0.0 dimensionless None
vle_osm 0.0 dimensionless None
p1 0.0 dimensionless None
p2 0.0 dimensionless None
p3 0.0 dimensionless None
p4 0.0 dimensionless None
p5 0.0 dimensionless None
p6 0.0 dimensionless None
vle 0.0 dimensionless None
vli_inf 0.0 dimensionless None
vlg_inf 0.0 dimensionless None
nai 0.0 dimensionless None
nae 0.0 dimensionless None
ki 0.0 dimensionless None
ke 0.0 dimensionless None
cli 0.0 dimensionless None
cle 0.0 dimensionless None
ek 0.0 dimensionless None
ena 0.0 dimensionless None
ecl 0.0 dimensionless None
gna_l 0.0 dimensionless None
gna_g 0.0 dimensionless None
gk_l 0.0 dimensionless None
gk_g 0.0 dimensionless None
gcl_l 0.0 dimensionless None
max_p 0.0 dimensionless None
ina_l 0.0 dimensionless None
ina_g 0.0 dimensionless None
ik_l 0.0 dimensionless None
ik_g 0.0 dimensionless None
icl_l 0.0 dimensionless None
ip 0.0 dimensionless None
ina 0.0 dimensionless None
ik 0.0 dimensionless None
k1 0.0 dimensionless None
k2 0.0 dimensionless None
j_gl 0.0 dimensionless None
c 0.0 dimensionless None
conv 0.0 dimensionless None
phi 0.0 dimensionless None
t_vl 0.0 dimensionless None
v_dot 0.0 dimensionless None
n_dot 0.0 dimensionless None
h_dot 0.0 dimensionless None
n_ki_dot 0.0 dimensionless None
n_cli_dot 0.0 dimensionless None
dnk_dot 0.0 dimensionless None
vli_dot 0.0 dimensionless None
vlg_dot 0.0 dimensionless None
_ki 0.0 dimensionless None
_ke 0.0 dimensionless None
_nai 0.0 dimensionless None
_nae 0.0 dimensionless None
_cli 0.0 dimensionless None
_cle 0.0 dimensionless None
_ek 0.0 dimensionless None
_ena 0.0 dimensionless None
_ecl 0.0 dimensionless None
vli0 0.0 dimensionless None
vlg0 0.0 dimensionless None
vle0 0.0 dimensionless None
vli_line 0.0 dimensionless None
vle_line 0.0 dimensionless None
vlg_line 0.0 dimensionless None
dvli 0.0 dimensionless None
dvle 0.0 dimensionless None
dvlg 0.0 dimensionless None
t model time 0.0 dimensionless None

Rules [103]   assignment name derived units sbo cvterm
d v/dt = 1000 v_dot None
d n/dt = 1000 n_dot None
d h/dt = 1000 h_dot None
d n_ki/dt = 1000 n_ki_dot None
d n_cli/dt = 1000 n_cli_dot None
d dnk/dt = 1000 dnk_dot None
d vli/dt = 1000 vli_dot None
d vlg/dt = 1000 vlg_dot None
f_pmp = heav 50 t heav t 50 delta None
f_gl = heav 50 t heav t 50 delta None
an = 0.01 v 34 1 0.1 v 34 None
bn = 0.125 v 44 80 None
am = 0.1 v 30 1 0.1 v 30 None
bm = 4 v 55 18 None
ah = 0.07 v 44 20 None
bh = 1 1 0.1 v 14 None
m = am am bm None
n_ki0 = 277.7 None
n_ke0 = 2.8 None
n_nai0 = 54.6 None
n_nae0 = 91.3 None
n_cli0 = 21.7 None
n_cle0 = 89.8 None
n_impi = 318 None
n_impe = 40 None
n_nai = n_nai0 n_ki0 n_ki n_cli0 n_cli None
dnna = dnk 1 chi None
dncl = dnk chi None
n_nae = n_nae0 n_nai0 n_nai dnna None
n_ke = n_ke0 n_ki0 n_ki dnk None
n_cle = n_cle0 n_cli0 n_cli dncl None
n_i = n_nai n_ki n_cli n_impi None
n_e = n_nae n_ke n_cle n_impe None
n_g = n_ki0 n_nai0 n_cli0 n_impi dnk dnna dncl None
n_tot = n_i n_e n_g None
vl_tot0 = 5040 None
vle_osm = vl_tot0 vli vlg None
p1 = 0.2 None
p2 = 5 None
p3 = 0.93 None
p4 = 0.2 None
p5 = 0.21 None
p6 = 0.095 None
vle = 1000 p3 vle_osm 1000 p6 p4 1 p1 vle_osm 1000 p6 p2 p5 None
vli_inf = n_i vle n_e None
vlg_inf = n_g vle n_e None
nai = n_nai vli 1000 None
nae = n_nae vle 1000 None
ki = n_ki vli 1000 None
ke = n_ke vle 1000 None
cli = n_cli vli 1000 None
cle = n_cle vle 1000 None
ek = 26.64 10 ke ki None
ena = 26.64 10 nae nai None
ecl = 26.64 10 cle cli None
gna_l = 0.0175 None
gna_g = 100 None
gk_l = 0.05 None
gk_g = 40 None
gcl_l = 0.05 None
max_p = 6.8 None
ina_l = gna_l v ena None
ina_g = gna_g m 3 h v ena None
ik_l = gk_l v ek None
ik_g = gk_g n 4 v ek None
icl_l = gcl_l v ecl None
ip = max_p 1 25 nai 3 1 5.5 ke f_pmp None
ina = ina_l ina_g 3 ip None
ik = ik_l ik_g 2 ip None
k1 = 1.75 -3 None
k2 = 6.2 -4 None
j_gl = k2 k1 1 5.5 ke 2.5 f_gl None
c = 1 None
conv = 9.55589 -5 None
phi = 3 None
t_vl = 250 None
v_dot = 1 c ina ik icl_l None
n_dot = phi an 1 n bn n None
h_dot = phi ah 1 h bh h None
n_ki_dot = conv ik None
n_cli_dot = conv icl_l None
dnk_dot = j_gl None
vli_dot = 1 t_vl vli_inf vli None
vlg_dot = 1 t_vl vlg_inf vlg None
_ki = ki None
_ke = ke None
_nai = nai None
_nae = nae None
_cli = cli None
_cle = cle None
_ek = ek None
_ena = ena None
_ecl = ecl None
vli0 = 2160 None
vlg0 = 2160 None
vle0 = vl_tot0 vli0 vlg0 None
vli_line = vli None
vle_line = vli vle None
vlg_line = vli vle vlg None
dvli = vli vli0 vli0 100 None
dvle = vle vle0 vle0 100 None
dvlg = vlg vlg0 vlg0 100 None
t = time None