XPP model
This model was converted from XPP ode format to SBML using sbmlutils-0.1.5a6.
# This ODE file reproduces figure 2 from Rempe, Best, Terman J. Math. Biol. 2010
# Notice that as it is written now the simulation contains noise. If you want
# to reproduce Figure 2 exactly, turn off noise by making gnoise=0 and gnoiserem=0
# To reproduce figure 3, you will need noise and you'll need to modify the code below
# to start at different circadian phases. You'll also probably need MATLAB or some
# other computing language to process the output of the XPP runs.
# The default mode is to plot the wake-active, sleep-active, NREM-active, and
# REM-active populations as in figure 2 panel b. You can also uncomment the
# second-to-last line to see the 2-process behavior.
# Sleep/wake parameters
par eps=3,gamma=5.7,ky=0.01,thetay=0
par epsv=3,gammav=3.77,kv=0.01,thetav=0
par xcirc=-2.1,ghom=5.5
par gsynv=2
par ic0=0,ic1=0
par hmax=1,alphah=18.2,betah=4.2
par gscn=1
par gsyn=5
par const=100
#initialize inp and inpv
par inpbase=3.3,inpvbase=0.45
# ---- REM-NREM stuff ----
par epsr=0.3,gammar=6.2,kr=0.01
par epsn=0.3,gamman=6,kn=0.01
par taur1=1,taur2=2
par taun1=0.5,taun2=1.7
par grem=5,gnrem=0.4
par gevlpo=6.2
par REMscale=11
par inpn=1.9,inpr=1.1
par gA2R=2.5
taur=sinf(xr,kr)*taur2+(1-sinf(xr,kr))*taur1
taun=sinf(xn,kn)*taun2+(1-sinf(xn,kn))*taun1
sinf(v,k)=1/(1+exp(-(v)/k))
#inhibitory currents
inhbr=grem*sn
inhbn=gnrem*sr
ievlpo=gevlpo*xe
iA2R=gA2R*s1
#AMIN-to-REM dynamics
s1'=as1*(1-s1)*sinf(x,0.1)-bs1*s1*(1-sinf(x,0.1))
par as1=2,bs1=0.55
isyn=gsyn*sv
isynv=gsynv*s
iscn=gscn*(xc-xcirc)
par gorx=1
iorx=gorx*iscn*(1-heav(xv))
ihom=ghom*h
tauv=sinf(xv,kv)*tauv2+(1-sinf(xv,kv))*tauv1
tau=sinf(x,ky)*taua2+(1-sinf(x,ky))*taua1
par tauv1=1,tauv2=2
par taua1=1,taua2=2
global 0 t {ic0=gammav-4-inpv}
global 0 t {ic1=gsynv-inpv}
# MonoAminergic group
x'=(3*x-x^3+2-y-isyn+iorx-ihom+inp)*const
y'=eps*(gamma*sinf(x,ky)-y)/tau
s=sinf(x,0.1)
# VLPO group
xv'=(3*xv-xv^3+2-yv-isynv+inpv-iscn+ihom)*const
yv'=epsv*(gammav*sinf(xv,kv)-yv)/tauv
sv=sinf(xv,0.1)
#eVLPO
par ke=0.25,a=2,b=1,c=1.82,kxv=1,kx=0.2,cv=-0.3
xe'=-xe+(c-a*sinf(xv+cv,kxv)-b*sinf(x,kx))
global 0 t {xe=(c-a*sinf(xv,kxv)-b*sinf(x,kx))}
#REM-active population
par rconst=2
xr'=rconst*REMscale*(3*xr-xr^3+3-yr-inhbr+inpr-iA2R+inoiserem)
yr'=REMscale*(epsr*(gammar*sinf(xr,kr)-yr)/taur)
sr=sinf(xr,krn)
par krn=1
#NREM-active population
xn'=rconst*REMscale*(3*xn-xn^3+3-yn-inhbn+inpn-ievlpo+inoisenrem)
yn'=REMscale*(epsn*(gamman*sinf(xn,kn)-yn)/taun)
sn=heav(xn)
#sn=sinf(xn,0.1) #either one works
#circadian curve
tc=t-2.5
xc=(0.97*sin((pi/12)*tc)+0.22*sin(2*(pi/12)*tc)+0.07*sin(3*(pi/12)*tc)+0.03*sin(4*(pi/12)*tc)+0.001*sin(5*(pi/12)*tc))
#homeostat
h'=(hmax-h)*(sinf(x,kv))/alphah-h*(1-sinf(x,kv))/betah
#initialize homeostat to what it would normally start at after
#a normal night of sleep in normal phase
global 0 t {h=0.0978}
#noise stuff
par a1=20,w1=0.01,gnoise=5,gnoiserem=5
ina'=(-ina+a1*normal(0,1))*w1
inv'=(-inv+a1*normal(0,1))*w1
inn'=(-inn+a1*normal(0,1))*w1
inr'=(-inr+a1*normal(0,1))*w1
inoisea=gnoise*ina
inoisev=gnoise*inv
inoiserem=gnoiserem*inr
inoisenrem=gnoiserem*inn
# add some noise to the otherwise constant inputs
inp=inpbase+inoisea
inpv=inpvbase+inoisev
#initial conditions
init x=2,y=6
init xv=-2,yv=0
init xr=-1,yr=-2
init xn=-3,yn=0
init ina=0
init inv=0
init inn=0
init inr=0
#AUXILIARY VARIABLES
# comment out for faster speed
aux ic=iscn+ic1
aux ica=iscn+ic0
aux ih=ihom
#aux noise=inoisea
# first one plots 2-process stuff, next one plots rem, nrem, aminergic
#@ dt=.001,total=48,meth=euler,xp=t,yp=ih,xlo=0,xhi=48,ylo=-3,yhi=3,nplot=3,yp2=ic,yp3=ica,bound=1000000,maxstor=2000001
@ dt=.001,total=48,meth=euler,xp=t,yp=xn,xlo=0,xhi=48,ylo=-3,yhi=3,nplot=3,yp2=xr,yp3=x,bound=1000000,maxstor=2000001,output=output1.dat
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:
- Redistributions of this SBML file must retain the above copyright notice, this list of conditions and the following disclaimer.
- 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.
Model :
|
|
| type | FunctionDefinitions [5] | name | math | sbo | cvterm |
|---|---|---|---|---|---|
| FunctionDefinition | max
|
minimum | |||
| FunctionDefinition | min
|
maximum | |||
| FunctionDefinition | heav
|
heavyside | |||
| FunctionDefinition | mod
|
modulo | |||
| FunctionDefinition | sinf
|
| type | Parameters [102] | name | constant | value | unit | derived unit | sbo | cvterm |
|---|---|---|---|---|---|---|---|---|
| Parameter | eps
|
eps = 3 | F | 3.0 | None | |||
| Parameter | gamma
|
gamma = 5.7 | F | 5.7 | None | |||
| Parameter | ky
|
ky = 0.01 | F | 0.01 | None | |||
| Parameter | thetay
|
thetay = 0 | F | 0.0 | None | |||
| Parameter | epsv
|
epsv = 3 | F | 3.0 | None | |||
| Parameter | gammav
|
gammav = 3.77 | F | 3.77 | None | |||
| Parameter | kv
|
kv = 0.01 | F | 0.01 | None | |||
| Parameter | thetav
|
thetav = 0 | F | 0.0 | None | |||
| Parameter | xcirc
|
xcirc = -2.1 | F | -2.1 | None | |||
| Parameter | ghom
|
ghom = 5.5 | F | 5.5 | None | |||
| Parameter | gsynv
|
gsynv = 2 | F | 2.0 | None | |||
| Parameter | ic0
|
ic0 = 0 | F | 0.0 | None | |||
| Parameter | ic1
|
ic1 = 0 | F | 0.0 | None | |||
| Parameter | hmax
|
hmax = 1 | F | 1.0 | None | |||
| Parameter | alphah
|
alphah = 18.2 | F | 18.2 | None | |||
| Parameter | betah
|
betah = 4.2 | F | 4.2 | None | |||
| Parameter | gscn
|
gscn = 1 | F | 1.0 | None | |||
| Parameter | gsyn
|
gsyn = 5 | F | 5.0 | None | |||
| Parameter | const
|
const = 100 | F | 100.0 | None | |||
| Parameter | inpbase
|
inpbase = 3.3 | F | 3.3 | None | |||
| Parameter | inpvbase
|
inpvbase = 0.45 | F | 0.45 | None | |||
| Parameter | epsr
|
epsr = 0.3 | F | 0.3 | None | |||
| Parameter | gammar
|
gammar = 6.2 | F | 6.2 | None | |||
| Parameter | kr
|
kr = 0.01 | F | 0.01 | None | |||
| Parameter | epsn
|
epsn = 0.3 | F | 0.3 | None | |||
| Parameter | gamman
|
gamman = 6 | F | 6.0 | None | |||
| Parameter | kn
|
kn = 0.01 | F | 0.01 | None | |||
| Parameter | taur1
|
taur1 = 1 | F | 1.0 | None | |||
| Parameter | taur2
|
taur2 = 2 | F | 2.0 | None | |||
| Parameter | taun1
|
taun1 = 0.5 | F | 0.5 | None | |||
| Parameter | taun2
|
taun2 = 1.7 | F | 1.7 | None | |||
| Parameter | grem
|
grem = 5 | F | 5.0 | None | |||
| Parameter | gnrem
|
gnrem = 0.4 | F | 0.4 | None | |||
| Parameter | gevlpo
|
gevlpo = 6.2 | F | 6.2 | None | |||
| Parameter | remscale
|
remscale = 11 | F | 11.0 | None | |||
| Parameter | inpn
|
inpn = 1.9 | F | 1.9 | None | |||
| Parameter | inpr
|
inpr = 1.1 | F | 1.1 | None | |||
| Parameter | ga2r
|
ga2r = 2.5 | F | 2.5 | None | |||
| Parameter | as1
|
as1 = 2 | F | 2.0 | None | |||
| Parameter | bs1
|
bs1 = 0.55 | F | 0.55 | None | |||
| Parameter | gorx
|
gorx = 1 | F | 1.0 | None | |||
| Parameter | tauv1
|
tauv1 = 1 | F | 1.0 | None | |||
| Parameter | tauv2
|
tauv2 = 2 | F | 2.0 | None | |||
| Parameter | taua1
|
taua1 = 1 | F | 1.0 | None | |||
| Parameter | taua2
|
taua2 = 2 | F | 2.0 | None | |||
| Parameter | ke
|
ke = 0.25 | F | 0.25 | None | |||
| Parameter | a
|
a = 2 | F | 2.0 | None | |||
| Parameter | b
|
b = 1 | F | 1.0 | None | |||
| Parameter | c
|
c = 1.82 | F | 1.82 | None | |||
| Parameter | kxv
|
kxv = 1 | F | 1.0 | None | |||
| Parameter | kx
|
kx = 0.2 | F | 0.2 | None | |||
| Parameter | cv
|
cv = -0.3 | F | -0.3 | None | |||
| Parameter | rconst
|
rconst = 2 | F | 2.0 | None | |||
| Parameter | krn
|
krn = 1 | F | 1.0 | None | |||
| Parameter | a1
|
a1 = 20 | F | 20.0 | None | |||
| Parameter | w1
|
w1 = 0.01 | F | 0.01 | None | |||
| Parameter | gnoise
|
gnoise = 5 | F | 5.0 | None | |||
| Parameter | gnoiserem
|
gnoiserem = 5 | F | 5.0 | None | |||
| Parameter | x
|
x = 2 | F | 2.0 | None | |||
| Parameter | y
|
y = 6 | F | 6.0 | None | |||
| Parameter | xv
|
xv = -2 | F | -2.0 | None | |||
| Parameter | yv
|
yv = 0 | F | 0.0 | None | |||
| Parameter | xr
|
xr = -1 | F | -1.0 | None | |||
| Parameter | yr
|
yr = -2 | F | -2.0 | None | |||
| Parameter | xn
|
xn = -3 | F | -3.0 | None | |||
| Parameter | yn
|
yn = 0 | F | 0.0 | None | |||
| Parameter | ina
|
ina = 0 | F | 0.0 | None | |||
| Parameter | inv
|
inv = 0 | F | 0.0 | None | |||
| Parameter | inn
|
inn = 0 | F | 0.0 | None | |||
| Parameter | inr
|
inr = 0 | F | 0.0 | None | |||
| Parameter | s1
|
F | 0.0 | dimensionless | None | |||
| Parameter | xe
|
F | 0.0 | dimensionless | None | |||
| Parameter | h
|
F | 0.0 | dimensionless | None | |||
| Parameter | taur
|
F | 0.0 | dimensionless | None | |||
| Parameter | taun
|
F | 0.0 | dimensionless | None | |||
| Parameter | inhbr
|
F | 0.0 | dimensionless | None | |||
| Parameter | inhbn
|
F | 0.0 | dimensionless | None | |||
| Parameter | ievlpo
|
F | 0.0 | dimensionless | None | |||
| Parameter | ia2r
|
F | 0.0 | dimensionless | None | |||
| Parameter | isyn
|
F | 0.0 | dimensionless | None | |||
| Parameter | isynv
|
F | 0.0 | dimensionless | None | |||
| Parameter | iscn
|
F | 0.0 | dimensionless | None | |||
| Parameter | iorx
|
F | 0.0 | dimensionless | None | |||
| Parameter | ihom
|
F | 0.0 | dimensionless | None | |||
| Parameter | tauv
|
F | 0.0 | dimensionless | None | |||
| Parameter | tau
|
F | 0.0 | dimensionless | None | |||
| Parameter | s
|
F | 0.0 | dimensionless | None | |||
| Parameter | sv
|
F | 0.0 | dimensionless | None | |||
| Parameter | sr
|
F | 0.0 | dimensionless | None | |||
| Parameter | sn
|
F | 0.0 | dimensionless | None | |||
| Parameter | tc
|
F | 0.0 | dimensionless | None | |||
| Parameter | xc
|
F | 0.0 | dimensionless | None | |||
| Parameter | inoisea
|
F | 0.0 | dimensionless | None | |||
| Parameter | inoisev
|
F | 0.0 | dimensionless | None | |||
| Parameter | inoiserem
|
F | 0.0 | dimensionless | None | |||
| Parameter | inoisenrem
|
F | 0.0 | dimensionless | None | |||
| Parameter | inp
|
F | 0.0 | dimensionless | None | |||
| Parameter | inpv
|
F | 0.0 | dimensionless | None | |||
| Parameter | ic
|
F | 0.0 | dimensionless | None | |||
| Parameter | ica
|
F | 0.0 | dimensionless | None | |||
| Parameter | ih
|
F | 0.0 | dimensionless | None | |||
| Parameter | t
|
model time | F | 0.0 | dimensionless | None |
| type | Rules [44] | assignment | name | derived units | sbo | cvterm | |
|---|---|---|---|---|---|---|---|
| Rule | d s1/dt
|
= | None | ||||
| Rule | d x/dt
|
= | None | ||||
| Rule | d y/dt
|
= | None | ||||
| Rule | d xv/dt
|
= | None | ||||
| Rule | d yv/dt
|
= | None | ||||
| Rule | d xe/dt
|
= | None | ||||
| Rule | d xr/dt
|
= | None | ||||
| Rule | d yr/dt
|
= | None | ||||
| Rule | d xn/dt
|
= | None | ||||
| Rule | d yn/dt
|
= | None | ||||
| Rule | d h/dt
|
= | None | ||||
| Rule | d ina/dt
|
= | None | ||||
| Rule | d inv/dt
|
= | None | ||||
| Rule | d inn/dt
|
= | None | ||||
| Rule | d inr/dt
|
= | None | ||||
| Rule | taur
|
= | None | ||||
| Rule | taun
|
= | None | ||||
| Rule | inhbr
|
= | None | ||||
| Rule | inhbn
|
= | None | ||||
| Rule | ievlpo
|
= | None | ||||
| Rule | ia2r
|
= | None | ||||
| Rule | isyn
|
= | None | ||||
| Rule | isynv
|
= | None | ||||
| Rule | iscn
|
= | None | ||||
| Rule | iorx
|
= | None | ||||
| Rule | ihom
|
= | None | ||||
| Rule | tauv
|
= | None | ||||
| Rule | tau
|
= | None | ||||
| Rule | s
|
= | None | ||||
| Rule | sv
|
= | None | ||||
| Rule | sr
|
= | None | ||||
| Rule | sn
|
= | None | ||||
| Rule | tc
|
= | None | ||||
| Rule | xc
|
= | None | ||||
| Rule | inoisea
|
= | None | ||||
| Rule | inoisev
|
= | None | ||||
| Rule | inoiserem
|
= | None | ||||
| Rule | inoisenrem
|
= | None | ||||
| Rule | inp
|
= | None | ||||
| Rule | inpv
|
= | None | ||||
| Rule | ic
|
= | None | ||||
| Rule | ica
|
= | None | ||||
| Rule | ih
|
= | None | ||||
| Rule | t
|
= | None |
| type | Events [4] | name | trigger | priority | delay | assignments | sbo | cvterm |
|---|---|---|---|---|---|---|---|---|
| Event | e0
|
initialValue = False persistent = True |
ic0 =
|
|||||
| Event | e1
|
initialValue = False persistent = True |
ic1 =
|
|||||
| Event | e2
|
initialValue = False persistent = True |
xe =
|
|||||
| Event | e3
|
initialValue = False persistent = True |
h =
|